乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 69|回复: 5

VBA中的边界多边形

[复制链接]

7

主题

35

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
63
发表于 2007-1-22 02:22:09 | 显示全部楼层 |阅读模式
有人在VBA中创建代码来匹配边界多段线命令吗
我搜索了一下,什么也没有找到——只有唐;我不想重建轮子。
回复

使用道具 举报

13

主题

117

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
173
发表于 2007-1-22 04:34:24 | 显示全部楼层
根据我的经验,只有两种方法可以做到这一点(或类似的方法)
一种是从多段线创建区域,然后使用布尔(我的意思是在减法等中)来生成所需形状的区域,或者使用良好的ol'SendCommand*抖动*
有关此示例,请检查此处:http://discussion.autodesk.com/thread.jspa?messageID=415313
回复

使用道具 举报

13

主题

117

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
173
发表于 2007-1-29 17:47:30 | 显示全部楼层
这应该做的伎俩和更多…我做了这个计算领域。只需将其复制到你的应用程序中,按下命令按钮,运行它,然后在关闭的()内单击你想要的区域
私有子cmdArea\u Click()
Me。隐藏Dim Pt作为变量,gotpt作为布尔值
gotpt=False
Do
On Error Resume Next
Pt=ThisDrawing.Utility。GetPoint(,“选择内部点”)
如果出错,则出错。清除gotpt=False
Else
gotpt=True
结束If>。SendCommand Chr(3)&Chr(3)&amp&引用-“边界”&vbCr&Pt(0)&amp&quot&引用&第(1)部分和;vbCr&vbCr''''''''''''''
本图纸。SendCommand“_面积“&vbCr&amp&引用;“对象”&vbCr&amp&引用;最后一个“&vbCr变面积_面积“&vbCr&amp&引用;“对象”&vbCr&amp&引用;最后一个“&vbCr本图。SendCommand“;删除“&vbCr&amp&引用;最后一个“&vbCr&vbCr'''''''''''''''''
&039'''''''''''''''''
Dim SysVarName作为字符串;DIMSCALE“
sysVarName2=;面积“
VarData=ThisDrawing。GetVariable(SysVarName)
varArea=Round(Val(ThisDrawing.GetVariable(sysVarName2))/144,0)&amp&引用;平方英尺“
intData=VarData*0.09375#039;对于3/32文本,将文本对象设置为AcadText,将文本设置为变量,将高度设置为变量。添加文本(varArea,Pt,Height)
End Sub
回复

使用道具 举报

13

主题

117

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
173
发表于 2007-1-30 04:06:30 | 显示全部楼层
这里是经过轻微编辑的版本,仅在2005年测试
  1. Option Explicit
  2. '| request check "Break on Unhandled Errors"
  3. '| in Tools -> References -> Options -> General tab
  4. '| -> Error Trapping field
  5. '|---------------------------------------------------|
  6. Private Sub cmdArea_Click()
  7.      Me.Hide
  8.      Dim Pt As Variant, _
  9.          varArea As String, _
  10.          pstr As String, _
  11.          SysVarName As String, _
  12.          sysVarName2 As String, _
  13.          VarData As Variant, _
  14.          intData As Double, _
  15.          textObj As AcadText, _
  16.          text As Variant, _
  17.          Height As Variant, _
  18.          Msg As String
  19.      SysVarName = "DIMSCALE"
  20.      sysVarName2 = "AREA"
  21.      With ThisDrawing
  22.           .SetVariable "OSMODE", 0
  23.           .SetVariable "CMDECHO", 0
  24.           '' Multiple getpoint method by Tony Tanzillo
  25.           Msg = vbCrLf & "Select an Internal Point"
  26.           Do
  27.                On Error Resume Next
  28.                Pt = .Utility.GetPoint(, Msg)
  29.                If Err Then
  30.                     Err.Clear
  31.                     Exit Do
  32.                End If
  33.                On Error GoTo 0
  34.                pstr = Replace(CStr(Pt(0)), ",", ".") & "," & _
  35.                       Replace(CStr(Pt(1)), ",", ".")
  36.                .SendCommand Chr(3) & Chr(3) & "._-boundary" & vbCr & pstr & vbCr & vbCr
  37.                .SendCommand "._area" & vbCr & "_Object" & vbCr & "_Last" & vbCr
  38.                .SendCommand "._erase" & vbCr & "_Last" & vbCr & vbCr
  39.                VarData = .GetVariable(SysVarName)
  40.                varArea = Round(Val(.GetVariable(sysVarName2)) / 144, 2) & " Sq. Ft."
  41.                intData = VarData * 0.09375     'for 3/32 text
  42.                Height = intData
  43.                Set textObj = .ModelSpace.AddText(varArea, Pt, Height)
  44.                textObj.Update
  45.                Msg = vbCrLf & "Next Internal Point or ENTER to exit: "
  46.           Loop
  47.           On Error GoTo 0
  48.           .SetVariable "OSMODE", 703
  49.           .SetVariable "CMDECHO", 1
  50.      End With
  51.      MsgBox "Done"
  52.      Unload Me
  53. End Sub

~&039;J#039~
回复

使用道具 举报

13

主题

117

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
173
发表于 2007-1-30 10:17:10 | 显示全部楼层
谢谢胖子,那'甚至更好!
回复

使用道具 举报

13

主题

117

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
173
发表于 2007-1-30 18:02:48 | 显示全部楼层
C#039;我只是用了你的代码,不过没什么大不了的;J#039~
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-7 10:27 , Processed in 1.414945 second(s), 64 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表