Vytisknout stránku | Zavřít okno

Hromadný Refedit -2

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=8085
Datum vytištění: 15.kvě.2026 v 19:21


Téma: Hromadný Refedit -2
Odeslal: Ferdinand
Předmět: Hromadný Refedit -2
Datum odeslání: 12.úno.2009 v 08:18
Znova otevírám toto téma. Mám vybranou sekvenci z lispu
(defun...
...
(setq DWG (cadr (fnsplitl (getvar "dwgname"))))
(setq DWGC (strcat DWG "_C"))
;;1-podrutina-vl.ent. bloku obrysu -zmena barvy&ltype=ByBlock
(defun C:zmena_EC (/ 1PZ 1E 1S0 PE62 PE6 NE62 NE6)
  (setq 1PZ (ssget "_X"
     (list (cons -4 "<OR")
    (cons 0 "LWPOLYLINE")
    (cons 62 6)
    (cons 6 "center")
    (cons -4 "OR>")
    (cons -4 "<OR")
    (cons 0 "LINE")
    (cons 62 6)
    (cons 6 "center")
    (cons -4 "OR>")
     )
     )
  )
 
;;2-cyklus-zmena vl. ent. bloku obrysu
(setq N 0)
(while (< N (sslength 1PZ))
  (setq 1E (ssname 1PZ N))
  (setq 1S0 (entget 1E))
  (setq PE62 (assoc 62 1S0))
  (setq PE6 (assoc 6 1S0))
  (setq NE62 (cons 62 0))
  (setq NE6 (cons 6 "ByBlock"))
  (setq 1S0 (subst NE62 PE62 1S0))
  (setq 1S0 (subst NE6 PE6 1S0))
  (entmod 1S0)
  (entupd 1E)
  (setq N (1+ N))
)
)
 
;;3-proces-zmena vl. ent. bloku obrysu
(command "_snap" "_OFf")
(progn
  (command "_refedit")
  (while (> (getvar "cmdactive") 0) (command pause))
  (C:zmena_EC)
  (command "_refclose")
  (while (> (getvar "cmdactive") 0) (command "_S"))
)
 
;;4-blok obrysu -zmena barvy=magenta & ltype=center
(if (tblsearch "block" DWGC)
  (progn
    (setq 0PZ
    (ssget
      "_X"
      (list (cons 0 "INSERT") (cons 2 DWGC))
    )
    )
    (setq 0E (ssname 0PZ 0))
    (setq 0S0 (entget 0E))
    (setq P62 (assoc 62 0S0))
    (setq P6 (assoc 6 0S0))
    (setq N62 (cons 62 6))
    (setq N6 (cons 6 "center"))
    (setq 0S0 (subst N62 P62 0S0))
    (setq 0S0 (subst N6 P6 0S0))
    (entmod 0S0)
    (entupd 0E)
  )
  nil
)
(command "_qsave")
...
)
 
Pokud sekvence 1-, 2-, 3-, 4- postupně nakopiruju do p.ř. tak se to provede. Pokud ale to chci aplikovat jako kompaktní volaný lisp, tak to provede jen 1-,2-,3- a qsave, bez chybové hlášky, 4- vynechá.


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



Vytisknout stránku | Zavřít okno