Re: [心得] AutoCAD LISP 自問自答
謝謝 sjgau 出題,這題好像滿好玩的,
我也寫一個用聚合線畫弧的方法:
(vl-load-com)
(defun c:ha (/ h a)
(command "pline" pause pause "")
(setq h (getdist "\n Input the middle high of arc:"))
(setq a (vlax-ename->vla-object(entlast)))
(vla-SetBulge a 0 (/(* -2.0 h)(vla-get-Length a)))
(vla-Explode a) ;聚合線炸回ARC這行省略的話主程式只要4行
)
因為用VisualLisp畫聚合線要前置一些像是
IAcadApplication,ActiveDocument,ModelSpace的物件
還要把座標列表轉到SafeArray再轉到Variant才能 Put coordinates property
所以偷懶用 AutoLisp 畫 pline
新手上路 請多指教 感激不盡!!
※ 引述《camelot1123 (寫不完的lisp..XD)》之銘言:
: 感覺題目強調已知座標
: 就用座標寫寫看
: 別種寫法
: (defun c:arc-h( )
: (setq p1 (getpoint "\n Please pick first point for test: ")
: p2 (getpoint "\n Please pick second poimt for test: ")
: h (getreal "\n input H for test: ")
: )
: (setq pm (list (/ (+ (car p1) (car p2)) 2) (/ (+ (cadr p1) (cadr p2)) 2))
: a1 (angle p1 p2)
: a2 (+ a1 (/ pi 2))
: )
: (setq p3 (polar pm a2 h)
: )
: (command "arc" p1 p3 p2)
: (princ)
: )
: 獻醜了 ^^"
: ※ 引述《sjgau (sjgau)》之銘言:
: : 已知 P1, P2
: : P1= X1, Y1
: : P2= X2, Y2
: : 是一個弧的兩個端點
: : 弧的高度= H
: : H 有正負之分
: : H 又稱為 弦高
: : 求作 這個弧
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.169.205.22
※ 編輯: suny999 來自: 118.169.205.22 (07/18 16:52)
推
07/19 15:43, , 1F
07/19 15:43, 1F
推
07/19 16:39, , 2F
07/19 16:39, 2F
推
07/19 22:55, , 3F
07/19 22:55, 3F
推
07/20 08:06, , 4F
07/20 08:06, 4F
→
07/20 08:07, , 5F
07/20 08:07, 5F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 5 篇):