明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: laoliu09

尺寸界线修剪的问题?

  [复制链接]
 楼主| 发表于 2005-4-22 11:52:00 | 显示全部楼层
希望各位老大帮帮我啊!先谢谢了!
 楼主| 发表于 2005-4-22 19:50:00 | 显示全部楼层
先顶一下,这个程序不是很长,可我不会lisp,所以想请各位老大帮我翻译一下,说一下这个程序的思路,最好就翻译成vba了,我想是应该修改标注原点的,不知道还应该注意什么?只要尺寸线不要动就好了,我就差这一步!
发表于 2005-4-23 07:37:00 | 显示全部楼层
注意在使用标注对象时不可使用IntersectWith方法来求它与其它对象的交点,因为它是求其外框与其它对象的交点,而不是真正的交点。所以必须按照两个ExtLine1Point及ExtLine2Point和Rotation这三个属性来画直线后,再求交点。通过这样的交点求出来的才是真正要使用的交点。
发表于 2005-4-23 08:14:00 | 显示全部楼层
明总,下面这段程序执行后,尺寸线会变动,修改尺寸界线的距离越长以及尺寸越小,尺寸线的变动会越明显。 Sub test()
Dim dimobj As AcadDimAligned
Dim point1 As Variant
Dim point2 As Variant
Dim point3 As Variant ThisDrawing.Utility.GetEntity dimobj, point, "选择尺寸线:"
point3 = ThisDrawing.Utility.GetPoint(, "选择一个对齐的点:")
point1 = dimobj.ExtLine1Point
point2 = dimobj.ExtLine2Point
point1(1) = point3(1)
point2(1) = point3(1) dimobj.ExtLine1Point = point1
dimobj.ExtLine2Point = point2
dimobj.Update End Sub
 楼主| 发表于 2005-4-23 19:55:00 | 显示全部楼层
对,明总,即使是水平放置的也会这样!我以前也是用你的方法做的,但还是会变,搞得我要用扩展数据来定位我的尺寸线,但为什么用lisp不会有这种情况呢?明总,你可以把我贴上来的程序的思路给我说一下吗?因为我不会lisp!谢谢了!
发表于 2005-4-23 23:33:00 | 显示全部楼层
laoliu09,你说LISP不会出现这种情况,那是因为标注类型不是dimaligned(对齐标注),而是dimlinear(线性标注),所以不会出现这种情况,前面我也发过贴子问有关dimlinear如何取得各种属性,可惜没有理我,呵呵。。。。。
发表于 2005-4-24 08:05:00 | 显示全部楼层
还有另外一个问题,对于未修改过的对齐或转角标注,文本位置点是在文本的中心,而修改过后的标注,文本位置点则会被移动到尺寸线与文本相对应的点上(如尺寸线的中点位置)。所以在修改时可以看到文本会被移动,就算是修改前把文本位置用变量记录下来也无法解决这样问题。
而对于程序来说,修改过和没被修改过的标注是无法识别的,也就是说文本位置点是在哪个点上无法识别。
LISP方法是通过修改图元的相关DXF组码,所以不影响其它组码。故不存在这样的问题。但AX(VBA)则未提供直接读取和写入DXF组码。
如果需要识别标注是否被修改过,除非读取标注块中的多行文字的位置与实际标注文本位置的点是否相同。如果相同,则未被修改过,如果不同,则被修改过。而文本被移动的距离可以根据文本的字高属性文本与标注线的距离来确定(其实还非常复杂,有些标注文本不是尺寸线的上方,而是在尺寸线的中间)。
发表于 2005-4-24 08:30:00 | 显示全部楼层
明总分析的有道理,可否帮我解答这个问题,对dimlinear如何操作,特别是如何获得extline1point和entline2point。
发表于 2005-4-24 08:57:00 | 显示全部楼层
dimlinear在对象模型中就是DimRotated。
最简单的方法是读取其各属性,重新生成一个,按新的点。
发表于 2005-4-24 10:15:00 | 显示全部楼层
明总一语道破,明白了,多谢。我看帮助里好象没法获得DimRotated的extline1point和entline2point点,在VLISP里也没有显示出这两个点的坐标值,不知道为什么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 18:38 , Processed in 0.260564 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表