Diskuzní fórum, poradna
CAD diskuze, rady, výměna zkušeností |
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
Akce poklepáním |
Odpovědět | Stránka <123> archiv |
Autor | |
Vladimír Michl
Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
Moderátor Arkance Systems Přihlášen: 09.zář.2004 Lokalita: ČR (JČ) Používám: Dodáváme produkty Autodesk Stav: Offline Bodů: 21493 |
Zasláno: 04.říj.2006 v 08:07 |
To není úplně triviální a čistě přes menu to asi nepůjde. Ale třeba v LISPu to jde řešit třeba předáváním zadaných údajů přes (command) a testováním CMDACTIVE ve smyčce (jestli ještě příkaz běží), nebo třeba reaktorem.
|
|
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 08:06 |
Včera jsem to zkoušel definovat např pro křivku, polygon obdélník nebo kótu. U těchto objektů to nefunguje, Nechtěli se načíst vlastnosti těchto objektů. U kót by to chtělo ještě dopsat, aby to přebíralo i vlastnosti kótovacího stylu (buď čistě jen kótovací styl nebo podrobně všechny možné nastavení kóty). I když přepíšu v akci poklepáním tu funkci (u těchto objektů) tak se mi furt spouští ta původní akce. Co s tím? 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: 04.říj.2006 v 07:52 |
Ještě obecnější dotaz, který mi při hraní si s touto fíčurou vystal:
Abych mohl do akcí, které se dějí na poklepání dát i návrat na původní nastavení, nemůžu použít normální volání příkazu např. _LINE, ale nějak to v listu obejít. Pokud bych chtěl zachovat plné možnosti příkazu (třeba u oblouku všechny možnosti zadání), bude to dost pracné a jistě i zdrojem chyb.
Neví někdo, jak v menu zavolat standardní příkaz s předem neznámým počtem vstupů a pak se vrátit do menu a pokračovat nějakou akcí?
|
|
Vítězslav Seiner
Chrudim |
|
pavelstyl
Zasloužilý člen Přihlášen: 06.říj.2004 Lokalita: Czech Republic Používám: AutoCAD Mech 2023, SolidEdgeE 2023 Stav: Offline Bodů: 223 |
Zasláno: 04.říj.2006 v 07:13 |
:-( |
|
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 07:11 |
To bude asi tím, že se tady celou dobu bavíme o 2007 :-)
|
|
Vítězslav Seiner
Chrudim |
|
pavelstyl
Zasloužilý člen Přihlášen: 06.říj.2004 Lokalita: Czech Republic Používám: AutoCAD Mech 2023, SolidEdgeE 2023 Stav: Offline Bodů: 223 |
Zasláno: 04.říj.2006 v 07:08 |
Můžete být prosím trošku konkrétnější. Asi jsem slepý, ale v CUI dialogu žásnou sekci "Akce poklepáním" nevidím.
AutoCAD 2006 Mechanical EN
Děkuji Pavel Štyl
|
|
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: 03.říj.2006 v 15:25 |
Třeba pro úsečku by to muselo vypadat nějak takhle:
na začátek Curr.lsp doplnit:
(defun C:CURR ()
(setq lastlayer (getvar "Clayer") lastweight (getvar "CELWEIGHT") lastcolor (getvar "CECOLOR") lastltype (getvar "CELTYPE")) .... a místo _LINE použít nově definovanou funkci LINE1:
(Defun C:line1( )
(Setq a (getpoint "\nPočáteční bod:"))
(While (/= a nil) (Setq a1 (getpoint a "\nBod:"))
(If (/= a1 nil) (Command "_line" a a1 "")) (setq a a1) ) (setvar "CLAYER" lastlayer) (setvar "CELWEIGHT" lastweight) (setvar "CECOLOR" lastcolor) (setvar "CELTYPE" lastltype) )
Pozn.: je evidentní, že LINE1 je "hloupější", než _LINE, ale už se mi na tom nechce vyšívat. Upravil Seiner - 03.říj.2006 v 15:26 |
|
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: 03.říj.2006 v 14:56 |
Supeeer takto je to parádní . I když máte pravdu, že kdyby se to pak vrátilo na původní nastavení, tak by to bylo úplně geniální. Kdyby jste na to přišli, napište to prosím sem. Díky moc 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: 03.říj.2006 v 14:48 |
Ještě by bylo pěkné, aby se to po akci vrátilo na původní nastavení. Ale to by bylo asi poněkud pracnější. Hlavně pro úsečku, pokud se má nakreslit předem neznámý počet segmentů. Ale jde to taky.
|
|
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: 03.říj.2006 v 14:44 |
A lisp curr dát do automatického načítání (soubor mnl)
(AUTOLOAD "CURR" '("CURR"))
|
|
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: 03.říj.2006 v 14:43 |
Pak je to snadné:
(defun C:CURR ()
(setq ent(ssname (ssget"_I")0) )
(if ent (progn ;tloustka cary (setq edata (assoc 370 (entget ent))) (if edata (setvar "CELWEIGHT" (cdr edata)) (setvar "CELWEIGHT" -1); lineweight by LAYER ) ;hladina (setq edata (assoc 8 (entget ent))) (setvar "CLAYER" (cdr edata))
;barva (setq edata (assoc 62 (entget ent))) (if edata (setvar "CECOLOR" (ITOA(cdr edata))) (setvar "CECOLOR" "256"); by LAYER ) ;typ čáry (setq edata (assoc 6 (entget ent))) (if edata (setvar "CELTYPE" (cdr edata)) (setvar "CELTYPE" "DLEHLAD"); by LAYER ) )) ) a
^C^Ccurr _line
|
|
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: 03.říj.2006 v 14:42 |
Jak mám nastavit, aby ty převzaté vlastnosti byly také aktuální? Zkoušel jsem to tam zadat a ono mi to vypíše v příkazovém řádku vlastnosti té poklepané entity, ale nenastaví je jako aktuální... Díky za radu Bena
|
|
Bena
|
|
Vladimír Michl
Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
Moderátor Arkance Systems Přihlášen: 09.zář.2004 Lokalita: ČR (JČ) Používám: Dodáváme produkty Autodesk Stav: Offline Bodů: 21493 |
Zasláno: 03.říj.2006 v 14:25 |
Spíše se asi používá opačná cesta - namalovat "nějakou" úsečku a pak přes Painter přenést požadované vlastnosti ze zdrojové entity, ale jde to i takto jak navrhujete. |
|
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: 03.říj.2006 v 13:47 |
Pracné by to být nemělo, pokud existuje nějaký způsob, jak zjistit v lispu, na kterou entitu bylo poklepáno. Akce při dblclick jsou pro mne nová věc a nevím, jestli tudy vede cesta.
|
|
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: 03.říj.2006 v 13:23 |
Takto jak jste to napsal, to funguje na ty 3 kliknutí. Což není až tak špatné. Je to určitě rychlejší než mačkat na klavesnici zkratku pro převzetí vlastností a pak klikat na objekt. Moje původní představa byla taková jak jste to napsal, tzn. kliknu na objekt a z toho objektu se mi převezmou vlastnosti a začnu kreslit další.
Takto to totiž funguje v Allplanu (v tom jsem zatím kreslil). To by bylo úplně nejlepší. Jenže napsat takový lisp je asi dost složité, ne? Mě nenapadá jak by to mohlo jít , ale budu ještě přemýšlet. Pak by to byla úplná paráda . 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: 03.říj.2006 v 13:07 |
Tok Vašich myšlenek nějak nedovedu sledovat :-)
Pokud tedy máme definovanou funkci CURR, které nastavuje některé vlastnosti podle vybrané entity, dalo by se dát na poklepání
^C^Ccurr \_line
Jenže to mi nepřijde vůbec praktické. Poklepu na úsečku, pak vyberu vzor vlastností a pak teprve se začne kreslit úsečka s příslušnými vlastnostmi.
Já bych si představoval, že poklepu a hned tvořím entitu podle té, na kterou jsem poklepal.
|
|
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: 03.říj.2006 v 12:47 |
Kód takto funguje sám o sobe. Jak to spojit s akci poklepáním mě napadá jen takto: Udělat si novou funkci např ^C^C_line + funkci CURR a tyto 2 funkce spojit pomocí ´ aby mohli běžet souběžně. A výslednou funkci pak přiradit na kliknutí. V praxi by to pak bylo, tak ze bych kliknul např na úsečku aktivovala by se mi funkce kreslení úseček a zároveň CURR. Pak bych klikl ještě jednou na tu samou úsečku a tím bych z ní převzal vlastnosti a po skončení funkce CURR by byla nadále aktivní funkce úsečka. To by bylo možné ne? Nevím jen jak přesně napsat to spojení 2 funkcí. 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: 03.říj.2006 v 12:01 |
Ten kód by mohl pro ty hlavní vlastnosti asi vypadat nějak takhle:
(defun C:CURR ()
(setq ent (entsel "Vyber entitu pro nastavení vlastností: ")) (if ent (progn ;tloustka cary (setq edata (assoc 370 (entget(car ent)))) (if edata (setvar "CELWEIGHT" (cdr edata)) (setvar "CELWEIGHT" -1); lineweight by LAYER ) ;hladina (setq edata (assoc 8 (entget(car ent)))) (setvar "CLAYER" (cdr edata))
;barva (setq edata (assoc 62 (entget(car ent)))) (if edata (setvar "CECOLOR" (ITOA(cdr edata))) (setvar "CECOLOR" "256"); by LAYER ) ;typ čáry (setq edata (assoc 6 (entget(car ent)))) (if edata (setvar "CELTYPE" (cdr edata)) (setvar "CELTYPE" "DLEHLAD"); by LAYER ) )) ) Problém ale je, jak ho použít v akci na poklepání. Jak se do lispu převezme entita, na kterou bylo poklepáno?
|
|
Vítězslav Seiner
Chrudim |
|
Pro technickou podporu CAD
kontaktujte Helpdesk
Odpovědět | Stránka <123> archiv |
Přejít na fórum | Oprávnění fóra 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 |
Stránka byla vygenerována za 1,188 sekund.