求改正chatgpt 修改样式箭头的代码,这个执行无效,看看哪里错了?
本帖最后由 ftmm 于 2023-11-17 11:02 编辑使用LISP(List Processing Language)来批量修改所有标注样式的标注箭头。以下是一种可能的代码示例:
(defun change-dim-arrows ()
(vl-load-com)
(if (not (setq ss (ssget ":L" '((0 . "DIMENSION")))))
(prompt "\n没有找到标注对象!")
(progn
(setq arrow-style"新的箭头样式名称") ; 替换为你想要设置的箭头样式名称
(vlax-for obj (setq dim-objs (vl-remove-if-not 'vlax-etypep (mapcar 'vlax-ename->vla-object (vla-get-entities (vla-item (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) 0)))) :vlax-true)
(setq dim-style (vla-get-dimensionstyle obj))
(vla-put-dimensionstyle obj (vla-add-dimensionstyle (vla-get-activedocument (vlax-get-acad-object)) arrow-style))
(vla-delete dim-style)
)
(prompt "\n标注箭头样式已经批量修改!")
)
)
)
(change-dim-arrows)
上述代码将会将所有标注对象的箭头样式更改为指定的新箭头样式。在代码中,你需要将`arrow-style`的值替换为你想要设置的箭头样式的名称。
上面代码,我就把 值改为"倾斜" 了....貌似不行
执行代码后,所有标注对象的箭头样式都会被批量修改为新的箭头样式。注意保存你的工作文件以确保修改结果生效。
又有新代码,但是为何没用。把所有含有dim字样的样式箭头改掉,但是执行后并未修改.....
(defun c:DimArrows ( / DimSS )
(setq MyArrow ".") ;; example "ArchTick" or "." for ClosedFilled
(setq DimSS (ssget "_X" '((0 . "*DIM*"))) ) ;; select all entities that have 'DIM' in their type
(command "dimoverride" "DimBlk" MyArrow "DimBlk1" MyArrow "DimBlk2" MyArrow "" DimSS "") ;; run the dimoverride command
) 本帖最后由 ftmm 于 2023-11-20 14:29 编辑
更加神奇的,cad的express有 标注导出和导入命令,但是这2个命令完全无效.....从2008到2020都有,但是都无效....无效的意思是导出可以,但是导入完全没效果..... 代码太高级了…… xyp1964 发表于 2023-11-20 21:11
代码太高级了……
第二个应该很普通吧? 求助!求助!
第二个应该很普通吧?
页:
[1]