如何利用LISP批量修改多个标注样式的变量值
本帖最后由 阡陌客 于 2015-5-19 23:12 编辑请教,如何利用LISP批量修改多个标注样式的DIMEXE、DIMTAD、DIMATFIT等系统变量值
因为绘图习惯,我一般是在solidworks里面三维建模,然后转换工程图,再另存为dwg格式再到AutoCAD里修改编辑二维图,另存dwg到CAD打开后 会遇到一些标注尺寸字符错位堆叠
修改标注文字后,文字错乱现象可以解决,但是尺寸界线超出量、文字位置等又不合常规出图习惯
需要调整标注样式的几个变量达到通常习惯的效果。
具体我做了几个截图,如下:
在转存dwg时,SW自动生成了一系列SLDDIMSTYLE0,SLDDIMSTYLE1,……,SLDDIMSTYLE9, 这样的标注样式。(图纸越复杂,标注的尺寸越多,转存后,这里的样式就越多)
如果多张图纸的每个样式都手动修改也是个比较无聊的重复点击,试图写一个LISP程序直接命令实现。
但是我水平有限,编不出能批量改动标注样式变量的lisp。请高手们指点一下,谢谢!
请教,如何利用LISP批量修改多个标注样式的DIMEXE、DIMTAD、DIMATFIT等系统变量值 有没有高手指点一下啊,谢谢! 求助 传图,作一个原始和结果对照,这样大家才理解 顶一下,同求,标注样式和文字样式很让人头疼,我是UG出图的 http://bbs.mjtd.com/thread-113895-1-1.html
用论坛里的搜索,也可以用 setvar N=1
strcar SLDDIMSTYLE (itoa n)
while tblsearch样式
setvarDIMEXE、DIMTAD、DIMATFIT
更新样式
N+1
我也只会皮毛,楼主可试试。 阡陌客 发表于 2015-5-20 19:30 static/image/common/back.gif
请教,如何利用LISP批量修改多个标注样式的DIMEXE、DIMTAD、DIMATFIT等系统变量值
先用setvar改变标注样式,再用命令dimstyle新设或重置样式(要先判断样式是否存在)。 (vl-load-com)
(setq odoc (vla-get-ActiveDocument (VLAX-GET-ACAD-OBJECT)))
(setq dimstyls (vla-get-DimStyles odoc))
(mapcar 'setvar '("DIMEXE" "DIMTAD" "DIMATFIT") '(2 2 1))
(vlax-for item dimstyls
(vla-copyfrom item odoc)
)
页:
[1]
2