블록내부의 치수에 대해서 색상 변경을 하려고 합니다.
아래 리습을 실행하면 블록상태로는 변동이 없으나,
폭파시키거나 참조편집 상태로 들어가보면 색상이 변경되어 있습니다.
블록상태에서도 색상 변경이 된것을 확인하려면 아래 구문을 어떻게 변경하여야 하는지 알려주세요~
고맙습니다. 좋은하루 보내세요~
(defun c:test ( / adoc layerObj bl archlayer archlayercolor obj)
아래 리습을 실행하면 블록상태로는 변동이 없으나,
폭파시키거나 참조편집 상태로 들어가보면 색상이 변경되어 있습니다.
블록상태에서도 색상 변경이 된것을 확인하려면 아래 구문을 어떻게 변경하여야 하는지 알려주세요~
고맙습니다. 좋은하루 보내세요~
(defun c:test ( / adoc layerObj bl archlayer archlayercolor obj)
(vl-load-com)
(setvar “cmdecho” 0)
(setq adoc (vla-get-activedocument (vlax-get-acad-object)))
(setq LayerObj (vla-get-Layers adoc))
(setq bl (vlax-get adoc ‘blocks))
(setq archlayer “e-plan” archlayercolor 8)
(_addlayer archlayer archlayercolor )
(setq ss (ssget))
(setq obj (vlax-ename->vla-object (ssname ss 0)))
(BlocklayerchangeC_ obj bl LayerObj archlayer archlayercolor)
(vla-regen adoc acactiveviewport)
)
(defun BlocklayerchangeC_ ( ob bl LayerObj a c)
(vlax-for obj (vla-item bl (vla-get-name ob))
(vla-put-dimensionlinecolor obj c)
(vla-put-dimensionlinecolor obj c)
(vla-put-extensionlinecolor obj c)
(vla-put-textcolor obj c)
)
)
(defun _addlayer ( la col / layer )
(while (not (tblsearch “layer” la))
(setq Layer
(vla-add
(vla-get-Layers
(vla-get-activedocument(vlax-get-acad-object))
) la
)
)
(vla-put-Color Layer col)
)
)
)
)
(vla-put-dimensionlinecolor obj c)
)
를 아래와 같이 바꿔보세요.
(defun BlocklayerchangeC_ ( ob bl LayerObj a c)
(vlax-for obj (vla-item bl (vla-get-name ob))
(vla-put-Layer obj a)
(vla-put-Color obj c)
)
)
바꿔 보았는데 원하는 결과가 나오질 않네요. ㅎ
블록내부에 치수가 살아있는(?) 형태입니다.
알아듣게 설명을 해주세요. 치수가 살아서 걸어다니나요?
처음의 구문을 보시면 아시듯이 블록내부의 치수가 폭파 된 일반 entity가 아닌 블록형태를 고스란히 지닌 치수라고 말씀드린겁니다. 이해 되셨나 모르겠습니다. T.T