Vytisknout stránku | Zavřít okno

Predefinovanie bloku

Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: CAD programování
Popis fóra: Otázky programování - nadstavby a utility pro CAD a GIS aplikace Autodesk (VBA, AutoLISP, ARX/C++, .Net, JavaScript, Python, MEL...)
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=2518
Datum vytištění: 15.kvě.2026 v 21:21


Téma: Predefinovanie bloku
Odeslal: Jozef Lovás
Předmět: Predefinovanie bloku
Datum odeslání: 03.kvě.2006 v 13:20

Prosím Vás ako preruším príkaz v Lispe po predefinovaní bloku ?

(command "_insert" (strcat OldBlock "=" NewBlock))

Po vykonaní OldBlock "=" NewBlock potrbujem zrušiť aktuálny Command a pokračovať ďalej v programe.



-------------
Jozef Lovás



Odpovědi:
Odeslal: Seiner
Datum odeslání: 03.kvě.2006 v 13:32
To nějak nechápu - jestli chcete zrušit vykonávání příkazu, proč ho vůbec začínáte? A jestli chcete dodat další parametry, tak je tam musíte dát - proměnné, nebo funkce). A nebo tam jen potřebujete vrazit Enter? To je ""

-------------
Vítězslav Seiner

Chrudim


Odeslal: Jozef Lovás
Datum odeslání: 03.kvě.2006 v 13:53

Mám vo výkrese cca 15 blokov, ktoré potrebujem predefinovať novými a tie mám v extra súboroch (dwg). Takýchto výkresov mám asi 10 takže to potrebujem nejak zautomatizovať.

V príkaze insert sa potrebujem dostať až po potvrdenie či chcem predefinovať existujúci blok, a potom príkaz zrušiť.



-------------
Jozef Lovás


Odeslal: Jozef Lovás
Datum odeslání: 03.kvě.2006 v 14:26

Takže metódou pokus-omyl+help som dospel k fungujúcemu riešeniu:

(command "_insert" (strcat OldBlock "=" NewBlock) "Y" (command))

(Volanie command bez parametrov = ESC)



-------------
Jozef Lovás


Odeslal: Vladimír Michl
Datum odeslání: 03.kvě.2006 v 15:11

Volat (command) uvnitř (command) není dobrý nápad. LISP ekvivalent pro "cancel" je nil. Tedy:

(command "_INSERT" (strcat oldBlock "=" newBlock) "_Y" nil)



-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz helpdesk.arkance-systems.cz)


Odeslal: Ferdinand
Datum odeslání: 04.kvě.2006 v 09:47
Já pro Cancel používám
^C^C

-------------
-FerTh-


Odeslal: Seiner
Datum odeslání: 04.kvě.2006 v 09:49

V lispu? Jak? Pokud to není v menu.



-------------
Vítězslav Seiner

Chrudim


Odeslal: Ferdinand
Datum odeslání: 04.kvě.2006 v 10:04
Příklad: získání vkl. bodu ZB

(defun C:VLOZ ( / ZB MM)
(SETQ MM (GETINT "\nZadejte měřítko pro vkládaný blok:"))
(command  "_-insert" VLBL "_PS" MM pause MM MM ^C^C)
(setq ZB (getvar "lastpoint"))
(command "_-insert" VLBL "_PS" MM ZB MM "" "0")
(princ)
)


-------------
-FerTh-


Odeslal: Seiner
Datum odeslání: 04.kvě.2006 v 10:09
Vidíte - to mne nenapadlo. Já to zkoušel v uvozovkách.

-------------
Vítězslav Seiner

Chrudim


Odeslal: Vladimír Michl
Datum odeslání: 04.kvě.2006 v 10:53
LISP žádné ^C^C nezná, ale shodou okolností je vámi definovaný symbol s názvem "^C^C" vyhodnocen jako nil, takže to zafunguje :-)

-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz helpdesk.arkance-systems.cz)


Odeslal: Seiner
Datum odeslání: 04.kvě.2006 v 10:56
Jak prosté  :-)

-------------
Vítězslav Seiner

Chrudim


Odeslal: Ferdinand
Datum odeslání: 10.kvě.2006 v 15:47
Takže raději použít
...
(command  "_-insert" VLBL "_PS" MM pause MM MM nil)
...



-------------
-FerTh-



Vytisknout stránku | Zavřít okno