阡陌客 发表于 2015-5-19 23:09:08

如何利用LISP批量修改多个标注样式的变量值

本帖最后由 阡陌客 于 2015-5-19 23:12 编辑

请教,如何利用LISP批量修改多个标注样式的DIMEXE、DIMTAD、DIMATFIT等系统变量值


因为绘图习惯,我一般是在solidworks里面三维建模,然后转换工程图,再另存为dwg格式再到AutoCAD里修改编辑二维图,另存dwg到CAD打开后 会遇到一些标注尺寸字符错位堆叠


修改标注文字后,文字错乱现象可以解决,但是尺寸界线超出量、文字位置等又不合常规出图习惯
需要调整标注样式的几个变量达到通常习惯的效果。

具体我做了几个截图,如下:




在转存dwg时,SW自动生成了一系列SLDDIMSTYLE0,SLDDIMSTYLE1,……,SLDDIMSTYLE9, 这样的标注样式。(图纸越复杂,标注的尺寸越多,转存后,这里的样式就越多)




如果多张图纸的每个样式都手动修改也是个比较无聊的重复点击,试图写一个LISP程序直接命令实现。
但是我水平有限,编不出能批量改动标注样式变量的lisp。请高手们指点一下,谢谢!



阡陌客 发表于 2015-5-20 19:30:37

请教,如何利用LISP批量修改多个标注样式的DIMEXE、DIMTAD、DIMATFIT等系统变量值

阡陌客 发表于 2015-5-22 23:02:18

有没有高手指点一下啊,谢谢!

阡陌客 发表于 2015-5-28 20:11:39

求助

danxingpen 发表于 2015-5-28 23:17:23

传图,作一个原始和结果对照,这样大家才理解

wayne_myles 发表于 2015-7-10 14:16:15

顶一下,同求,标注样式和文字样式很让人头疼,我是UG出图的

fl202 发表于 2015-7-13 10:52:55

http://bbs.mjtd.com/thread-113895-1-1.html

用论坛里的搜索,也可以用 setvar

hbgsw 发表于 2015-7-13 14:58:09

N=1
strcar SLDDIMSTYLE (itoa n)
while    tblsearch样式
setvarDIMEXE、DIMTAD、DIMATFIT
更新样式
N+1

我也只会皮毛,楼主可试试。

ZZXXQQ 发表于 2015-7-14 08:19:07

阡陌客 发表于 2015-5-20 19:30 static/image/common/back.gif
请教,如何利用LISP批量修改多个标注样式的DIMEXE、DIMTAD、DIMATFIT等系统变量值

先用setvar改变标注样式,再用命令dimstyle新设或重置样式(要先判断样式是否存在)。

lijiao 发表于 2015-7-14 09:21:47

(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
查看完整版本: 如何利用LISP批量修改多个标注样式的变量值