乐筑天下

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

[编程交流] 然后提示用户输入多段线

[复制链接]

13

主题

26

帖子

13

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
84
发表于 2022-7-6 17:26:10 | 显示全部楼层 |阅读模式
大家好,
我觉得有一个非常简单的解决方案。我想提示用户创建一条多段线(应该是闭合的,即区域,但这是另一个故事),然后对生成的区域(我要找的区域)做一些事情。此外,使用acSelectionSetLast集合获取多段线(?)。
 
  1. Sub buildingSQFT()
  2. Dim Ent As AcadEntity
  3. Dim Sset As AcadSelectionSet
  4. ThisDrawing.ActiveSpace = acModelSpace
  5. MsgBox ("Draw Polyline to define the area.")
  6. WHAT COULD GO HERE TO "WAIT" FOR THE USER TO DRAW THE POLYLINE?
  7. On Error Resume Next
  8. ThisDrawing.SelectionSets.Item("buildingSQFT").Delete
  9. Set Sset = ThisDrawing.SelectionSets.Add("buildingSQFT")
  10. Sset.Select acSelectionSetLast
  11. Sset.Delete
  12. End Sub

 
谢谢大家!
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 18:22:13 | 显示全部楼层
这是我的旧的
随意换成你的西装
 
[code]选项明确公共子动态多段线()作为变量Dim DBLCORS()作为双Dim i作为长Dim oPoly作为AcadLWPolyline Dim oEnt(0)作为身份Dim regVar作为变量Dim oText作为变量Dim lngResp作为长Dim regObj作为变量Dim txtPt(2)作为双On错误恢复下一个pickPt=此绘图。公用事业GetPoint(,vbCr和“第一点:”)如果Err=0,则ReDim dblCoors(1)dblCoors(i)=pickPt(0):dblCoors(i+1)=pickPt(1)Do直到Err。数字0 i=i+2 pickPt=ThisDrawing。公用事业GetPoint(pickPt,vbCr&“拾取下一个点[或按Enter键停止]:”)ReDim Preserve DBLCORS(UBound(DBLCORS)+2)DBLCORS(i)=pickPt(0):DBLCORS(i+1)=pickPt(1)如果oPoly为空,则设置oPoly=ThisDrawing。模型空间。添加LightweightPolyline(dblCoors)或oPoly。坐标=DBLCORS End If Loop End If oPoly。闭合=真实oPoly。更新集合oEnt(0)=oPoly regVar=ThisDrawing。模型空间。AddRegion(oEnt)Set regObj=regVar(0)cenPt=regObj。质心调试。打印“轮廓的质心为”&顶点(0)&“,”&顶点(1),“区域示例”'
回复

使用道具 举报

13

主题

26

帖子

13

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
84
发表于 2022-7-6 18:36:31 | 显示全部楼层
谢谢J!看起来效果会很好。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 16:35 , Processed in 1.522561 second(s), 58 queries .

© 2020-2025 乐筑天下

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