Lisp更改al的颜色
你好我发现这个vba代码,当我可以使用vba时,它工作得很好。但在办公室中,vba受到限制,因此我想在lisp中使用它:
Sub EsWerdeDunkel()
Dim Entity As AcadEntity, Blockdef As AcadBlock, Blockref As AcadBlockReference
For Each Entity In ThisDrawing.ModelSpace:Entity.Color = 254: Next Entity
For Each Blockdef In ThisDrawing.Blocks
If Blockdef.IsLayout = False Then For Each Entity In Blockdef: Entity.Color = 254: Next Entity
Next Blockdef
End Sub
也许有一种方法可以通过颜色提示框选择颜色。。。
希望你能理解我的英语。。。
我不知道如何编写lisp代码。
(我在office中使用Bricscad 14,64位…但lisp的工作原理与Autocad中相同)
谢谢4帮助
拉菲 作为代码的快速翻译:
(defun c:test ( / col doc foo )
(if (setq col (acad_colordlg 1))
(progn
(setq foo (lambda ( obj ) (if (vlax-write-enabled-p obj) (vla-put-color obj col)))
doc (vla-get-activedocument (vlax-get-acad-object))
)
(vlax-map-collection (vla-get-modelspace doc) 'foo)
(vlax-map-collection (vla-get-blocks doc)
'(lambda ( blk )
(if (and (= :vlax-false (vla-get-islayout blk))
(= :vlax-false (vla-get-isxref blk))
)
(vlax-map-collection blk 'foo)
)
)
)
)
)
(princ)
) 嗨,李,麦克
不工作。。。出现错误:
Loading D:\_Witzig\_Admin\CAD\LISP\Farbe.lsp
: (LOAD "D:/_Witzig/_Admin/CAD/LISP/Farbe.lsp")C:TEST
: TEST
; ----- LISP : Call Stack -----
; ...C:TEST <<--
;
; ----- Error around expression -----
'FOO
;
; error : no function definition <FOO> ; expected FUNCTION at
“福”是个错误!
现在它工作了。。。!非常感谢!
这似乎是BricsCAD中vlax地图集合实现的一个错误-我发布的代码在AutoCAD中表现良好。
嗨,李。这与VVA的ColorX有什么不同吗?http://www.cadtutor.net/forum/showthread.php?533-所有层和块的Lisp颜色更改&p=221559&viewfull=1#POST22159
它似乎比ColorX更快地更改了我的所有块和嵌套块(除了引线仍保留灰色)
谢谢
有人知道吗?
页:
[1]