Diskuzní fórum a databáze tipů a utilit pro AutoCAD, Inventor, Revit a další produkty Autodesk - od firmy Arkance Systems [www.cadforum.cz]
CZ | SK | EN | DE
Přihlášení
či registrace
   právě nás čte: 9383 
RSS kanál - CAD tipy RSS tipy
RSS diskuze

Diskuze Diskuzní fórum, poradna

 

NápovědaCAD diskuze, rady, výměna zkušeností

 
CAD Fórum - Homepage 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
  FAQ FAQ  Prohledat fórum   Události   Registrovat Registrovat  Přihlásit Přihlásit

Téma uzavřenoAkce poklepáním

 Odpovědět Odpovědět Stránka  123> archiv
Autor
BenaCZ Zobrazit panel
Diskutér
Diskutér

Přihlášen: 02.říj.2006
Lokalita: ČR (Pha)
Používám:
AutoCad2007
Stav: Offline
Bodů: 60
Přímý odkaz na tuto zprávu 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
Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar
Arkance Systems

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Dodáváme produkty Autodesk
Stav: Offline
Bodů: 21434
Přímý odkaz na tuto zprávu 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.
Vladimír Michl (moderátor)
Arkance Systems s.r.o. - www.arkance-systems.cz
(podpora viz hd.cads.cz)
Zpět nahoru
BenaCZ Zobrazit panel
Diskutér
Diskutér

Přihlášen: 02.říj.2006
Lokalita: ČR (Pha)
Používám:
AutoCad2007
Stav: Offline
Bodů: 60
Přímý odkaz na tuto zprávu 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
Zpět nahoru
Mrázek Zobrazit panel
TOP uživatel
TOP uživatel
Avatar

Přihlášen: 05.říj.2004
Lokalita: ČR (LB)
Používám:
Inventor 2018, AutoCAD 2018, Vault Pro 2018
Stav: Offline
Bodů: 1199
Přímý odkaz na tuto zprávu 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
Zpět nahoru
BenaCZ Zobrazit panel
Diskutér
Diskutér

Přihlášen: 02.říj.2006
Lokalita: ČR (Pha)
Používám:
AutoCad2007
Stav: Offline
Bodů: 60
Přímý odkaz na tuto zprávu 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
Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar
Arkance Systems

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Dodáváme produkty Autodesk
Stav: Offline
Bodů: 21434
Přímý odkaz na tuto zprávu 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.
Vladimír Michl (moderátor)
Arkance Systems s.r.o. - www.arkance-systems.cz
(podpora viz hd.cads.cz)
Zpět nahoru
BenaCZ Zobrazit panel
Diskutér
Diskutér

Přihlášen: 02.říj.2006
Lokalita: ČR (Pha)
Používám:
AutoCad2007
Stav: Offline
Bodů: 60
Přímý odkaz na tuto zprávu 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
Zpět nahoru
Seiner Zobrazit panel
CAD/BIM manager
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
Přímý odkaz na tuto zprávu 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
Zpět nahoru
Seiner Zobrazit panel
CAD/BIM manager
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
Přímý odkaz na tuto zprávu 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
Zpět nahoru
BenaCZ Zobrazit panel
Diskutér
Diskutér

Přihlášen: 02.říj.2006
Lokalita: ČR (Pha)
Používám:
AutoCad2007
Stav: Offline
Bodů: 60
Přímý odkaz na tuto zprávu 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
Zpět nahoru
Seiner Zobrazit panel
CAD/BIM manager
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
Přímý odkaz na tuto zprávu 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
Zpět nahoru
BenaCZ Zobrazit panel
Diskutér
Diskutér

Přihlášen: 02.říj.2006
Lokalita: ČR (Pha)
Používám:
AutoCad2007
Stav: Offline
Bodů: 60
Přímý odkaz na tuto zprávu 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
Zpět nahoru
Seiner Zobrazit panel
CAD/BIM manager
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
Přímý odkaz na tuto zprávu 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
Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar
Arkance Systems

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Dodáváme produkty Autodesk
Stav: Offline
Bodů: 21434
Přímý odkaz na tuto zprávu 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.
Do akce poklepáním zadáte LISP rutinu, která zjistí vlastnosti poklepané entity a nakreslí příbuznou entitu. Vlastnosti poklepané entity zjistíte např. přes:
^C^C(entget(ssname (ssget"_I") 0));_LINE

Vladimír Michl (moderátor)
Arkance Systems s.r.o. - www.arkance-systems.cz
(podpora viz hd.cads.cz)
Zpět nahoru
BenaCZ Zobrazit panel
Diskutér
Diskutér

Přihlášen: 02.říj.2006
Lokalita: ČR (Pha)
Používám:
AutoCad2007
Stav: Offline
Bodů: 60
Přímý odkaz na tuto zprávu 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
Zpět nahoru
Seiner Zobrazit panel
CAD/BIM manager
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
Přímý odkaz na tuto zprávu 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
Zpět nahoru
Seiner Zobrazit panel
CAD/BIM manager
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
Přímý odkaz na tuto zprávu 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
Zpět nahoru
Seiner Zobrazit panel
CAD/BIM manager
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
Přímý odkaz na tuto zprávu 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
Zpět nahoru

Pro technickou podporu CAD
kontaktujte Helpdesk

Příbuzné CAD tipy:
Tip 7353:Editace šraf poklepáním v AutoCADu 2011.
Tip 9904:Poklepání na text vypíše: neznámý příkaz DDEDIT.
Tip 7197:Poklepáním změňte úsečku na křivku.
Tip 9277:Revit - změna chování při dvojitém kliknutí na rodinu.
Tip 4510:Jak zamezit editaci dynamických bloků? (přepnutí na Refedit)
Tip 2312:Jak otevírat DWG výkresy poklepáním v jediném okně AutoCADu?


 Odpovědět Odpovědět Stránka  123> archiv

Přejít na fórum Oprávnění fóra Zobrazit panel



Stránka byla vygenerována za 1,223 sekund.