正在查找LISP以更改s
我一直在搜索一个lisp,它会提示您选择对象,并将所有选定对象的颜色从“按层”更改为当前的任何颜色。有没有人见过这样的东西? (defun c:test (/ ss i d)(if (setq ss (ssget "_:L"))
(repeat (setq i (sslength ss))
(entmod (append (setq d (entget (ssname ss (setq i (1- i)))))
(list (assoc 62 (tblsearch "LAYER" (cdr (assoc 8 d)))))
)
)
)
)
(princ)
) 非常感谢!这正是我想要的 不客气。 我的5美分
COLORFL-来自层的颜色
PFL-图层特性(颜色线型线宽)
VVA,在使用VL*函数时,您可以考虑使用VLAX-FOR,并迭代选择集(速度要快得多)眨眼:
小示例(基于您的代码-希望您不介意):
(defun c:CBL () (c:ColorByLayer))
(defun c:ColorByLayer(/ *error*)
(princ "\rCOLORBYLAYER ")
(vl-load-com)
(defun *error*(msg)
(cond ((not msg) (if acDoc (vla-endundomark acDoc))) ; Normal exit
((member msg '("Function cancelled" "quit / exit abort"))) ; <esc> or (quit)
((princ (strcat "\n** Error: " msg " ** ")))) ; Fatal error, display it
(princ))
((lambda (acDoc / ss oLayer oLayers oLayersList)
(if (setq ss (ssget "_:L"))
(progn
(vla-startundomark acDoc)
(vlax-for x (setq ss (vla-get-activeselectionset acDoc))
(if (= :vlax-true
(vla-get-lock
(setq oLayer (vla-item (cond (oLayers)
((setq oLayers
(vla-get-layers acDoc))))
(vla-get-layer x)))))
(progn
(setq oLayersList (cons oLayer oLayersList))
(vla-put-lock oLayer :vlax-false)))
(vl-catch-all-apply
'vla-put-color
(list x (vla-get-color oLayer))))
(vla-delete ss)
(foreach oLayeroLayersList
(vla-put-lock oLayer :vlax-true))
(*error* nil))
(*error* "Nothing selected")))
(vla-get-activedocument (vlax-get-acad-object))))
这是很多代码。 将对象的颜色从“按层”更改为“任意”颜色难道不只是鼓励不良的CAD实践吗?我们中有多少人收到来自外部来源的图纸,发现物体的颜色与它所在图层的颜色不一致?至少可以说令人沮丧。 对
它是。。。我只是想为VVA提供一个“工作”VLAX,例如使用他自己的代码。
此外,如果你认为这不好,不要费心学习(高级)。NET示例:通过Kinect将语音识别添加到AutoCAD(续)
... 相比之下,更简单的东西(即获取、设置系统变量等)要短得多,而且仍然比LISP*更多的代码!LoL较差的ActiveX COM API。
[缩进]
对
[/缩进]
是的*踢翻泥土*
页:
[1]
2