问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

谁能给我个 自动计算cad图中”一种线“总长的LISP

发布网友 发布时间:2023-04-23 12:47

我来回答

3个回答

热心网友 时间:2023-10-09 14:14

不知道你的“一种线”是什么?我这有一个选择一些直线,统计总长度的LISP,供你参考,有问题可追问。
(defun c:tx (/ a b c d e m n n1) ;选择直线,统计总长度
(setq a (ssget)) ;得到选择集
(setq n 0) ;设置循环变量初值,同时也是遍历选择集的指针
(setq m 0) ;设置统计初值
(setq n1 (sslength a)) ;得到选择集长度
(while (< n n1) ;循环开始,以选择集对象数作为循环次数
(progn
(setq b (entget (ssname a n))) ;得到第n个对象的数据库
(setq c (cdr (assoc 10 b))) ;得到直线起点
(setq d (cdr (assoc 11 b))) ;得到直线终点
(setq e (distance c d)) ;得到两点距离,即直线长度
(setq m (+ m e)) ;累加直线长度
(setq n (+ n 1)) ;循环变量加一
)
)
(princ "共有") ;打印结果
(princ (itoa n1))
(princ "条直线,总长度为")
(princ (rtos m 2 4)) ;转换实数为字符串,小数形式,小数点后四位
(princ "。")
(princ)
)追问谢谢,你的只能算直线!

热心网友 时间:2023-10-09 14:14

(defun c:dl ( )
(if (null vlax-mp-object)
(vl-load-com)
)
(princ "\n选择要进行线长统计的对象")
(if (setq #si 0 &ss (ssget))
(progn
(setq #lc 0 #ll 0 #lp 0 #lr 0 #nc 0 #nl 0 #np 0 #nr 0)
(repeat (sslength &ss)
(setq &cs (vlax-ename->vla-object (ssname &ss #si)) #si (1+ #si))
(cond
((= (vla-get-objectname &cs) "AcDbCircle")
(setq #lc (+ #lc (vla-get-circumference &cs)) #nc (1+ #nc))
)
((= (vla-get-objectname &cs) "AcDbArc")
(setq #lr (+ #lr (vla-get-arclength &cs)) #nr (1+ #nr))
)
((= (vla-get-objectname &cs) "AcDbPolyline")
(setq #lp (+ #lp (vla-get-length &cs)) #np (1+ #np))
)
((= (vla-get-objectname &cs) "AcDbLine")
(setq #ll (+ #ll (vla-get-length &cs)) #nl (1+ #nl))
)
)
)
(princ (strcat "\n选择的 " (itoa (sslength &ss)) " 个对象中:"))
(princ (strcat "\n圆形对象 = " (itoa #nc) " 个,线长 = " (rtos #lc 2 3) " ,"))
(princ (strcat "\n圆弧对象 = " (itoa #nr) " 个,线长 = " (rtos #lr 2 3) " ,"))
(princ (strcat "\n直线对象 = " (itoa #nl) " 个,线长 = " (rtos #ll 2 3) " ,"))
(princ (strcat "\n聚合对象 = " (itoa #np) " 个,线长 = " (rtos #lp 2 3) " ,"))
(princ (strcat "\n所有对象总线长 = " (rtos (+ #lc #lr #ll #lp) 2 3) " ."))
)
)
(princ)
)
命令DL使用,可计算直线,圆形,圆弧,聚合线的线长。追问能把椭圆和样条曲线也加进去吗?

追答(defun c:dl ( )
(if (null vlax-mp-object)
(vl-load-com)
)
(princ "\n选择要进行线长统计的对象")
(if (setq #si 0 &ss (ssget))
(progn
(setq #lc 0 #ll 0 #lp 0 #lr 0 #le 0 #ls 0 #nc 0 #nl 0 #np 0 #nr 0 #ne 0 #ns 0)
(repeat (sslength &ss)
(setq &cs (vlax-ename->vla-object (ssname &ss #si)) #si (1+ #si))
(cond
((= (vla-get-objectname &cs) "AcDbCircle")
(setq #lc (+ #lc (vla-get-circumference &cs)) #nc (1+ #nc))
)
((= (vla-get-objectname &cs) "AcDbArc")
(setq #lr (+ #lr (vla-get-arclength &cs)) #nr (1+ #nr))
)
((= (vla-get-objectname &cs) "AcDbPolyline")
(setq #lp (+ #lp (vla-get-length &cs)) #np (1+ #np))
)
((= (vla-get-objectname &cs) "AcDbLine")
(setq #ll (+ #ll (vla-get-length &cs)) #nl (1+ #nl))
)
((= (vla-get-objectname &cs) "AcDbEllipse")
(setq #le (+ #le (vlax-curve-getdistatparam &cs (vlax-curve-getendparam &cs))) #ne (1+ #ne))
)
((= (vla-get-objectname &cs) "AcDbSpline")
(setq #ls (+ #ls (vlax-curve-getdistatparam &cs (vlax-curve-getendparam &cs))) #ns (1+ #ns))
)
)
)
(princ (strcat "\n选择的 " (itoa (sslength &ss)) " 个对象中:"))
(princ (strcat "\n圆形对象 = " (itoa #nc) " 个,线长 = " (rtos #lc 2 3) " ,"))
(princ (strcat "\n圆弧对象 = " (itoa #nr) " 个,线长 = " (rtos #lr 2 3) " ,"))
(princ (strcat "\n直线对象 = " (itoa #nl) " 个,线长 = " (rtos #ll 2 3) " ,"))
(princ (strcat "\n聚合对象 = " (itoa #np) " 个,线长 = " (rtos #lp 2 3) " ,"))
(princ (strcat "\n椭圆对象 = " (itoa #ne) " 个,线长 = " (rtos #le 2 3) " ,"))
(princ (strcat "\n云形对象 = " (itoa #ns) " 个,线长 = " (rtos #ls 2 3) " ,"))
(princ (strcat "\n所有对象总线长 = " (rtos (+ #lc #lr #ll #lp #le #ls) 2 3) " ."))
)
)
(princ)
)

热心网友 时间:2023-10-09 14:14

椭圆和样条曲线也可加进去,
兄弟,可以试着自己加呀。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如果银行拒贷有哪些办法 小天鹅滚筒洗衣机水位多少合适 阴阳师百闻牌攻略大全 百闻牌式神卡组阵容大全 阴阳师百闻牌三大妖狐阵容推荐 妖狐流派怎么搭配?-新手攻略-安族网... 阴阳师百闻牌妖狐快攻阵容 怎么搭配攻略推荐 阴阳师百闻牌妖狐技能攻略 妖狐属性及卡组搭配推荐-新手攻略-安族网... 阴阳师百闻牌妖狐最强卡组 阵容怎么搭配攻略 阴阳师百闻牌妖狐卡组推荐 怎么搭配攻略分享 带鹏字的公司名字大全 鹏字开头公司起名 叶罗丽娃娃玩具店在哪 《深宅》中丫环柳珠的饰演者是谁?谁知道她的详细资料啊? 泰剧深宅绅士演员有哪些? 深宅的演员介绍 深宅的演员表 舍得的词语舍得的词语是什么 如何理解儒家的仁爱 微信卸完载了,安装不上了,上面写的暂不支持安装,怎么办 拙薄的解释 木地板带纹理怎么清理 梦见拼图散落的预兆 六安三毛儿童摄影有几个照片 玳牛的拼音狐玳牛的拼音是什么 为什么《爱我中华》是56个星座而不是56个民族? 粥需要煮几分钟才能熟 抉_的引证解释抉_的引证解释是什么 126师赵燕清退役没有 家庭作坊6年洞藏酒可以值多少钱呢 迎驾518酒什么样 门铃的词性门铃的词性是什么 门铃的国语词典门铃的国语词典是什么 滇缅崖豆藤的俗名 我餐餐食豆豉,你餐餐白兰地 餐餐食豆是,一首粤语的搞笑歌曲里面的歌词 切脉怎么读 风景很美的心情说说 朋友圈晒风景的句子 梦见被人栽赃诈骗被我预先识破的预兆 一个手机怎么登录两个 怎样可以用一个手机同时登录两个 “南北合纵,东西连横”说的什么? 第11版新华字典未将“六”列为多音字 六(lù)安人怎么办! 何谓安人,如何安人 怎么看翡翠原石松花 产地代码怎么查询 幼儿园中班奇妙的影子教案三篇 小碎步 FOOT FIRE 舞蹈小碎步的训练目的 无线路由器桥接设置无线网桥接设置方法 2022年12月25日香炉安放吉日一览表2022年农历腊月初三香炉安放吉日 2022年农历三月初九是开业最吉利的日子么 面料sp是什么成分