请大神编写程序,工作中经常用到,机器上用的。
本帖最后由 ninja37 于 2022-4-14 17:44 编辑请大神编写程序,工作中经常用到,机器上用的。要求如下:
输入命令后
第1步程序判断是否有autocut图层有的话跳到第2步,没有就创建autocut图层,颜色红色1,线型Continuous
第2步 关闭autocut图层
第3步 运行autocad原生命令标注dimlinear (标注无图层颜色样式等等要求 标注无设置捕捉点的要求)。
第4步 打开autocut图层
第5步 设置autocut图层为当前层,最后退出程序
程序对各位大师来说比较简单,请帮一下忙 简单说 就是关掉autocut层,手动标注好尺寸后,再打开autocut层
这样应该可以!
(defun c:NMM (/ ob-layer)
(if (not (tblsearch "layer" "autocut"))
(command "-layer" "m" "autocut" "c" "1" "" "lt" "continuous""" "")
)
(command "layer" "OFF" "autocut" "")
(command "dimlinear" pause pause pause)
(command "layer" "on" "autocut" "")
(setvar "clayer" "autocut")
(princ)
)
简单说 就是为了把标注放在autocut 图层吧感觉描述的有点乱没咋看明白 xj6019 发表于 2022-4-14 17:20
简单说 就是为了把标注放在autocut 图层吧感觉描述的有点乱没咋看明白
简单说 就是关掉autocut层,手动标注好尺寸后,再打开autocut层 这个样?
(defun c:NM (/ ob-layer)
(if (not (tblsearch "layer" "autocut"))
(command "-layer" "m" "autocut" "c" "1" "" "lt" "continuous""" "")
)
(setq Ob-layer (vlax-ename->vla-object(tblobjname "layer" "autocut" )))
(vla-put-LayerOn Ob-layer :vlax-false)
(command "dimlinear" pause pause pause)
(vla-put-LayerOn Ob-layer :vlax-true)
(setvar "clayer" "autocut")
(princ)
)
本帖最后由 ninja37 于 2022-4-14 19:20 编辑
xj6019 发表于 2022-4-14 18:08
这个样?
(defun c:NM (/ ob-layer)
你好,程序很好用 实现了全部要求的功能,就是有一点麻烦,可能代码太高级了还是怎么的,在cad2016可以完美运行 但是在机器上是cad2004提示错误 no function definition: vlax-ename->vla-object 可能CAD2004不支持这个 大师麻烦你再改一下改成2004能运行的 可以用来,CAD2004也能用,谢谢帮助。 ninja37 发表于 2022-4-15 10:59
可以用来,CAD2004也能用,谢谢帮助。
简单的小问题可以直接群里交流就行的
页:
[1]