e2002
发表于 2024-11-29 17:59:56
本帖最后由 e2002 于 2024-11-29 18:16 编辑
首先要理清程序的流程。一般的,象这种直接操作对象,选择对象的进行修改某一个特性的,先是输入特性的新的值,然后while选择对象(entsel或者 ssget),这里需要判断对象的类型是否符合要求,还要判断是否选择对象是否在 LockedLayer上(如果是ssget就加上":L"参数)。
while循环中,主要就是对象访问与修改特性的那些语句,这个想必你已经理解了。修改后一般不需要regen,修改厚的效果就能直接看到的。
另外: 颜色现在是TrueColor,应使用 AcCmColor对象,下面是 sample code:
(setq amColor (vla-GetInterfaceObject acApp (strcat "AutoCAD.AcCmColor." (substr (getvar "ACADVER") 1 2))))
(vla-put-ColorIndex amColor acCyan)
(vla-put-TrueColor att amColor)
(vlax-release-object amColor)
薄荷微光
发表于 2024-11-29 18:45:02
e2002 发表于 2024-11-29 17:59
首先要理清程序的流程。一般的,象这种直接操作对象,选择对象的进行修改某一个特性的,先是输入特性的新的 ...
谢谢指导,水平好高,我先理解下,好多语句看不懂:lol
XPG
发表于 2024-11-29 19:40:24
学习一下。感谢分享。
gf123
发表于 2024-11-29 22:49:58
学习学习。。。
chslwj521
发表于 2024-12-1 20:12:38
本帖最后由 chslwj521 于 2024-12-1 20:14 编辑
(defun c:gs1 (/ en i obj ss)
(vl-load-com)
(while
(setq en (car(entsel)))
(setq obj (vlax-ename->vla-object en));???VLA??
(vla-put-color obj 1);???
)
)
chslwj521
发表于 2024-12-1 20:14:33
(defun c:gs1 (/ en i obj ss)
(vl-load-com)
(while
(setq en (car(entsel)))
(setq obj (vlax-ename->vla-object en));???VLA??
(vla-put-color obj 1);???
)
)
薄荷微光
发表于 2024-12-2 21:35:37
e2002 发表于 2024-11-29 17:59
首先要理清程序的流程。一般的,象这种直接操作对象,选择对象的进行修改某一个特性的,先是输入特性的新的 ...
你好,请问下有没VLA帮助电子文件发个学习下,好多函数不明白:L
kozmosovia
发表于 2024-12-2 22:07:42
薄荷微光 发表于 2024-12-2 21:35
你好,请问下有没VLA帮助电子文件发个学习下,好多函数不明白
看CAD帮助的对象模型就行了。https://help.autodesk.com/view/OARX/2021/ENU/?guid=GUID-A809CD71-4655-44E2-B674-1FE200B9FE30
薄荷微光
发表于 2024-12-3 00:04:34
qazxswk 发表于 2024-11-28 23:54
你好,上面的程序如果把颜色改为随层要怎么写呢,我把红色1换为Bylayer好像不行。我刚查到可以用CAD的CHPROP命令修改(command "chprop" ss "" "c" "Bylayer" ""),不知道按上面的要怎么实现。
qazxswk
发表于 2024-12-3 03:43:34
薄荷微光 发表于 2024-12-3 00:04
你好,上面的程序如果把颜色改为随层要怎么写呢,我把红色1换为Bylayer好像不行。我刚查到可以用CAD的CHP ...
1改为256就可以了