command > vlisp
本帖最后由 1291500406 于 2020-11-18 19:01 编辑(defun-q c:bb( /A B C)(command "cal" nil)
(cond((and(setq A (getpoint "\n输入A点:")) (setq B (getpoint A "\n输入B点:")) (setq C (getpoint B "\n输入C点:")))
(command "pline" "non"A "non" B"non" C "non" A"""Area" "o" "l")
(alert(strcat "\n方法一:三角函数公式法--->面积是: "(rtos(c:cal "abs(sin(ang(B,A)-ang(C,A))*dist(A,B)*dist(A,C)*0.5)"))))
(alert(strcat"\n方法二:变量法---> 面积是"(rtos(getvar "Area"))))
(alert(strcat"\n方法三:对象法---> 面积是"(rtos(vla-get-Area (vlax-ename->vla-object (entlast))))))
(alert(strcat"\n方法四:curve法---> 面积是"(rtos(vlax-curve-getArea (entlast)))))
(setq LA(distance a b)LB(distance a c)LC(distance b c)P(*(+ LA LB LC)0.5))
(alert(strcat "\n方法五:海伦公式法--->面积是: "(rtos(sqrt(* P(- P LA)(- P LB)(- P LC))))))
(entdel(entlast))))(princ))
command的undo
->
(setq doc (vla-get-activedocument (vlax-get-acad-object)))
(vla-startundomark doc)
(vla-endundomark doc)
command 的 regen
(vla-regen (vla-get-activedocument (vlax-get-acad-object)) 1)
本帖最后由 tryhi 于 2020-4-24 22:00 编辑
论三角形不提海伦公式?除了第一种与三角形有直接关系,但是非调用cal?嫌速度不够慢?其他与“三角形”似乎都不是直接关系,有点标题党的味道 本帖最后由 1291500406 于 2020-4-24 23:11 编辑
tryhi 发表于 2020-4-24 21:55
论三角形不提海伦公式?除了第一种与三角形有直接关系,但是非调用cal?嫌速度不够慢?其他与“三角形”似 ...
在初中家庭作业上只能按照公式计算面积,在CAD里,图元属性是主要的获取面积方法,这只是一个三角形,那多边形面积,用公式不得算死,我只是调用了CAD的计算库,返回面积数据,对于执行速度,三角形,海伦公式速度第一,对于统用性,图元属性不可小视
页:
[1]