明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1960|回复: 4

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

[复制链接]
发表于 2009-9-4 13:28:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2009-9-4 14:56:23 编辑

命令: dimreassociate
选择要重新关联的标注 ...
选择对象: (handent "180c")  (---- 操作成立 )
<图元名: 7ed77720>
找到 1 个

选择对象:

选择弧或圆<下一个>: (handent "180b") (------操作不成立)
<图元名: 7ed77718>

这关不过,无法编lisp程序.

问选择弧或圆,是否不能用HandEnt ,只能用鼠标来操作.谢谢.

发表于 2009-9-4 15:38:00 | 显示全部楼层

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

发表于 2009-9-4 16:04:00 | 显示全部楼层
选择弧或圆<下一个>: 这不是一个图元.
应选择为点(list 2 3 4)这也就是圆上的一点.
参考一个VBA程序
  1. Sub LS()
  2.   Dim Ent1 As AcadEntity, Ent2 As AcadEntity
  3.   Dim objCircle As AcadCircle
  4.   Dim objDia As AcadDimDiametric
  5.   Dim DegToRad, ss As String
  6.   DegToRad = Atn(1) * 4 / 180
  7.   DD = 100
  8.   With ThisDrawing
  9.     Debug.Print tt
  10.     Dim pp(2) As Double, pp1(2) As Double, pp2(2) As Double
  11.     pp2(0) = 10 * Cos(45 * DegToRad) / 2
  12.     pp2(1) = 10 * Sin(45 * DegToRad) / 2
  13.     ss = "(LIST " & Str(DD / 2) & " 0  0)"
  14.     ss = Left(ss, Len(ss) - 1) & ")"
  15.     Set objCircle = .ModelSpace.AddCircle(pp, DD / 2)
  16.     Set objDia = .ModelSpace.AddDimDiametric(pp, pp2, 10)
  17.     tt = "(handent " & Chr(34) & objDia.Handle & Chr(34) & ")" & vbCr & vbCr
  18.     tt = tt & ss & vbCr
  19.     .SendCommand "Dimreassociate" & vbCr & tt
  20.   End With
  21. End Sub

发表于 2009-9-4 16:17:00 | 显示全部楼层
双元表。
(图元名  坐标)
发表于 2009-9-4 22:02:00 | 显示全部楼层
模拟Dimlinear和Diameter理解一下选择弧或圆或选择点的函义吧。
  1. Sub LL()
  2.   Dim objLine As AcadLine
  3.   With ThisDrawing
  4.     .SendCommand "E" & vbCr & "All" & vbCr & vbCr
  5.     Dim DwgToRad
  6.     DegToRad = Atn(1) * 4 / 180
  7.     ''
  8.     Dim objCircle As AcadCircle, Dd, Ss, Tt, Alfa
  9.     Dd = 20
  10.     Alfa = 40
  11.     ''
  12.     Dim P1(2) As Double, P2(2) As Double, P3(2) As Double, Pp(2) As Double
  13.     P2(0) = 10
  14.     P3(0) = 5: P3(1) = 5
  15.     Pp(0) = Dd * Cos(Alfa * DegToRad) / 2
  16.     Pp(1) = Dd * Sin(Alfa * DegToRad) / 2
  17.     Set objLine = .ModelSpace.AddLine(P1, P2)
  18.     Dim S1 As String, S2 As String, S3 As String
  19.     S1 = "(list "
  20.     S2 = "(list "
  21.     S3 = "(list "
  22.     Tt = "(list "
  23.     For ii = 0 To 2
  24.       S1 = S1 & P1(ii) & " "
  25.       S2 = S2 & P2(ii) & " "
  26.       S3 = S3 & P3(ii) & " "
  27.       Tt = Tt & Pp(ii) & " "
  28.     Next ii
  29.     S1 = S1 & ")": S2 = S2 & ")": S3 = S3 & ")": Tt = Tt & ")"
  30.     Debug.Print Tt
  31.     .SendCommand "Dimlinear" & vbCr & S1 & vbCr & S2 & vbCr & S3 & vbCr
  32.     Set objCircle = .ModelSpace.AddCircle(P1, Dd / 2)
  33.     Ss = "(List " & Dd / 2 & " 0 0)"
  34.    
  35.     Debug.Print Ss
  36.     'Tt = "A" & vbCr & "20" & vbCr & Ss & vbCr
  37.     'Tt = Ss & vbCr
  38.     .SendCommand "DimDiameter" & vbCr & Ss & vbCr & Tt & vbCr
  39.    
  40.   End With
  41.   ZoomExtents
  42.   
  43. End Sub
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-1 12:11 , Processed in 0.157855 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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