求助如何获取图框的比例后用其改变标注尺全局比例因子
在一个模型空间里面做很多张图纸,,我们图纸都是必须1:1的(工厂加工需要) 。因为图框有大有小,所以我只能用改变标注全局比例因子的方法来改变尺寸和箭头的大小,,但每次插入图框后都要自己计算图框放大了多少倍,然后再去改变全局比标注例因子的大小。现在我有个想法就是能不能在未知图框大小的情况下,点选图框,便可获取图框放大了多少倍,然后自动改变全局标注比例因子。我再点选标注更新,便可改变尺寸文字和箭头等大小了。我是从lidaxiu兄弟的一个帖子http://bbs.mjtd.com/forum.php?mod=viewthread&tid=90626里面想到的,这是他写的获取图框大小的比例的lisp,但后续不会如何使用,本人lisp菜鸟,只会一些简单的。求大侠们支个招,或者帮我写下后续的,,小弟在此谢过了。这个是获取图块比例的lisp。
(defun C:kbl (/ xscale yscale zscale
blockname sourceblkobj targetblkobj
blklist ss i n
)
(setq sourceblkobj (entsel "\n请选择块,查看比例:"))
(if (null sourceblkobj) (exit))
(setq sourceblkobj (vlax-ename->vla-object (car sourceblkobj)))
(if (/= "AcDbBlockReference" (vla-get-objectname sourceblkobj))
(progn
(princ
"\nThe object you selected was not block reference. Application terminated."
)
(exit)
)
)
(setq blockname (vla-get-name sourceblkobj)
xscale (vla-get-xscalefactor sourceblkobj)
yscale (vla-get-yscalefactor sourceblkobj)
zscale (vla-get-zscalefactor sourceblkobj)
)
)
得到的xscale, yscale,zscale既是图块在x,y,z方向上的放大倍数。通过这个倍数你可以去用lisp写标注的全局变量。 本帖最后由 AMTONNY 于 2012-5-6 23:27 编辑
我是利用图框外边是多段线,图档内全部打散线,图框的文字为块来实现的哦 楼上的附件已经修改好了 AMTONNY 发表于 2012-5-6 23:28 static/image/common/back.gif
楼上的附件已经修改好了
不用管哦,试过了能正常使用,但是你在图框内必须有标注,单行或多行文本才可能动行,例如我的附件图框内加上文字和标注就可以了,试试看吧 本帖最后由 lvrenfei 于 2012-5-7 09:27 编辑
昨天晚上我写了一个获取图框长度方向两点距离,然后便可计算出改变标注全局比例因子。但还是麻烦了点,,觉得还是点选图框方便。 我有个程序,是图框放大然后把标注全局比例改为随尺寸和水平这两个名字,同时设置字体高度箭头等尺寸,可供你参考,这程序标注颜色这段程序还运行不了,输入的比例数字没法写入标题栏块属性,请大家看看
(defun c:fd ()
(setq abc (getreal "\nPlease input scalefactor:"))
(command "scale" "all" "" "0,0" abc)
(command "DIMEXE" 2) ;超出尺寸线
(command "DIMASZ" 2.5) ;箭头大小
(command "DIMEXO" 0) ;尺寸起点偏移量
(command "DIMTXT" 3.5) ;标注文字高度
(command "DIMGAP" 1.5) ;当尺寸线分成两段从而将标注文字放置在两段之间时,设置标注文字周围的距离。;;
(command "DIMCLRE" by block) ; 为尺寸界线指定颜色
(command "DIMCLRD" by block) ; 为尺寸线、箭头和标注引线指定颜色。同时控制由 LEADER 命令创建的引线颜色
(command "DIMCLRT" by block) ;为标注文字指定颜色。 此颜色可以是任意有效的颜色编号
(command "dimzin" 8) ;角度标注消零
(command "dimazin" 2) ;线性标注消零
(command "dimjust" 0)
(command "dimtad" 1)
(command "dimdec" 2)
(command "dimadec" -1)
(command "ltscale" (* 1.5 abc)) ;全局线性比例因子
(command "DIMTOH" "on") ;控制标注文字在尺寸界线外的位置 关将文字与尺寸线对齐开 水平绘制文字
(command "DIMTIH" "on")
(command "dimscale" abc) ; 尺寸的全局比例
(command "DIMLFAC" 1) ;线性标注测量值的比例因子。
(command "dimstyle" "s" "水平" "")
(command "DIMTOH" "OFF") ;控制标注文字在尺寸界线外的位置
(command "DIMTIH" "OFF")
(command "dimstyle" "s" "随尺寸" "")
)
这个讨论还没有完, 本帖最后由 bai2000 于 2012-12-12 12:57 编辑
这个能支持天正的尺寸及文字标注会更好,请老大们出手 今天再顶一下,请老大们改一下,适应于天正环境的:字高,标注等
页:
[1]
2