你好。最近我决定先深入研究vlisp和activex。在vlide的帮助下,这远没有我最初想象的那么痛苦。
基于此Adesk AddRevolvedSolid方法(ActiveX)参考
http://help.autodesk.com/view/ACD/2015/ENU/?guid=GUID-C23158D9-F68B-44C6-B323-8196D8D5224D
我知道我需要一个区域作为配置文件。。。但我不太明白我做错了什么。我设法创建了区域,但当我尝试将其馈送到addrevolvedsolid时,我得到了一个错误:错误的参数类型:variantp(#)。
这是代码。最后一个符号(solidObj)是失败的符号
- (defun c:try3 ()
- (setq doc (vla-get-activedocument (vlax-get-acad-object))
- space (vlax-get-property doc (if (= 1 (getvar 'cvport))'paperspace 'modelspace))
- p1 '(0.5 0.0)
- p2 '(0.5 1.0)
- p3 '(1.9 1.0)
- p4 '(2.0 0.9)
- p5 '(2.0 0.1)
- p6 '(1.9 0.0)
- rotAxisPt (vlax-3d-point 0 0 0)
- rotAxisDir (vlax-3d-point 0 1 0)
- rotAngle 6.28
- sh1 (vlax-ename->vla-object
- (entmakex
- (list
- (cons 0 "LWPOLYLINE")
- (cons 100 "AcDbEntity")
- (cons 100 "AcDbPolyline")
- (cons 90 6)
- (cons 70 1)
- (cons 10 p1)
- (cons 10 p2)
- (cons 10 p3)
- (cons 10 p4)
- (cons 10 p5)
- (cons 10 p6)
- )
- )
- )
- region1 (vlax-invoke space 'addregion (list sh1))
- solidObj (vla-AddRevolvedSolid Space (vlax-safearray-get-element (vlax-variant-value region1) 0) rotAxisPt rotAxisDir rotAngle)
- )
- )
我不会发布我所做的所有尝试/错误,但为了获取信息,它们都以相同的错误消息结束。谁能看出我做错了什么?
谢谢&干杯
杰夫! |