「Vla-addellipse」の版間の差分

提供:GizmoLabs - だいたい CAD LISP なサイト
(ページの作成:「{{AutoLISP}} ; 構文 : (vla-addellipse ''vla-object'' ''center'' ''MajorRadius'' ''RadiusRatio'' ) ; 機能 : 楕円を作図する。 ; 引数 :* vla-object … ...」)
 
編集の要約なし
 
33行目: 33行目:


; VLA で 楕円 追加(適当にactivex版)
; VLA で 楕円 追加(適当にactivex版)
(defun c:ax-addellipse (/ pt1 rad1 rad2)
(defun c:ax-addellipse (/  
   (vl-load-com)
   cenPt  majoraxis  majorpt  minorpt mspace  ratio tmp)
   (setq *actdoc* (vla-get-activedocument (vlax-get-acad-object)))
 
  (setq mspace (vla-get-modelspace *actdoc*))
   (setq doc    (vla-get-activeDocument (vlax-get-acad-object))
  (setq pt1 (vlax-3d-point (setq pt (getpoint "\n楕円の中心点: "))))
        mspace (vla-get-modelSpace doc)
   (setq rad1 (getdist "\n長径: " pt))
        CenPt (getpoint "Specify center point: ")
  (setq rad2 (/ rad1 (getdist "\n短径: " pt)))
        majorpt (getpoint "Specify endpoint of Major axis: " CenPt)
   (vla-addellipse mspace pt1 rad1 rad2)
        minorpt (getpoint "Specify endpoint of other axis: " CenPt)
  )
  ;; 主軸と複軸のチェック
  (if (< (distance majorpt CenPt) (distance minorpt CenPt))
    (setq tmp    majorpt
          majorpt minorpt
          minorpt tmp
    ))
 
   (setq majorAxis
        (list
          (- (car majorpt) (car CenPt))
          (- (cadr majorpt) (cadr CenPt)) )
        ratio (/ (distance CenPt minorpt) (distance CenPt majorpt))
  )
 
   (vla-addEllipse
    mspace (vlax-3d-point CenPt) (vlax-3d-point majorAxis) ratio))
   (princ)
   (princ)
) ;defun
) ;defun

2013年10月30日 (水) 23:02時点における最新版

構文
(vla-addellipse vla-object center MajorRadius RadiusRatio )


機能
楕円を作図する。


引数
  • vla-object … 生成する空間のVLAオブジェクト
  • center … 中心点の3Dポイント
  • MajorRadius … 楕円の主軸(正数)
  • RadiusRatio … 楕円の主軸と副軸の比率を定義する正数 1.0=円


戻り値
作成した楕円のVLAオブジェクト


サンプル
 ; コマンドで 楕円 を追加
(command "._ellipse" pause pause pause)

; コマンドで 楕円 追加(変数利用版)
(defun c:cm-addecone ()
 (setq pt1 (getpoint "\n楕円の中心点: "))
 (setq rad1 (getreal "\n長径: "))
 (setq rad2 (getreal "\n短径: "))
 (command "._ellipse" pt1 rad1 rad2)
)

; VLA で 楕円 追加(適当にactivex版)
(defun c:ax-addellipse (/ 
  cenPt  majoraxis  majorpt  minorpt mspace  ratio tmp)

  (setq doc     (vla-get-activeDocument (vlax-get-acad-object))
        mspace  (vla-get-modelSpace doc)
        CenPt (getpoint "Specify center point: ")
        majorpt (getpoint "Specify endpoint of Major axis: " CenPt)
        minorpt (getpoint "Specify endpoint of other axis: " CenPt)
  )
  ;; 主軸と複軸のチェック
  (if (< (distance majorpt CenPt) (distance minorpt CenPt))
    (setq tmp     majorpt
          majorpt minorpt
          minorpt tmp
    ))

  (setq majorAxis 
        (list
          (- (car majorpt) (car CenPt))
          (- (cadr majorpt) (cadr CenPt)) )
        ratio (/ (distance CenPt minorpt) (distance CenPt majorpt))
  )

  (vla-addEllipse
    mspace (vlax-3d-point CenPt) (vlax-3d-point majorAxis) ratio))
  (princ)
) ;defun


関連事項