所以我是编程的新手。我在LISP中做过项目,并定制了我的托盘命令份额。但是现在我想花一些时间来了解如何做Autocad能够做的更详细的事情。所以我从简单的任务开始...
我想在绘图中选择一个点。
弹出一个表单,并为我提供三个选项。
上升、运行和上升数量。
然后单击“魔法”
命令按钮。
噗,它将创建一个多段线,看起来像楼梯。
我想这将是一个让我开始的简单项目,它包含所有很棒的元素。我读过许多不同的教程,看过许多不同的例子,并且了解了很多其他项目是如何工作的。所以现在我卡住了。我知道在哪里发表声明。我知道如何添加模块。我知道如何创建表单以及如何将表单的结果显示在模块中。如果一切都公开了,为什么这些值不能从一个模块传递到另一个模块?
所有声明都在本图的页面顶部进行
Dim Bb楼梯As Double
Dim Cb楼梯As Double
Dim R As Intger
Dim X As Double
Dim Y As Double
Dim ptstair As Variant
Dim p As Collection
Dim i As Intger
Public Sub stair()
ptstair=ThisDrawing.Utility.GetPoint(,"Select a point")
MsgBox ptstair(0) & ";" & ptstair(1) & ";" & ptstair(2)
Abstair=ptstair(0)
Bbstair=ptstair(1)
Cbstair=ptstair(2)
MsgBox Abstair&Bbstair&Cbstair
StrOpt.Show
='这是我的form.EndSub
在表单中的选项之后的名称输入并按下魔法按钮...它应该开始这个模块
Public Sub makestair()
MsgBox Ab楼梯 & ";" & Bb楼梯 & ";" & 每次出现这个消息框,值都是空白的。
R=StrOpt.textboxR
X=StrOpt.textboxX
Y=StrOpt.textboxY
'在使用集合之前,您总是必须对集合执行此操作。
设置p=新集合
'我们需要r*2+1点,因为我们先上去;这给我们r水平线
对于i=1到R*2+1
'这一行告诉我们它是奇数还是偶数;i Mod 2=0表示i是即使
'(i除以2得到0的余数)
如果i Mod 2=0,那么
p.Add "(" & Ab楼梯+X*(i-2)/2 & "," & Bb楼梯+Y*i/2 & "," & Cb楼梯 & ")"
其他
p.Add "(" & Ab楼梯+X*(i-1)/2 & "," & Bb楼梯+Y*(i-1)/2 & "," & Cb楼梯 & ")"
结束如果
'这只是将变量输出到电子表格,以便您可以检查它;您可能
'将无法在AutoCAD
'这是循环的结尾;它告诉i增加1
下一个i
MsgBox p(1)&p(2)此消息框显示p的值,但它不引用之前选择的点。
我尝试了不同的语法来让addmultiline从集合中查找p的值并将它们用于应该包含在多段线中的点。我在想这个庄园中只能使用数组来进行多段线。但不确定。
结束子
如果有更好的方法来做到这一点,我愿意接受新的方向。这是对我最有意义的一个。我遇到了这么多路障,这变得越来越明显,以至于我有这么多的家庭作业要做。然后也许有一天我会变得足够熟悉,可以继续acad.net.那太好了。
谢谢大家。