明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 979|回复: 2

[经验] command > vlisp

  [复制链接]
发表于 2020-4-23 18:48 | 显示全部楼层 |阅读模式
本帖最后由 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)


评分

参与人数 1明经币 +1 收起 理由
434939575 + 1 很给力!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2020-4-24 21:55 | 显示全部楼层
本帖最后由 tryhi 于 2020-4-24 22:00 编辑

论三角形不提海伦公式?除了第一种与三角形有直接关系,但是非调用cal?嫌速度不够慢?其他与“三角形”似乎都不是直接关系,有点标题党的味道
 楼主| 发表于 2020-4-24 22:53 | 显示全部楼层
本帖最后由 1291500406 于 2020-4-24 23:11 编辑
tryhi 发表于 2020-4-24 21:55
论三角形不提海伦公式?除了第一种与三角形有直接关系,但是非调用cal?嫌速度不够慢?其他与“三角形”似 ...

在初中家庭作业上只能按照公式计算面积,在CAD里,图元属性是主要的获取面积方法,这只是一个三角形,那多边形面积,用公式不得算死,我只是调用了CAD的计算库,返回面积数据,对于执行速度,三角形,海伦公式速度第一,对于统用性,图元属性不可小视
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-3-28 23:59 , Processed in 0.246812 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表