ningyong58 发表于 2009-9-4 13:28:00

handent 模拟尺寸关联标注操作.

本帖最后由 作者 于 2009-9-4 14:56:23 编辑 <br /><br /> <p>命令: dimreassociate<br/>选择要重新关联的标注 ...<br/>选择对象: (handent "180c")&nbsp; (---- 操作成立 )<br/>&lt;图元名: 7ed77720&gt;<br/>找到 1 个</p><p>选择对象:</p><p>选择弧或圆&lt;下一个&gt;: (handent "180b") (------操作不成立)<br/>&lt;图元名: 7ed77718&gt;</p><p>这关不过,无法编lisp程序.</p><p>问选择弧或圆,是否不能用HandEnt ,只能用鼠标来操作.谢谢.</p>

英雄无敌 发表于 2009-9-4 15:38:00

<p>你可能还要用圆弧上的一点来组成一个表,就像用(entsel)得到的表一样</p>

兰州人 发表于 2009-9-4 16:04:00

选择弧或圆<下一个>: 这不是一个图元.
应选择为点(list 2 3 4)这也就是圆上的一点.
参考一个VBA程序
Sub LS()
Dim Ent1 As AcadEntity, Ent2 As AcadEntity
Dim objCircle As AcadCircle
Dim objDia As AcadDimDiametric
Dim DegToRad, ss As String
DegToRad = Atn(1) * 4 / 180
DD = 100
With ThisDrawing
    Debug.Print tt
    Dim pp(2) As Double, pp1(2) As Double, pp2(2) As Double
    pp2(0) = 10 * Cos(45 * DegToRad) / 2
    pp2(1) = 10 * Sin(45 * DegToRad) / 2
    ss = "(LIST " & Str(DD / 2) & " 00)"
    ss = Left(ss, Len(ss) - 1) & ")"
    Set objCircle = .ModelSpace.AddCircle(pp, DD / 2)
    Set objDia = .ModelSpace.AddDimDiametric(pp, pp2, 10)
    tt = "(handent " & Chr(34) & objDia.Handle & Chr(34) & ")" & vbCr & vbCr
    tt = tt & ss & vbCr
    .SendCommand "Dimreassociate" & vbCr & tt
End With
End Sub

zml84 发表于 2009-9-4 16:17:00

双元表。<div>(图元名  坐标)</div>

兰州人 发表于 2009-9-4 22:02:00

模拟Dimlinear和Diameter理解一下选择弧或圆或选择点的函义吧。
Sub LL()
Dim objLine As AcadLine
With ThisDrawing
    .SendCommand "E" & vbCr & "All" & vbCr & vbCr
    Dim DwgToRad
    DegToRad = Atn(1) * 4 / 180
    ''
    Dim objCircle As AcadCircle, Dd, Ss, Tt, Alfa
    Dd = 20
    Alfa = 40
    ''
    Dim P1(2) As Double, P2(2) As Double, P3(2) As Double, Pp(2) As Double
    P2(0) = 10
    P3(0) = 5: P3(1) = 5
    Pp(0) = Dd * Cos(Alfa * DegToRad) / 2
    Pp(1) = Dd * Sin(Alfa * DegToRad) / 2
    Set objLine = .ModelSpace.AddLine(P1, P2)
    Dim S1 As String, S2 As String, S3 As String
    S1 = "(list "
    S2 = "(list "
    S3 = "(list "
    Tt = "(list "
    For ii = 0 To 2
      S1 = S1 & P1(ii) & " "
      S2 = S2 & P2(ii) & " "
      S3 = S3 & P3(ii) & " "
      Tt = Tt & Pp(ii) & " "
    Next ii
    S1 = S1 & ")": S2 = S2 & ")": S3 = S3 & ")": Tt = Tt & ")"
    Debug.Print Tt
    .SendCommand "Dimlinear" & vbCr & S1 & vbCr & S2 & vbCr & S3 & vbCr
    Set objCircle = .ModelSpace.AddCircle(P1, Dd / 2)
    Ss = "(List " & Dd / 2 & " 0 0)"
   
    Debug.Print Ss
    'Tt = "A" & vbCr & "20" & vbCr & Ss & vbCr
    'Tt = Ss & vbCr
    .SendCommand "DimDiameter" & vbCr & Ss & vbCr & Tt & vbCr
   
End With
ZoomExtents

End Sub
页: [1]
查看完整版本: handent 模拟尺寸关联标注操作.