Veřejné diskuzní fórum k CAD aplikacím - ptejte se na libovolné otázky týkající se oboru CAx, podělte se o vaše znalosti a zkušenosti s programy AutoCAD, Inventor, Revit, Fusion 360, 3ds Max a s dalšími CAD aplikacemi.
Zaregistrujte se nebo se přihlašte a zašlete váš příspěvek do odpovídajícího fóra. Viz další informace o CAD Fóru. Nechcete se registrovat? Zeptejte se v naší Facebook poradně.
Fórum nenahrazuje technický support firmy Arkance Systems (CAD Studio) - přímá podpora pro zákazníky funguje na helpdesk.cadstudio.cz
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í.
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.
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")) )
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))
)
))
)
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 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ě.
Nemůžete vytvářet nová témata v tomto fóru Nemůžete odpovídat na témata v tomto fóru Nemůžete vymazávat vaše příspěvky v tomto fóru Nemůžete upravovat vaše příspěvky v tomto fóru Nemůžete vytvářet ankety v tomto fóru Nemůžete hlasovat v anketách v tomto fóru