Vytisknout stránku | Zavřít okno

tvorba 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=8087
Datum vytištění: 09.čer.2026 v 19:37


Téma: tvorba bloku
Odeslal: Ferdinand
Předmět: tvorba bloku
Datum odeslání: 12.úno.2009 v 08:53
Mám lisp pro vytvoření bloku
(defun...
...
(command "-purge" "_B" "*" "_N")
(setq DWG (cadr (fnsplitl (getvar "dwgname"))))
(setq DWGC (strcat DWG "_C"))
(setq DWGH (strcat DWG "_H"))
(setq QS (ssget "X" (list (cons 0 "insert") (cons 2 DWG))))
(setq QSC (ssget "X" (list (cons 0 "insert") (cons 2 DWGC))))
(setq QSH (ssget "X" (list (cons 0 "insert") (cons 2 DWGH))))
(if (tblsearch "block" DWG)
  nil
  (progn
    (command "_-block" DWG "0,0" "_All" "_R" !QSC !QSH "")
    (command "_-insert" DWG "0,0" 1 1 0)
    (command "_-purge" "_A" "*" "_N")
    (command "_zoom" "_e")
    (command "_qsave")
  )
)
...
)
Pokud ten lisp načtu, vytvoří se blok včetně DWGC a DWGH (pokud tam jsou) - což nechci  Confused ; potřebuji čistě blok ze všech entit kromě již hotových bloků DWGC a DWGH.
Další zajímavost je, že při ladění lispu když řádek
(command "-block" DWG "0,0" "_All" "_R" !QSC !QSH "")
jsem vložil do p.ř., nic se neprovedlo. Pokud jsem to psal ručně, tak se to provedlo.Shocked


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



Odpovědi:
Odeslal: pavelstyl
Datum odeslání: 12.úno.2009 v 08:57
Původně odeslal(a) Ferdinand Ferdinand napsal(a):

    (command "_-block" DWG "0,0" "_All" "_R" !QSC !QSH "")
 
Ty vykřičníky mi tam nějak nesedí. Zkusil bych to bez nich.
 
Pavel Štyl


Odeslal: Ferdinand
Datum odeslání: 12.úno.2009 v 10:12

To jsem samozřejmě již vyzkoušel. Nakopíruji-li do p.ř.

(command "_-block" DWG "0,0" "_All" "_R" QSC QSH "")
tak to provede, ale pokud píšu ručně na p.ř. celý příkaz -block, tak tam musím psát !QSC..., jinak tu výběrovou množinu neuzná... Jak to má být v lispu?


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


Odeslal: Vladimír Michl
Datum odeslání: 12.úno.2009 v 13:07
V LISPU píšete jen název proměnné (symbolu) s výběrovou množinou. Při ručním zadávání příkazu žádný LISP neběží, takže se k hodnotě symbolu musíte dostat funkcí "!".

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


Odeslal: Ferdinand
Datum odeslání: 12.úno.2009 v 14:39
Děkuji za objasnění. Takže při použití ! mi vytvořil blok včetně DWGC, DWGH proto, že výrazy !Q... v lispu jsou brány jako nil - vlastně jsem odebíral "nic"... Opraveno, vyzkoušeno, je to OK.

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



Vytisknout stránku | Zavřít okno