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就可以了
页: 1 [2] 3
查看完整版本: 求高手帮忙看下改颜色的问题