TECHSOFT CZTECHSOFT SKCADHelpCAD FórumFreeCAD

Uloženie formátu Field

Diskuse týkající se používání ZWCADu
Návrhář
Příspěvky: 13
Registrován: 12 čer 2014, 14:52
Jméno (bez příjmení): Peter Stano

Uloženie formátu Field

Příspěvekod p_stano » 31 říj 2018, 13:43

Používame ZWCAD 2017 Pro ENG. Do výkresu vkladáme plochy miestností cez Field (Object-Area). Všetko je kreslené v mm, ale plochy potrebujeme vkladať v m2. V dialógovom okne príkazu FIELD je vybraný Object (vo výkrese potom označený napr. kruh alebo iný uzavretý objekt), vlastnosť Area a potom sú na výber rôzne Formáty čísla/jednotiek (Current Units, Decimal, Architectural...). Plocha je ale zobrazená v mm2, preto následne tlačítkom Additional Format je vyvolané nové dialógové okno, kde nadefinujem Conversion factor na 0,000001 a prípadne Suffix "m2". Po vložení je Field korektne s plochou objektu v m2.
Pri vkladaní ďalšieho, alebo editácii skopírovaného Field-u (a vybraní iného objektu z výkresu) sú však nastavenia v Additional Format vyresetované a je potrebné definovať všetko nanovo.
Akým spôsobom je možné doplniť ďalšiu položku do Format? Na internete som našiel nejaký postup pre Autocad, kde sa to dalo urobiť pomocou editácie súboru acfields.fdc a vložením FormatString z Field expression (v našom prípade napr. "%lu2%ps[, m2]%ds4%ct8[0.000001]"). Je to vôbec v ZWCADe možné - veľmi nás obmedzuje a zdržuje nutnosť ručnej editácie každého Filed.?

Administrátor
Uživatelský avatar
Příspěvky: 401
Registrován: 14 dub 2014, 15:50
Jméno (bez příjmení): Ján Pajerchin

Re: Uloženie formátu Field

Příspěvekod JanP » 02 lis 2018, 11:09

Dobrý deň,

Cez *.fdc súbor to nepojde - ZWCAD ho nepodporuje (ani najnovšia verzia).
Myslím ale na 100% že by sa našla cesta cez LISP... skúste pohľadať na webe a upraviť podľa potreby.

Ak chcete - môžeme to pohľadať / upraviť / odladiť... atď aj my - nebola by to síce bezplatná služba ...ale snáď by sme sa zmestili do cca 1 000,- Kč bez DPH čo by mohlo byť akceptovateľné...

Návrhář
Příspěvky: 13
Registrován: 12 čer 2014, 14:52
Jméno (bez příjmení): Peter Stano

Re: Uloženie formátu Field

Příspěvekod p_stano » 02 lis 2018, 16:15

Podarilo sa nám nakoniec nájsť na webe 2 použiteľné "workaroundy":

1) Nakopírujeme na miesto, kde chceme umiestniť Field, ľubovoľný text v požadovanom textovom formátovaní (štýle) a pomocou LISPu "Length & Area Field" (http://www.lee-mac.com/lengthfield.html) si označíme Objekt (ktorého plochu chceme priradiť Field-u) a vyberieme si text, ktorý bude nahradený Fieldom, pričom preberie formát tohto textu. Alternatívne môžme pomocou tohto LISPu priamo vkladať Field na požadované miesto v aktívnom textovom štýle. V samotnom LISPe vieme Field-u zadefinovať FormatString (v našom prípade napr. "%lu2%ps[, m2]%ds4%ct8[0.000001]") a ten bude automaticky použitý.

2) Povkladáme Field-y pre jednotlivé objekty s ľubovoľným formátovaním a pomocou LISPu "Match Field Formatting" (http://www.lee-mac.com/matchfieldformatting.html) prenesieme formátovanie z jedného Field-u s požadovaným formátovaním na ostatné.

Tieto veci fungujú, ale sú to pre nás len také neúplné riešenia, pretože pre každý výkres alebo projekt musíme robiť všetky tieto kroky nanovo, pri viacerých ľuďoch ich to zaúčať... Jednoduchšie by bolo nadefinovať požadovaný formát do každej inštalácie ZWCAD a už by to každý len používal.

Neviem, či to nie je na nové vlákno, ale pri týchto LISPoch sa opäť raz vynorila otázka, ktorá sa tiahne už od starých verzií ZWCAD - automatické výpočty v tabuľkách, resp. Field typu Formula (Vzorec). Sú podporované v najnovšej verzii ZWCAD 2019, ak nie, plánujú sa v ďalšej verzii?
LISP z bodu 1. (a aj ďalšie LISPy zo stránky http://www.lee-mac.com) umožňujú vkladať aj súčty hodnôt/plôch ako Field, v Autocade to funguje v ZWCAD nie...

Administrátor
Uživatelský avatar
Příspěvky: 401
Registrován: 14 dub 2014, 15:50
Jméno (bez příjmení): Ján Pajerchin

Re: Uloženie formátu Field

Příspěvekod JanP » 05 lis 2018, 10:27

Dobrý deň

Aj keď Lee Mac má super LISPy - a keďže vidím že aktívne skúšate - skúste teda ešte dole uvedený LISP:

Ten Vám vloží po výbere krivky políčko s hodnotou definovanou na konci "%lu6%ps[, m2]%ct8[0.01].\" (v tomto prípade je to vynásobenou 0.01)... s výškou textu rovnou aktuálnej výške textu... nemusíte teda nič nastavovať ale všetko je nastavené v LISPe... a netreba dodatočne kopírovať vlastnosti


Kód: Vybrat vše
;;; AreaText.LSP ver 3.0
;;; Command name is AT
;;; Select a polyline and where to place the text
;;; Sample result: 2888.89 SQ. FT.
;;; As this is a FIELD it is updated based on the FIELDEVAL
;;; or the settings found in the OPTIONS dialog box
;;; By Jimmy Bergmark
;;; Copyright (C) 2007-2010 JTB World, All Rights Reserved
;;; Website: www.jtbworld.com
;;; E-mail: info@jtbworld.com
;;; 2007-09-05 - First release
;;; 2009-08-02 - Updated to work in both modelspace and paperspace
;;; 2010-10-29 - Updated to work also on 64-bit AutoCAD
;;; Uses TEXTSIZE for the text height
(defun Get-ObjectIDx64 (obj / util)
  (setq util (vla-get-Utility (vla-get-activedocument (vlax-get-acad-object))))
  (if (= (type obj) 'ENAME)(setq obj (vlax-ename->vla-object obj)))
  (if (= (type obj) 'VLA-OBJECT)
    (if (> (vl-string-search "x64" (getvar "platform")) 0)
      (vlax-invoke-method util "GetObjectIdString" obj :vlax-Falsate)
      (rtos (vla-get-objectid obj) 2 0)
    )
  )
)
(defun c:AT (/ entObject entObjectID InsertionPoint ad)
  (vl-load-com)
  (setq entObject (vlax-ename->vla-object(car (entsel)))
        entObjectID (Get-ObjectIDx64 entObject)
        InsertionPoint (vlax-3D-Point (getpoint "Select point: "))
        ad (vla-get-ActiveDocument (vlax-get-acad-object))
  )
  (vla-addMText (if (= 1 (vla-get-activespace ad))
    (vla-get-modelspace ad)
    (if (= (vla-get-mspace ad) :vlax-true)
      (vla-get-modelspace ad)
      (vla-get-paperspace ad)
    )
  )
  InsertionPoint 0.0 (strcat
  "%<\\AcObjProp Object(%<\\_ObjId "
  entObjectID
  ">%).Area \\f \"%lu6%ps[, m2]%ct8[0.01].\">%"
  ))
)



Čo sa týka tabuliek - bohužiaľ zatial nič nové - samozrejme ZWSOFT na tom pracuje ... kedy bude ale vidno výsledok - nevedno :-(

Návrhář
Příspěvky: 13
Registrován: 12 čer 2014, 14:52
Jméno (bez příjmení): Peter Stano

Re: Uloženie formátu Field

Příspěvekod p_stano » 09 lis 2018, 14:23

Dobrý deň,
ďakujem za LISP - vyskúšal som ho a funguje OK, len som musel upraviť definíciu formátu na "%lu6%ps[, m2]%ct8[0.000001]\", aby to zobrazovalo hodnotu v m2 (keďže kreslíme v mm) a nepridávalo bodku na konci čísla, pred suffix "m2".
Ešte mám otázku k tomu formátovaniu: je možné nejakým spôsobom zadefinovať suffix tak, aby v "m2" bola 2 ako horný index? Resp. kde nájdem nejakú syntax alebo popis tohto formátovacieho reťazca a jeho možnosti?

Administrátor
Uživatelský avatar
Příspěvky: 401
Registrován: 14 dub 2014, 15:50
Jméno (bez příjmení): Ján Pajerchin

Re: Uloženie formátu Field

Příspěvekod JanP » 09 lis 2018, 14:41

Dobrý deň,

Malo by stačiť da't do formátu daný znak - teda fyzicky znak: ²
A malo by to fungovat (aspon teda v AutoCADe to funguje) ;)

Návrhář
Příspěvky: 13
Registrován: 12 čer 2014, 14:52
Jméno (bez příjmení): Peter Stano

Re: Uloženie formátu Field

Příspěvekod p_stano » 08 led 2019, 17:05

Dobrý deň,
ak som to správne pochopil, do LISPu treba vložiť znak: ². Skúšal som to, ale aby to bolo možné, musel som zmeniť kódovanie LISPu na Unicode a uložiť to. ZWCAD však potom nedokázal takýto LISP načítať a hlásil chybu znaku #\ alebo čosi podobné.
Neviem či môj postup bol správny, alebo nie, no nemal som úspech.

Zpět na Technické dotazy ZWCADu



Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 7 návštevníků