为什么? 我现在面临的问题是OP(cons 62……)对于entmod,它在一些特殊情况下不起作用,我也不知道为什么,但对于VLA***,它一直在按需要工作。 如果对象的颜色设置为“bylayer”,则不存在组62。您必须通过(cons 62.253)将实体添加到组62中 我想你们有点困惑了,我们不是在改变实体的颜色,而是改变层的颜色——这些层总是有DXF 62代码。
选择实体只是为了确定需要更改哪些图层,所选对象的类型应该没有什么区别。 什么你的意思是不能将图层的颜色设置为“ByLayer”???? 如果颜色调整层,如图像,颜色不变。
Wenn Layerfarbe Einstellung wie Bild,dann wird die Farbe nicht geändert 你没有提到你正在使用Pantone/RGB颜色。这些有点复杂。在这种情况下,我认为vla路线将更容易调整。
编辑:使用entmod也可以处理这些问题,但它们在430和420代码中:http://docs.autodesk.com/ACD/2011/ENU/filesDXF/WS1a9193826455f5ff18cb41610ec0a2e719-7a3d.htm 这些问题通常仅在尝试输入较新类型实体(多重引线等)或任何注释性对象的某些特性时存在,但颜色/图层/线型不在该列表中。 哦,是的,这是我前一段时间做的一个彩色的(我采用了lazy convert layer object to vla object route)和一个线型的,但它需要DosLib。。。。
(defun c:CLC (/ ss color i layer lst)
;; Change color of selected objects' layer
;; Alan J. Thompson, 07.23.09 / 05.16.11
(if (and (setq ss (ssget)) (setq color (acad_colordlg 1 nil)))
(repeat (setq i (sslength ss))
(if (not (member (setq layer (cdr (assoc 8 (entget (ssname ss (setq i (1- i))))))) lst))
(vla-put-color
(vlax-ename->vla-object (tblobjname "LAYER" (car (setq lst (cons layer lst)))))
color
)
)
)
)
(princ)
)
(defun c:CLL (/ ss linetype i layer lst)
;; Change linetype of selected objects' layer
;; DosLib required (dos_linetypebox)
;; Alan J. Thompson, 05.16.11
(if dos_linetypebox
(if (and (setq ss (ssget)) (setq linetype (dos_linetypebox)))
(repeat (setq i (sslength ss))
(if (not (member (setq layer (cdr (assoc 8 (entget (ssname ss (setq i (1- i))))))) lst))
(vla-put-linetype
(vlax-ename->vla-object (tblobjname "LAYER" (car (setq lst (cons layer lst)))))
linetype
)
)
)
)
(progn (alert "DosLib must be loaded!")
(command "_.browser" "http://www.en.na.mcneel.com/doslib.htm")
)
)
(princ)
)
页:
1
[2]