VBA-在ru后绘制多段线
你好我想知道是否可以执行宏:
1.启动模块
2.在auto cad中绘制多段线(与普通一样,使用pline comannd在cad中绘制多边形)
3、端画多边形
4、取新poly坐标,换颜色。
这是一个示例算法,但它向您展示了我想要如何创建多段线。我不想使用变量的坐标来放置多边形,我通常希望绘制多边形使用函数,即orto或sample来查看形状。我的计划将是绘制多边形和多边形后,将准备绘制。有可能按我想的方式做吗? 通过不断添加行,并以前一行的端点为基础使用GetPoint,可以模拟您描述的实时动态反馈。最后,可以删除这些线并创建适当的多段线。
一个主要缺点是,如果您想考虑圆弧,我不认为可以通过VBA重新创建多段线命令的圆弧/凸起创建序列。 如果您有一个点列表((12 34)(56 78)。。。。这将绘制一条线
; list is coordsxy
(command "_PLINE")
(while (= (getvar "cmdactive") 1 )
(repeat (length co-ordsxy)
(command(nth (setq x (+ x 1)) co-ordsxy))
)
如果我有点列表,我知道如何创建多段线。我想运行命令pline,这样用户就可以绘制多边形了。对我来说,仅仅抓住要点是不够的,我需要看看我在画什么。获取点是无用的,因为你们可以选择关于不同坐标的点,即我想画垂直线,但第二个点的选择和第一个点的x不同。 我的VBA生锈了,所以我不会走得太远(只会画线)。这里有一些代码说明了我在上面提出的建议。
Sub Example_AddLine()
Dim strPrompt As String
Dim dblPt() As Double
Dim dblNextPt() As Double
Dim blnTrue As Boolean
Dim lineObj As AcadLine
strPrompt = "Get First Point: "
blnTrue = True
With ThisDrawing.Utility
On Error Resume Next
dblPt = .GetPoint(, strPrompt)
If Err.Number <> 0 Then Exit Sub
Do While blnTrue = True
strPrompt = "Get Next Point: "
dblNextPt = .GetPoint(dblPt, strPrompt)
If Err.Number <> 0 Then blnTrue = False
Set lineObj = ThisDrawing.ModelSpace.AddLine(dblPt, dblNextPt)
dblPt = dblNextPt
Loop
On Error GoTo 0
End With
End Sub
GetPoint方法将在输入期间尊重正交设置,但如果使用对象捕捉,则不会。如果要解决这种组合,您必须编写自己的逻辑。
请参阅正在运行的代码的屏幕广播。
https://screencast.autodesk.com/main/details/46bb9fdd-e8b6-49c7-91de-f7ea2f113ef7 是的,这是一种解决方案,但它仍然不完全是我的意思。我放不下绳子的长度。 对不起,我浪费了你的时间。 对不起,你误解了我。你的建议很有帮助,谢谢你。但我很失望vba不能做到这一点。
页:
[1]