动态块问题,实在找不出来哪错了,请各位前辈抽空看下源码
本帖最后由 dage23wo 于 2015-7-14 16:48 编辑Private Sub CommandButton1_Click()
Dim PtPick As Variant
UserForm1.hide
PtPick = ThisDrawing.Utility.GetPoint(, "请在屏幕上选择起点:")
TextBox1.Text = PtPick(0)
TextBox2.Text = PtPick(1)
UserForm1.Show
Dim blk As IAcadBlockReference2
Dim ent As AcadEntity
Dim pnt As Variant
If ent.ObjectName = "立柱" Then
Set blk = ent
Else
Exit Sub
End If
Dim dyBlkPropCol As Variant ' 自定义特性的集合
Dim dyBlkProp As AcadDynamicBlockReferenceProperty ' 自定义特性
Dim i As Long
If blk.IsDynamicBlock Then
' 获得动态块的自定义特性
dyBlkPropCol = blk.GetDynamicBlockProperties
For i = 0 To UBound(dyBlkPropCol)
Set DBlockProperties = dyBlkPropCol(i)
With DBlockProperties
If .PropertyName = "距离" Then
.Value = CDbl(TextBox3.Text)
Exit For
End If
End With
Next i
End If
Dim ptInsert(0 To 2) As Double
ptInsert(0) = TextBox1.Text: ptInsert(1) = TextBox2.Text: ptInsert(2) = 0
Set blk = ThisDrawing.ModelSpace.InsertBlock(ptInsert, "立柱", 1, 1, 1, 0)
ZoomAll
End Sub 代码中错误很多,应该是先插入块参照blk,然后再更改块参照的动态参数,还有,ent也没见你赋值。
你这个问题,应该把dvb和含动态块的图纸一起发上来,否则没人帮你看的,谁会为了帮你还要自己辛辛苦苦照你代码做个窗体界面,还要画个动态块再调试? wangshuping42 发表于 2015-7-14 11:37 static/image/common/back.gif
代码中错误很多,应该是先插入块参照blk,然后再更改块参照的动态参数,还有,ent也没见你赋值。
你这个问题 ...
前辈,我把动态块和DVB文件传上去了,能否帮我看看。非常非常感谢您。谢谢 问题就不给你说了,自己看
wangshuping42 发表于 2015-7-15 09:16 static/image/common/back.gif
问题就不给你说了,自己看
谢谢老师。 前辈要是对自定义属性中的有列表的属性操作也是一样的么? wangshuping42 发表于 2015-7-15 09:16 static/image/common/back.gif
问题就不给你说了,自己看
前辈要是对自定义属性中的有列表的属性操作也是一样的么? dage23wo 发表于 2015-7-15 11:43 static/image/common/back.gif
前辈要是对自定义属性中的有列表的属性操作也是一样的么?
一样的,就是赋值类型不一致,数值是double类型,列表应该是string类型,用cstr函数转换下
页:
[1]