我用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 DoublexdataType = 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无效

解决方案 »

  1.   

    同学,你这个是错的当然无效了,里面都没有值,连个header都没有dim intType(1) as integer
    dim strData(1) as stringintType(0)=1001
    intType(1)=1000strData(0)="XdataHeader"
    strData(1)="Helloworld"xdata=strData
    ent.SetXData intType, xdata这样就差不多了最简单的方法就是你参照autocad vba的帮助; 在setXData的地方按F1
      

  2.   

    你自己看看帮助吧,我看你这个定义都是定义的object或者你把代码贴出来
      

  3.   


    首先谢谢你的指点。以上就是这个功能的整个代码,我要怎么定义才合适呢?在第一个文本框内输入xdataType,在第二个文本框内输入xdata,这样点击按钮后在模型空间内选择对象,将扩展数据添加到选择的对象中。我要怎样在按钮的点击事件中编写代码才能实现以上功能呢?非常感谢~~~·
      

  4.   


    就是我这么改就可以阿
    dim intType(1) as integer
    dim strData(1) as stringintType(0)=1001
    intType(1)=1000strData(0)="XdataHeader"
    strData(1)=text3.textDim sset As  AutoCAD.AcadSelectionSet
    Set sset = AcadApp.ActiveDocument.SelectionSets.Add("ss1")sset.SelectOnScreenDim ent As As AutoCAD.AcadEntity
    For Each ent In sset
      ent.SetXData xdataType, xdata
    Next entXData里面 header的类型是1001,item的类型是1000;没有需要用户输入的类型不是说了去看autocad vba的帮助了么,里面有现成的例子