将某个标注样式置为当前
文字样式置为当前的代码(setvar 'TEXTSTYLE "标注样式名称")
这样是可行的,
为何标注样式这样写却不行?
(setvar "DIMSTYLE" "标注样式名称")
调试结果是这样的:
命令: (setvar 'DIMSTYLE "BIAOZHU")
Application Error: 20 :- AutoCAD 变量设置被拒绝: DIMSTYLE "BIAOZHU"
error!!ADS 请求错误
下面这个是可行的
(command "dimstyle" "r" "biaozhu")
请教还有其它方式吗?特别不喜欢用command
(defun BF-ent-activedimstyle(dimname / acaddocument acadobject currdimstyle mspace)
(vl-load-com)
(setq entname (tblobjname "DIMSTYLE" dimname))
(setq
acadobject(vlax-get-acad-object)
acaddocument(vla-get-activedocument acadobject)
mspace(vla-get-modelspace acaddocument)
)
(setq currdimstyle (vlax-ename->vla-object entname))
(vla-put-activedimstyle acaddocument currdimstyle)
;(princ (vla-get-name currdimstyle))
(princ)
) 如果不存在 "BIAOZHU")这个的情况会报错 jun353835273 发表于 2023-12-19 17:23
如果不存在 "BIAOZHU")这个的情况会报错
BIAOZHU这个样式是存在的哦 应该是当前的标注样式正在使用,不可以更改。
就像文件正在编辑中,不可以删除一样。 (setq biaozhu (ssget '((0 . "*DIMENSION,LEADER"))))
(command "dimstyle" "R" "" biaozhu "" ))
飞雪神光 发表于 2023-12-19 17:24
好吧 还是用command吧,只要一句话{:1_1:} 这些功能原版本的就很好用。 飞雪神光 发表于 2023-12-19 17:24
;飞雪函数的用法,哈哈
(defun c:tt()
(setq dimname (cdr (assoc 3 (entget (car (entsel))))))
(BF-ent-activedimstyle dimname)
) (vla-put-activedimstyle
(vla-get-activedocument (vlax-get-acad-object))
(vlax-ename->vla-object
(tblobjname "DIMSTYLE" "尺寸样式名")
)
)
页:
[1]
2