作者suny999 (满23篇了...)
看板Cad_Cae
标题Re: [问题] Autolisp
时间Thu Jun 4 22:41:56 2009
※ 引述《jaifei (这样子阿...)》之铭言:
: 嗯嗯.我知道CAD原本就有AREA的计算功能
: 但是计算的是最後的总面积
: 而我需要的是连计算过程中的计算式OD都要写出来
下面是算三角形面积的程式,有附列式功能,随便啦
(defun c:AreaFormula()
(prompt "\nFormula of a triangle area:")
(setq pt1 (getpoint "1st point:"))
(setq pt2 (getpoint "2nd point:"))
(setq pt3 (getpoint "3rd point:"))
;(command "ucs" "m" pt1)
(setq L1 (distance pt1 pt2))
(setq L2 (distance pt1 pt3))
(setq ang1(angle pt1 pt2))
(setq ang2(angle pt1 pt3))
(setq h (
abs(*(sin
(- ang2 ang1))L2)))
(setq area(*(*L1 h)0.5))
(setq str (strcat "\n(Bottom " (rtos L1)
")*(High " (rtos h)
")
/2=(Area " (rtos area)
")" ) )
(command "text" pt1 (/ h 10)
(*(/ ang1 pi)180)str)
(princ str)
(princ)
)
sorry 没有 debug 好就丢出来 红字部份为修正
1.
(command "ucs" "m" pt1) 多此一举
2.
abs 是为了顺钟向取点得负值 text字高就会出错
3.
(- ang2 ang1) 忘了减ang1是致命错 若三角形底非水平则出错
4.
/2 漏写 谢谢 camelot1123
5.
(*(/ ang1 pi)180) 忘了径度转角度
6.
(princ str) 谢谢 Egriawei
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.169.206.137
※ 编辑: suny999 来自: 118.169.206.137 (06/04 22:47)
1F:推 camelot1123:你的最後text列式只有底乘高没有除已2 @@" 06/04 22:59
2F:→ jaifei:大大大感恩阿!!!! 06/05 01:05
3F:推 jaifei:但是好像....有问题...到了输入文字的时候就也没列出来 06/05 01:16
4F:推 Egriawei:osnap记得关掉,另外也可以试试海龙公式 06/06 13:40
5F:→ Egriawei:最後那个也可用pinrc就好,不用特地弄个text 06/06 13:42
6F:→ Egriawei:princ 06/06 13:42
7F:→ Egriawei:这程式应该没什麽问题(y) 06/06 13:43
※ 编辑: suny999 来自: 118.169.192.153 (06/06 20:23)