Autor |
Najít Téma Možnosti tématu
|
Seiner
CAD/BIM manager
Přihlášen: 01.říj.2004
Lokalita: ČR (PA)
Používám: Mechanical 2017, Inventor 2017 a starší
Stav: Offline
Bodů: 1662
|
Téma: Akce poklepáním Zasláno: 05.říj.2006 v 09:51 |
Ono to bude tím, že proměnná DIMSTYLE je pouze pro čtení.
Musíte doplnit do curr:
;kotovaci styl (setq edata (assoc 3 (entget ent))) (if edata (COMMAND "-DIMSTYLE" "O" (cdr edata)) )
V rozporu se zásadami je tam česká volba "O" (Obnov), protože momentálně nevím anglický ekvivalent. Pokud máte anglický AutoCAD, musíte si to upravit. A pokud trváte na návratu k aktuální hodnotě, je nutné DIMSTYLE uložit a v lispu pro obnovu řešit obdobně.
|
Vítězslav Seiner
Chrudim
|
|
BenaCZ
Diskutér
Přihlášen: 02.říj.2006
Lokalita: ČR (Pha)
Používám: AutoCad2007
Stav: Offline
Bodů: 60
|
Zasláno: 05.říj.2006 v 09:26 |
Ono to právě nefunguje :( a já nevím jak to zprovoznit. Kdybyste někdo věděl, napište to prosím sem. Díky Bena
|
Bena
|
|
Seiner
CAD/BIM manager
Přihlášen: 01.říj.2004
Lokalita: ČR (PA)
Používám: Mechanical 2017, Inventor 2017 a starší
Stav: Offline
Bodů: 1662
|
Zasláno: 05.říj.2006 v 08:48 |
To můžete klidně doplnit do toho curr. lsp. Uplatní se to jen, pokud poklepete na kótu - pak by to mělo přepnout aktuální kótovací styl podle vybrané kóty. (Snad - nevím, jak je to s přepisy stylů)
Truchu nedořešený je návrat k nastavením před akcí. Já bych to asi řešil definováním příkatu navrat a dal ho třeba na nějakou zrychlenou volbu.
Aby to fungovalo, musíte si aktuální hodnotu dimstyle uložit do proměnné - obdobně jako jsem navrhoval u ostatních nastavení.
|
Vítězslav Seiner
Chrudim
|
|
BenaCZ
Diskutér
Přihlášen: 02.říj.2006
Lokalita: ČR (Pha)
Používám: AutoCad2007
Stav: Offline
Bodů: 60
|
Zasláno: 05.říj.2006 v 08:36 |
Tak to funguje. Ještě jsem si tam dopsal kód pro staničení. Když bych chtěl, aby mi to u kót přebíralo i vlastnosti kóty nebo alespon kotovací styl, tak by bylo asi nejlepší si vytvořit pro kóty jiný Curr a tam toto nastavit, ne?
Mohlo by to vypadat nějak takto?
(defun C:CURR KOTA ()
(setq ent(ssname (ssget"_I")0) )
(if ent
(progn
;kotovaci styl
(setq edata (assoc 3 (entget ent)))
(if edata
(setvar "DIMSTYLE" (cdr edata))
)
))
)
+ Vlastnosti obecné jako v běžném Curr
|
Bena
|
|
BenaCZ
Diskutér
Přihlášen: 02.říj.2006
Lokalita: ČR (Pha)
Používám: AutoCad2007
Stav: Offline
Bodů: 60
|
Zasláno: 04.říj.2006 v 13:05 |
Díky moc vyzkouším
|
Bena
|
|
Seiner
CAD/BIM manager
Přihlášen: 01.říj.2004
Lokalita: ČR (PA)
Používám: Mechanical 2017, Inventor 2017 a starší
Stav: Offline
Bodů: 1662
|
Zasláno: 04.říj.2006 v 12:58 |
Pro více druhů kó to bude:
(cond ((= a "AcDbEntityAcDbDimensionAcDbAlignedDimensionAcDbRotatedDimension")(Command "_DIMLINEAR")) ((= a "AcDbEntityAcDbDimensionAcDbAlignedDimension")(Command "_dimaligned")) ((= a "AcDbEntityAcDbDimensionAcDbDiametricDimension")(Command "_dimdiameter")) ((= a "AcDbEntityAcDbDimensionAcDbRadialDimension")(Command "_dimradius")) ((= a "AcDbEntityAcDbDimensionAcDb2LineAngularDimension")(Command "_dimangular")) ((= a "AcDbEntityAcDbDimensionAcDbArcDimension")(Commnad "_dimarc")) )
|
Vítězslav Seiner
Chrudim
|
|
Seiner
CAD/BIM manager
Přihlášen: 01.říj.2004
Lokalita: ČR (PA)
Používám: Mechanical 2017, Inventor 2017 a starší
Stav: Offline
Bodů: 1662
|
Zasláno: 04.říj.2006 v 12:46 |
No třeba takhle nějak:
(DEFUN C:KOTAX() ;(setq ent(car (entsel))) (setq a "") (setq i 0) (while (< i (length (entget ent))) (If (=(car (nth i (entget ent))) 100)(setq a (strcat a (cdr(nth i (entget ent)))))) (setq i (1+ i)) )
(cond ((= a "AcDbEntityAcDbDimensionAcDbAlignedDimensionAcDbRotatedDimension")(Command "_DIMLINEAR")) ((= a "AcDbEntityAcDbDimensionAcDbAlignedDimension")(Command "_dimaligned")) ((= a "AcDbEntityAcDbDimensionAcDbDiametricDimension")(Command "_dimdiameter")) ((= a "AcDbEntityAcDbDimensionAcDbRadialDimension")(Command "_dimradius")) ) )
Na poklepání na kótu pak bude příkaz ^C^Ccurr KOTAX
Vřele doporučuji neupravovat akce přímo v CUI Acad, ale vytvořit si částečnou nabídku třeba DBLCLICK a v ní experimentovat.
|
Vítězslav Seiner
Chrudim
|
|
Seiner
CAD/BIM manager
Přihlášen: 01.říj.2004
Lokalita: ČR (PA)
Používám: Mechanical 2017, Inventor 2017 a starší
Stav: Offline
Bodů: 1662
|
Zasláno: 04.říj.2006 v 11:51 |
Tak jsem do toho s vervou vlítnul, ale zase jsem se rychle odplazil s hanbou s bojiště. On tam je ten kód 100 3krát a já nevím, jak je získat všechny a rozlišit. ASSOC mi dá jen ten první.
|
Vítězslav Seiner
Chrudim
|
|
BenaCZ
Diskutér
Přihlášen: 02.říj.2006
Lokalita: ČR (Pha)
Používám: AutoCad2007
Stav: Offline
Bodů: 60
|
Zasláno: 04.říj.2006 v 10:51 |
Nemohl byste to prosím zkusit ještě napsat pro ty kóty? To bych určitě nezvládl. Jediné čím bych se mohl odvděčit jsou různé prográmky v excelu na stavařinu a statiku [IMG]smileys/smiley2.gif" align="middle" /> viz www.petrbenes.info , když by to někomu u vás pomohlo... Bena
P.S. Výkazy materiálu a databáze mám teď ještě vylepšené, tak bych je tam pak taky šoupnul
Upravil BenaCZ - 04.říj.2006 v 11:05
|
Bena
|
|
Seiner
CAD/BIM manager
Přihlášen: 01.říj.2004
Lokalita: ČR (PA)
Používám: Mechanical 2017, Inventor 2017 a starší
Stav: Offline
Bodů: 1662
|
Zasláno: 04.říj.2006 v 10:51 |
Tak už je mi to snad jasné. Smotal jsem dohromady tloušťku a tloušťku čáry. Snad mi může být omluvou, že ani jednu, ani druhou vlastnost běžně nepoužíváme. Ten kód 370 je správně.
|
Vítězslav Seiner
Chrudim
|
|
Seiner
CAD/BIM manager
Přihlášen: 01.říj.2004
Lokalita: ČR (PA)
Používám: Mechanical 2017, Inventor 2017 a starší
Stav: Offline
Bodů: 1662
|
Zasláno: 04.říj.2006 v 10:40 |
U kót by to ještě nějak v lispu mohlo jít rozhodnout, který příkaz se spustí. Kód 100 určuje druh kóty. Ale u toho polygonu nebo obdélníku, obávám se, řešení není. Příkazy prostě kreslí ozavřenou polylajnu a těžko z ní poznáte, jak byla vytvořena.
|
Vítězslav Seiner
Chrudim
|
|
BenaCZ
Diskutér
Přihlášen: 02.říj.2006
Lokalita: ČR (Pha)
Používám: AutoCad2007
Stav: Offline
Bodů: 60
|
Zasláno: 04.říj.2006 v 10:34 |
Vyzkoušel jsem si tu funkci (entget(car (entsel)))
Už vím proč to u obdelníku a u kót nejde. Nevím ale jak to předefinovat, aby to fungovalo, když je to vlastně furt ten samý objekt. Takto jak to je bych uměl definovat, že při poklepu na kterýkoli typ kóty se mi spustí třeba přímá kóta... což není teda ideální.
|
Bena
|
|
Seiner
CAD/BIM manager
Přihlášen: 01.říj.2004
Lokalita: ČR (PA)
Používám: Mechanical 2017, Inventor 2017 a starší
Stav: Offline
Bodů: 1662
|
Zasláno: 04.říj.2006 v 10:27 |
K užitečnosti: ano jde opravdu asi o zvyk. U nás se konstruktéři tvářili dost skepticky, když jsem jim to poslal. Dělali vždy v AutoCADu.
|
Vítězslav Seiner
Chrudim
|
|
Seiner
CAD/BIM manager
Přihlášen: 01.říj.2004
Lokalita: ČR (PA)
Používám: Mechanical 2017, Inventor 2017 a starší
Stav: Offline
Bodů: 1662
|
Zasláno: 04.říj.2006 v 10:26 |
Podle seznamu skupinových kódů DXF by to měla být Lineweight - tedy ne tloušťka ale VÁHA čáry. Já vůbec netuším, co je to za vlastnost. :-(
|
Vítězslav Seiner
Chrudim
|
|
BenaCZ
Diskutér
Přihlášen: 02.říj.2006
Lokalita: ČR (Pha)
Používám: AutoCad2007
Stav: Offline
Bodů: 60
|
Zasláno: 04.říj.2006 v 10:14 |
Seiner napsal(a):
Já nevím, jestli do toho chcete investovat tu práci |
Takováto pomůcka je určitě velmi užitečná. my jsme v kanceláři dělali v Allplanu, kde to takto fungovalo. Po přechodu na Autocad to všem velmi chybí. Možná, že lidem, kteří dělali vždy v Autocadu to nepřijde až tak dobrý, ale kdyby si to vyzkoušeli, tak si myslím že by jim to taky chybělo . To 370 jsem taky převzal z lispu, který jsem stáhnul.
|
Bena
|
|
Seiner
CAD/BIM manager
Přihlášen: 01.říj.2004
Lokalita: ČR (PA)
Používám: Mechanical 2017, Inventor 2017 a starší
Stav: Offline
Bodů: 1662
|
Zasláno: 04.říj.2006 v 09:21 |
Mimochodem, kód 370 jsem převzal bez přemýšlení z kódu, který jste zde uváděl, ale tloušťka čáry je podle mne 39. Co je ta 370?
|
Vítězslav Seiner
Chrudim
|
|
Seiner
CAD/BIM manager
Přihlášen: 01.říj.2004
Lokalita: ČR (PA)
Používám: Mechanical 2017, Inventor 2017 a starší
Stav: Offline
Bodů: 1662
|
Zasláno: 04.říj.2006 v 09:15 |
Já nevím, jestli do toho chcete investovat tu práci - ono to nebude úplně jednoduché. Např. Obdélník není podle mého extra entita, takže bude problém dosáhnout její tvorby tímto postupem.
Určitý přehled o vlastnostech objektů získáte např. tak, že si napíšete na příkazovou řádku (entget(car (entsel))) a vyberete pořadovanou entitu. Podle toho by se potom upravoval lisp pro získání vlastností.
|
Vítězslav Seiner
Chrudim
|
|
Seiner
CAD/BIM manager
Přihlášen: 01.říj.2004
Lokalita: ČR (PA)
Používám: Mechanical 2017, Inventor 2017 a starší
Stav: Offline
Bodů: 1662
|
Zasláno: 04.říj.2006 v 09:08 |
Myslel jsem ssamozřejmě v lispu. Až bude chvilka, zkusím Vaši radu.
|
Vítězslav Seiner
Chrudim
|
|