jim78b
Guest
allego il dwg di esempio, ho il listato bb.lsp ; se edito il blocco sul posto e poi vado su un altro blocco al suo interno , avvio il comando bb seleziono il blocco indicato mentre sto editando in posto, non mi cambia il suddetto in byblock ne colore ne tipolinea ,se potreste correggerlo grazie 1000
(defun c:bb ()
(setq blocks (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))
grublo (ssget '((0 . "insert")))
ssgetblocks '()
ssgetblocks1 '()
)
(repeat (setq index(sslength grublo))
(setq ssgetblocks (cons (vla-get-effectivename (vlax-ename->vla-object (ssname grublo (setq index(1- index))))) ssgetblocks))
)
(foreach elem ssgetblocks
(if (not(member elem ssgetblocks1))
(setq ssgetblocks1 (cons elem ssgetblocks1))
)
)
(foreach elem ssgetblocks1
(setq bloccovl(vla-item blocks elem)
index 0
)
(repeat (vla-get-count bloccovl)
(vla-put-color (vla-item bloccovl index) 0)
(vla-put-linetype (vla-item bloccovl index) "byblock")
(setq index (1+ index))
)
)
(vla-regen (vla-get-activedocument (vlax-get-acad-object)) acallviewports)
)
(defun c:bb ()
(setq blocks (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))
grublo (ssget '((0 . "insert")))
ssgetblocks '()
ssgetblocks1 '()
)
(repeat (setq index(sslength grublo))
(setq ssgetblocks (cons (vla-get-effectivename (vlax-ename->vla-object (ssname grublo (setq index(1- index))))) ssgetblocks))
)
(foreach elem ssgetblocks
(if (not(member elem ssgetblocks1))
(setq ssgetblocks1 (cons elem ssgetblocks1))
)
)
(foreach elem ssgetblocks1
(setq bloccovl(vla-item blocks elem)
index 0
)
(repeat (vla-get-count bloccovl)
(vla-put-color (vla-item bloccovl index) 0)
(vla-put-linetype (vla-item bloccovl index) "byblock")
(setq index (1+ index))
)
)
(vla-regen (vla-get-activedocument (vlax-get-acad-object)) acallviewports)
)