Vla-addextrudedsolidalongpath

提供:GizmoLabs - だいたい CAD LISP なサイト
構文
(vla-addextrudedsolidalongpath vla-object Profile Path)


機能
外形線と押し出しのパスを指定して、押し出しソリッドを作成する。


引数
  • vla-object … VLAオブジェクト(Block、ModelSpace、PaperSpace)
  • Profile … 外形線の、Region オブジェクト
  • Path … 押出パス。パスには、Polyline、Circle、Ellipse、Spline、または Arc オブジェクトのみが使用できる。


戻り値
押し出し 3DSolid オブジェクト。


  • 2D 平面のリージョンを押し出すことしかできない。パスが外形線と同じ平面上にあったり、パスに高い曲率のリージョンがあってはならない。


サンプル
(vl-load-com)
(defun c:Example_AddExtrudedSolidAlongPath()
    ;; 押し出しソリッドの作成サンプル
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
    (setq modelSpace (vla-get-ModelSpace doc))
  
    ;; 円弧を生成
    (setq centerPoint (vlax-3d-point 5 3 0)
          radius 2
          startAngle 0
          endAngle 3.141592)
    (setq arc (vla-AddArc modelSpace centerPoint radius startAngle endAngle))

    ;; 線分を生成
    (setq line (vla-AddLine modelSpace (vla-get-StartPoint arc) (vla-get-EndPoint arc)))

    (setq curves (vlax-make-safearray vlax-vbObject '(0 . 1)))
    (vlax-safearray-put-element curves 0 arc)
    (vlax-safearray-put-element curves 1 line)
        
    ;; リージョンを生成
    ;(setq regionObj (vlax-make-safearray vlax-vbObject '(0 . 0)))
    (setq regionObj (vla-AddRegion modelSpace curves))
    
    ;; 押出パスを生成 (スプライン)
    (setq startTan (vlax-3d-point 10 10 10)
          endTan (vlax-3d-point 10 10 10))
    (setq fitPoints (vlax-make-safearray vlax-vbDouble '(0 . 8)))
    (vlax-safearray-fill fitPoints '(0 10 10
                                    10 10 10
                                    15 10 10
                                    )
    )
    (setq splineObj (vla-AddSpline modelSpace fitPoints startTan endTan))
    
    ;; ソリッドを生成
    (setq solidObj (vla-AddExtrudedSolidAlongPath modelSpace (vlax-safearray-get-element (vlax-variant-value regionObj) 0) splineObj))
 
    (vla-ZoomAll acadObj)
)

関連事項