ftmm 发表于 2023-11-17 10:57:49

求改正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`的值替换为你想要设置的箭头样式的名称。
上面代码,我就把 值改为"倾斜" 了....貌似不行
执行代码后,所有标注对象的箭头样式都会被批量修改为新的箭头样式。注意保存你的工作文件以确保修改结果生效。


ftmm 发表于 2023-11-17 15:15:00

又有新代码,但是为何没用。把所有含有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:28:12

本帖最后由 ftmm 于 2023-11-20 14:29 编辑

更加神奇的,cad的express有 标注导出和导入命令,但是这2个命令完全无效.....从2008到2020都有,但是都无效....无效的意思是导出可以,但是导入完全没效果.....

xyp1964 发表于 2023-11-20 21:11:36

代码太高级了……

500w008 发表于 2023-11-20 21:25:43

ftmm 发表于 2023-11-21 15:26:02

xyp1964 发表于 2023-11-20 21:11
代码太高级了……

第二个应该很普通吧?

ftmm 发表于 2023-12-20 13:01:34

求助!求助!
第二个应该很普通吧?
页: [1]
查看完整版本: 求改正chatgpt 修改样式箭头的代码,这个执行无效,看看哪里错了?