范例 (defun Example_Elevation() ;;; 这个范例在模型空间建立一个关联式图案填充。 ;;; 接着改变图案填充的标高 (VL-LOAD-COM) (setq AcadObject(vlax-get-acad-object)
AcadDocument(vla-get-ActiveDocument AcadObject)
mSpace(vla-get-ModelSpace AcadDocument) ) ;;;
定义图案填充 (setq patternName "ANSI31") (setq patternType 0) (setq bAssociativity :vlax-true) ;;;
建立关联式图案填充对象 (setq hatchObj(vla-AddHatch mSpace patternType patternName bAssociativity)) ;;;
建立图案填充的外环 ;;; 使用一个弧以及一个线来建立封闭环 (setq centerpnt(vlax-make-safearray vlax-vbDouble'(0 . 2))) (vlax-safearray-fill centerpnt'(50 30 0)) (setq radius 30) (setq startAngleInDegree 0) (setq endAngleInDegree 3.141592) (setq outerLoop1(vla-AddArc mSpace centerpnt radius startAngleInDegree endAngleInDegree)) (setq outerLoop2(vla-AddLine mSpace (vla-get-StartPoint outerLoop1) (vla-get-EndPoint outerLoop1))) (setq outerLoop(vlax-make-safearray vlax-vbObject '(0 . 1))) (vlax-safearray-fill outerLoop ( list outerLoop1 outerLoop2)) ;;;
附加第一个圆当作一个内环 (vla-AppendOuterLoop hatchObj outerLoop) ;;;
附加第一个圆当作一个环 (vlax-safearray-fill centerpnt'(50 45 0)) (setq radius 10) (setq innerLoop10(vla-AddCircle mSpace centerpnt radius)) (setq innerLoop1(vlax-make-safearray vlax-vbObject '(0 . 0))) (vlax-safearray-fill innerLoop1 ( list innerLoop10)) (vla-AppendInnerLoop hatchObj innerLoop1) ;;;
附加第二个圆当作另一个环 (setq radius 5) (setq innerLoop20(vla-AddCircle mSpace centerpnt radius)) (setq innerLoop2(vlax-make-safearray vlax-vbObject '(0 . 0))) (vlax-safearray-fill innerLoop2 ( list innerLoop10)) (vla-AppendInnerLoop hatchObj innerLoop2) ;;;
改变视口的观测方向以看清标高 (setq NewDirection(vlax-3d-point (list -1 -1 1))) (setq ActiveViewportSel(vla-get-ActiveViewport AcadDocument)) (vla-put-direction ActiveViewportSel NewDirection) (vla-put-ActiveViewport AcadDocument (vla-get-ActiveViewport AcadDocument)) (vla-ZoomExtents AcadObject) ;;;
找出图案填充当前的标高 (setq currElevation(vla-get-elevation hatchObj)) (princ (STRCAT "当前的标高是: " (RTOS currElevation)" Elevation范例 \n")) (PROMPT "<Enter>进行:")(VL-CMDF pause) ;;;
将图案填充标高设成3 (vla-put-elevation hatchObj 3) (vla-Evaluate hatchObj) (vla-ZoomExtents AcadObject) (princ (STRCAT "标高当前是:" (RTOS (vla-get-elevation hatchObj)) " Elevation范例 \n")) (princ) ) |