Civil 3d对象
有没有办法使用lisp提取C3D对象数据? 欢迎来到论坛,您需要什么样的3d对象和什么数据? 我不使用C3D,但从其他示例来看,我认为您需要使用AeccXUiLand的一个实例。AecCaplication对象。 comapny最近切换到C3D,我编写了许多lisp例程,这些例程与我们的旧道路设计软件一起工作,由于各种原因不再工作。
也就是说,例如,我希望能够选择一个纵断面对象并切换当前UCS以匹配纵断面高程和桩号。 从我所发现的一切(尽管可能有限),我总是被指向。net访问所有civil3d功能。 SSM-JT。。。我在努力理解你想要做什么,或者你想要得到什么。我希望你不要因为私人原因而变得神秘。这不是通过公共论坛获得帮助的好方法。如果你需要私人帮助,请给我留言。
这就是说:如果你想从配置文件中提取信息,我已经使用附加到配置文件视图的数据完成了这项工作。。。有点不方便,但我能够使用我已经熟悉的visual lisp。最好是学习。NET,如果你计划在整个职业生涯中继续进行定制。我不。
祝你好运 轮廓信息的一些示例,如果认真使用,对齐应该与上面类似。网
(defun ah:vercheck ()
(vl-load-com)
(if ((lambda (vrsn)
(cond
((vl-string-search "R17.2" vrsn) (setq appstr "6.0")) ;09
((vl-string-search "R18.0" vrsn) (setq appstr "7.0")) ;10
((vl-string-search "R18.1" vrsn) (setq appstr "8.0")) ;11
((vl-string-search "R18.2" vrsn) (setq appstr "9.0")) ;12
((alert "This version of C3D not supported!"))
)
)
(vlax-product-key)
) ; end if condition progn is true
(progn
(cond (*AeccDoc*)
((setq *AeccDoc*
(vlax-get
(cond (*AeccApp*)
((setq *AeccApp*
(vla-getinterfaceobject
(cond (*Acad*)
((setq *Acad* (vlax-get-acad-object)))
)
(strcat "AeccXUiLand.AeccApplication." appstr)
)
)
)
)
'ActiveDocument
)
)
)
) ; end main cond
) ; end progn
) ; end if vsrn
)
(vlax-for j (vlax-get *AeccDoc* 'SurfaceS)
(setq lst (cons (cons (vla-get-name j) j) lst))
(vlax-for k (vlax-get *AeccDoc* 'SurfaceS)
(if (= Surfacepick (vla-get-name k)) ;match surface
(vlax-put k 'Style (cdr (assoc surface lst)))
) ; end if
) ; end vlax-for
)
我不想“抄袭”,没有隐藏的议程,我所发现的一切,也指引着我。网我花了足够长的时间学习lisp,遗憾的是,我编写的许多lisp例程在“我的”道路设计过程中都没有用,因为无论出于何种原因,我都无法访问大多数对象属性。我现在讨厌Autodesk和C3D。 Civil 3D仍然可以使用vanilla AutoCAD,不是吗? 我发布了lisp代码来获取曲面信息,我也对点进行了同样的操作。你读过吗?这是一个查找Autocad路线命名以获取这些特性的案例,可以做到这一点!
看看Civil 3d API等VBA下的示例文件,在旧版本上有很好的代码示例。
页:
[1]
2