乐筑天下

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

[编程交流] VBA-在ru后绘制多段线

[复制链接]

3

主题

6

帖子

3

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 21:58:08 | 显示全部楼层 |阅读模式
你好
我想知道是否可以执行宏:
1.启动模块
2.在auto cad中绘制多段线(与普通一样,使用pline comannd在cad中绘制多边形)
3、端画多边形
4、取新poly坐标,换颜色。
 
这是一个示例算法,但它向您展示了我想要如何创建多段线。我不想使用变量的坐标来放置多边形,我通常希望绘制多边形使用函数,即orto或sample来查看形状。我的计划将是绘制多边形和多边形后,将准备绘制。有可能按我想的方式做吗?
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 22:14:52 | 显示全部楼层
通过不断添加行,并以前一行的端点为基础使用GetPoint,可以模拟您描述的实时动态反馈。最后,可以删除这些线并创建适当的多段线。
 
一个主要缺点是,如果您想考虑圆弧,我不认为可以通过VBA重新创建多段线命令的圆弧/凸起创建序列。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 22:19:03 | 显示全部楼层
如果您有一个点列表((12 34)(56 78)。。。。这将绘制一条线
 
  1. ; list is coordsxy
  2. (command "_PLINE")
  3. (while (= (getvar "cmdactive") 1 )
  4. (repeat (length co-ordsxy)
  5. (command  (nth (setq x (+ x 1)) co-ordsxy))
  6. )
回复

使用道具 举报

3

主题

6

帖子

3

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 22:28:39 | 显示全部楼层
如果我有点列表,我知道如何创建多段线。我想运行命令pline,这样用户就可以绘制多边形了。对我来说,仅仅抓住要点是不够的,我需要看看我在画什么。获取点是无用的,因为你们可以选择关于不同坐标的点,即我想画垂直线,但第二个点的选择和第一个点的x不同。
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 22:38:50 | 显示全部楼层
我的VBA生锈了,所以我不会走得太远(只会画线)。这里有一些代码说明了我在上面提出的建议。
 
  1. Sub Example_AddLine()
  2. Dim strPrompt As String
  3. Dim dblPt() As Double
  4. Dim dblNextPt() As Double
  5. Dim blnTrue As Boolean
  6. Dim lineObj As AcadLine
  7. strPrompt = "Get First Point: "
  8. blnTrue = True
  9.   With ThisDrawing.Utility
  10.      On Error Resume Next
  11.      dblPt = .GetPoint(, strPrompt)
  12.      If Err.Number <> 0 Then Exit Sub
  13.      
  14.    Do While blnTrue = True
  15.        strPrompt = "Get Next Point: "
  16.        dblNextPt = .GetPoint(dblPt, strPrompt)
  17.        If Err.Number <> 0 Then blnTrue = False
  18.        Set lineObj = ThisDrawing.ModelSpace.AddLine(dblPt, dblNextPt)
  19.        dblPt = dblNextPt
  20.    Loop
  21.       
  22.    On Error GoTo 0
  23.    End With
  24. End Sub

 
GetPoint方法将在输入期间尊重正交设置,但如果使用对象捕捉,则不会。如果要解决这种组合,您必须编写自己的逻辑。
 
请参阅正在运行的代码的屏幕广播。
https://screencast.autodesk.com/main/details/46bb9fdd-e8b6-49c7-91de-f7ea2f113ef7
回复

使用道具 举报

3

主题

6

帖子

3

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 22:47:32 | 显示全部楼层
是的,这是一种解决方案,但它仍然不完全是我的意思。我放不下绳子的长度。
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 22:53:49 | 显示全部楼层
对不起,我浪费了你的时间。
回复

使用道具 举报

3

主题

6

帖子

3

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 23:01:09 | 显示全部楼层
对不起,你误解了我。你的建议很有帮助,谢谢你。但我很失望vba不能做到这一点。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 13:15 , Processed in 0.891182 second(s), 68 queries .

© 2020-2025 乐筑天下

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