VB调用CAD生成凸轮机构的3维实体,不出图怎么办?

我是在用VB编写的凸轮机构的参数化设计的程序,然后调用CAD出图。VB的程序运行都没有问题,也在picturebox里看到了静态的凸轮。但CAD里却没有任何的图形和线段。
不知道问题出在那里了,各位大侠给我那个主吧!

我程序是参考别人编的。

Private Sub Command5_Click()

'首先引用 acad 2008 Object Library类型库
Dim myAcadApp As autocad.AcadApplication
Dim activeDoc As autocad.AcadDocument
Dim acMS As autocad.AcadModelSpace
On Error Resume Next
Set myAcadApp = GetObject(, "Autocad.Application") '检查AutoCAD是否已经打开
If Err Then '没有打开
Err.Clear
Set myAcadApp = CreateObject("Autocad.Application") '打开CAD
If Err Then
MsgBox ("不能运行AUTOCAD,请检查")
Unload Me
Exit Sub
End If
End If
myAcadApp.WindowState = autocad.acMin

'1.创建样条曲线
Dim curves As autocad.AcadSpline
Dim fitPoints(0 To 360 * 3) As Variant
Dim startTangent(0 To 2) As Double
Dim endTangent(0 To 2) As Double
Dim noOfpoints As Single

For i = 0 To 360
fitPoints(3 * i) = X(i): fitPoints(3 * i + 1) = Y(i):fitPoints(3 * i + 2) = 0 'X(i),Y(i)是尖顶凸轮的廓线上点的坐标
Next i

startTangent(0) = 0.5: startTangent(1) = 0.5: startTangent(2) = 0
endTangent(0) = 0.5: endTangent(1) = 0.5: endTangent(2) = 0
noOfpoints = 3
Set curves = myAcadApp.ActiveDocument.ModelSpace.AddSpline(fitPoints, startTangent, endTangent)

'2.创建面域
Dim regionObj As Variant
regionObj = myAcadApp.ActiveDocument.ModelSpace.AddRegion(curves)

Dim tulun3D As autocad.Acad3DSolid
Dim height As Double
Dim taperAngle As Double
height = 100: taperAngle = 45
Set tulun3D = myAcadApp.ActiveDocument.ModelSpace.AddExtrudedSolid(regionObj(0), height, taperAngle)
End Sub
当然用的2008版本的

我想问一下你使用的是cad哪个版本的软件,我看你的程序是引用了CAD2008版本的类型库,肯能别的cad版本与2008不兼容,所以可能造成无法出图。我看过程序编写的代码应该没问题,由于只有一个控件事件处理代码无法调试,也不知还有什么其它问题?
问题一、你定义的fitpoints(0 to 36*3)的数组有问题总数值数为36*3+1个值,在用cad的函数AddSpline(fitPoints, startTangent, endTangent)进行绘图时出错,应该改为fitpoints(0 to 36*3+2)
问题二、fitpoints数组的类型应为double类型
另外应注意fitpoints数组的曲线绘制完成后应注意为闭合的否则调用addregion()时出错。可用curves(0).closed=ture编辑多段线方式进行闭合。样条曲线的.closed属性为只读属性,不能修改,因此因在赋值过程中处理数据使头尾两顶点的坐标值一致;
问题三、curves用于addregion()函数时应为数组,可定义成一个成员的数组CURVES(0 TO 0)
问题四、在函数AddExtrudedSolid(regionObj(0), height, taperAngle)的参数中taperAngle用于拉伸为三维锥形物体时,指定各个侧面与底面的夹角,在此程序中样条曲线绘制的region面域无法拉伸为锥体,因此设置了角度taperAngle = 45后出错,应改为taperAngle = 0。
建议调试过程中把这句On Error Resume Next用引号先做注释,避免调试过程无法提示错误信息。
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜