参数Type(在setXdata method 中)无效 是怎么回事
我用VB做了一个窗体向CAD图形中添加扩展数据Private Sub Command7_Click()
'设定扩展数据
Dim xdataType As Integer '整数型组码
Dim xdata As Variant '组码值为变体类型
Dim reals3(0 To 2) As Double
Dim worlPos(0 To 2) As Double
xdataType = Val(Text2.Text)
xdata = Val(Text3.Text)
Dim sset As Object
Set sset = AcadApp.ActiveDocument.SelectionSets.Add("ss1")
sset.SelectOnScreen
Dim ent As Object
For Each ent In sset
ent.SetXData xdataType, xdata
Next ent
sset.Clear
sset.Delete
End Sub
当我在文本框中输入数值后,点击按钮执行后就是这个结果,说参数Type无效 --------------------编程问答-------------------- 同学,你这个是错的当然无效了,里面都没有值,连个header都没有
dim intType(1) as integer
dim strData(1) as string
intType(0)=1001
intType(1)=1000
strData(0)="XdataHeader"
strData(1)="Helloworld"
xdata=strData
ent.SetXData intType, xdata
这样就差不多了
最简单的方法就是你参照autocad vba的帮助; 在setXData的地方按F1
--------------------编程问答-------------------- 我是需要在文本框中输入组码和组码值,然后点击按钮来实现添加过程,这个怎么解决呢? --------------------编程问答-------------------- 我试了试,还是不行啊 --------------------编程问答-------------------- 你自己看看帮助吧,我看你这个定义都是定义的object
或者你把代码贴出来 --------------------编程问答--------------------
首先谢谢你的指点。以上就是这个功能的整个代码,我要怎么定义才合适呢?在第一个文本框内输入xdataType,在第二个文本框内输入xdata,这样点击按钮后在模型空间内选择对象,将扩展数据添加到选择的对象中。我要怎样在按钮的点击事件中编写代码才能实现以上功能呢?非常感谢~~~· --------------------编程问答--------------------
就是我这么改就可以阿
dim intType(1) as integer
dim strData(1) as string
intType(0)=1001
intType(1)=1000
strData(0)="XdataHeader"
strData(1)=text3.text
Dim sset As AutoCAD.AcadSelectionSet
Set sset = AcadApp.ActiveDocument.SelectionSets.Add("ss1")
sset.SelectOnScreen
Dim ent As As AutoCAD.AcadEntity
For Each ent In sset
ent.SetXData xdataType, xdata
Next ent
XData里面 header的类型是1001,item的类型是1000;没有需要用户输入的类型
不是说了去看autocad vba的帮助了么,里面有现成的例子 --------------------编程问答-------------------- 谢谢了,我再研究一下。
补充:VB , API