[求助]文字镜像的问题
我用这个SetVariable "MIRRTEXT", 0
然后用mirror这个函数镜像出来的文字还是倒过来的?
为什么?该怎么做?谢谢 把你的代码放上来,别人试一下,看是否有你说的情况。 Sub 镜像()<BR>Dim 用户选择集合 As AcadSelectionSet<BR>Dim 轴线集合 As AcadSelectionSet<BR>Dim 标注集合 As AcadSelectionSet<BR>Dim 轴线(0 To 0) As AcadLine<BR>Dim 标注(0 To 0) As AcadText
SetVariable "MIRRTEXT", 0<BR>MsgBox "MIRRTEXT的值是:" & GetVariable("MIRRTEXT")
Set 用户选择集合 = ThisDrawing.SelectionSets.Add("用户选择集合")<BR>Set 轴线集合 = ThisDrawing.SelectionSets.Add("轴线集合")<BR>Set 标注集合 = ThisDrawing.SelectionSets.Add("标注集合")
' 提示用户选择对象并将它们添加到选择集中。<BR>' 要完成选择,按回车。<BR>用户选择集合.SelectOnScreen<BR>' 在选择集中循环并将每一对象的颜色改为蓝色。
'''<BR>'''过虑选择集,筛选出垂直钢筋和paixs<BR>'''<BR>For Each 图元 In 用户选择集合
Select Case 图元.EntityName
Case "AcDbLine"<BR> Set 轴线(0) = 图元<BR> If 图元.Layer = "PAXIS" And _<BR> 图元.StartPoint()(0) - 图元.EndPoint()(0) < 10 Then<BR> <BR> 轴线集合.AddItems 轴线
End If<BR>Case "AcDbText"<BR> If 图元.Layer = "垂直钢筋" Then<BR> Set 标注(0) = 图元<BR> 标注集合.AddItems 标注
End If<BR>Case Else
End Select
Next 图元
'''<BR>'''进行镜像<BR>'''<BR>For Each 标注文字 In 标注集合
Dim 文字的x坐标 As Double<BR> Dim 最近的x坐标 As Double<BR> Dim 最小值 As Double<BR> 最小值 = 0<BR> 标注文字的x坐标 = 标注文字.InsertionPoint()(0)<BR> <BR> For Each 对称轴线 In 轴线集合<BR> If 最小值 = 0 Then<BR> 最小值 = Abs(标注文字的x坐标 - 对称轴线.StartPoint()(0))<BR> 最近的x坐标 = 对称轴线.StartPoint()(0)<BR> End If<BR> If 最小值 > Abs(标注文字的x坐标 - 对称轴线.StartPoint()(0)) Then<BR> 最小值 = 标注文字的x坐标 - 对称轴线.StartPoint()(0)<BR> 最近的x坐标 = 对称轴线.StartPoint()(0)<BR> End If<BR> Next 对称轴线<BR> ' 定义镜像轴<BR>Dim point1(0 To 2) As Double<BR>Dim point2(0 To 2) As Double<BR>point1(0) = 最近的x坐标: point1(1) = 0: point1(2) = 0<BR>point2(0) = 最近的x坐标: point2(1) = 1: point2(2) = 0<BR>'MsgBox "被镜像的文字是:" & _<BR>'&"镜像的坐标是:" &最近的x坐标<BR>Dim 镜像文字 As AcadText<BR>Set 镜像文字 = 标注文字.Mirror(point1, point2)
<BR>Next 标注文字
End Sub
这段代码还会时不时的出错
不知道是为什么
在autocad2000里面可以运行而且文字镜像好好的,但是在r14里面不可以
昨天是不可以,刚刚就出错了,在"For Each 图元 In 用户选择集合"这个位置
谢谢 镜像文字时不会有问题。
程序在创建选择集时没有判断选择集是否已经存在。这样第二次运行时就会出错。
页:
[1]