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 | |
BenaCZ
Diskutér Přihlášen: 02.říj.2006 Lokalita: ČR (Pha) Používám: AutoCad2007 Stav: Offline Bodů: 60 |
Téma: Akce poklepáním Zasláno: 02.říj.2006 v 22:48 |
Poraďte mi prosím jak přiřadit v nastavení Akce poklepáním u každé funkce jinou akci? Konkrétně se mi jedná o to, aby např. při kliknutí na úsečku se mi aktivovala funkce úsečky a při kliknutí na kótu se aktivovala funkce kóty. Když jsem to u jedné funkce nastavil, tak ta samá akce se pak dělala i u jiné funkce. Pak bych nechápal smysl těchto akcí... Nejlepší by bylo, kdyby se při kliknutí na objekt z něho převzali vlastnosti a spustila se daná funkce. To by se ale asi muselo spojit pomocí lispu do jedné funkce a tu pak přiřadit této akci, je to tak?
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ů: 21434 |
Zasláno: 03.říj.2006 v 08:45 |
Pokud chcete přebírat vlastnosti, bude potřeba nějaká LISP/VBA/ARX/.NET utilita. Pokud jen chcete spouštět příkaz v závislosti na typu poklepané entity, stačí vám na to standardní funkce v dialogu CUI (sekce "Akce poklepáním") - nastavíte typ entity a požadovaný příkaz, resp. makro.
|
|
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 09:05 |
Přes rozhraní CUI to dělám, jenže když změním např. pro úsečku akci poklepání na ^C^C_LINE změní se to u všech příkazů. Tzn. že se mi pak při poklepání např. na kótu aktivuje úsečka. Původní nastavení bylo ^C^C_Properties.
Nemůže být problém v tom ^C^C ? Nevím totiž jaký to má význam v tom příkazu. Bena |
|
Bena
|
|
Mrázek
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
TOP uživatel Přihlášen: 05.říj.2004 Lokalita: ČR (LB) Používám: Inventor 2018, AutoCAD 2018, Vault Pro 2018 Stav: Offline Bodů: 1199 |
Zasláno: 03.říj.2006 v 09:09 |
V tom opravdu problém není. Je to ekvivalent dvojího stisku Esc (první pro zrušení voleb, druhé pro vyběhnutí z příkazu). Zajišťuje to rozeběhnutí nového příkazu z "čistého" prostředí.
|
|
Ing. Zdeněk Mrázek
Preciosa Ornela a.s. AIP 2018, ACADM 2018, Vault Pro 2018 |
|
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 09:18 |
Aha díky. Nemohl byste to někdo s tím poklepáním vyzkoušet? Jestli dělám něco špatně nebo jestli to prostě nefunguje? Díky
|
|
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ů: 21434 |
Zasláno: 03.říj.2006 v 09:41 |
Funguje to normálně - k entitě LINE přiřadím příkaz Úsečka a při poklepání na úsečku začnu kreslit úsečku.
Zdá se, že upravujete příkaz Vlastnosti - je třeba k dané akci přiřadit (přetáhnout) jiný příkaz.
|
|
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 10:06 |
Aha. Teď je mi to jasné. Funguje to , Díky moc.
Můžu se ještě zeptat na 2. část otázky, a to na to převzetí vlastností? Našel jsem na fóru lisp na převzetí tl. čar. ;sets current LineWeight - www.aac-solutions.cz (defun C:CURLWT () (setq ent (entsel "Select entity to make its lineweight current: ")) (if ent (progn (setq edata (assoc 370 (entget(car ent)))) (if edata (setvar "CELWEIGHT" (cdr edata)) (setvar "CELWEIGHT" -1); lineweight by LAYER ) )) ) Jak bych měl toto upravit aby to převzalo i ostatní vlastnosti? Díky za radu 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 10:38 |
Úprava tohoto kódu by neměla být až tak složitá. Je jen třeba si najít jaká je to systémová proměnná a jaké číslo pro příslušnou vlastnost. Z hlavy vím, snad, že pro hladinu je to třeba CLAYER a 8. Názvy proměnných viz referenční příručka (všechny začínají na C jako current). Skupinové kódy jsou v referenční příručce DXF.
|
|
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 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 |
|
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 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 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: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 |
|
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ů: 21434 |
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. |
|
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
|
|
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 |
|
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: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 |
|
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,223 sekund.