找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 862|回复: 3

[每日一码] 把多段线的面积和周长写到属性实体里面

[复制链接]

已领礼包: 19个

财富等级: 恭喜发财

发表于 2016-12-10 15:33:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
选择多段线,和一个属性实体,修改属性的内容为多段线的面积和周长信息

QQ截图20161210152956.png

(defun C:test ( / n p a )
        (and 
                vlax-get-acad-object
                (setq n -1)
                (setq p (ge "Select polyline" "LWPOLYLINE" nil))
                (setq a (ge "Select attribute" "ATTRIB" T))
                (vlax-put a 'TextString
                        (apply 'strcat
                                (mapcar 
                                        (function 
                                                (lambda (x)
                                                        (setq n (1+ n)) (strcat (nth n '("Area: " ", Perimeter: ")) (rtos x 2 (getvar 'luprec)))
                                                )
                                        )
                                        (list (vlax-curve-getArea p) (vlax-curve-getDistAtParam p (vlax-curve-getEndParam p)))
                                )
                        )
                )
        )
        (princ)
) (vl-load-com) (princ)

(defun ge ( msg typ lflg / e o )
        (setvar 'errno 0)
        (while (/= 52 (getvar 'errno))
                (setq e (car (nentsel (strcat "\n" msg " <exit>: "))))
                (cond
                        ( (= 7 (getvar 'errno)) (princ "\nMissed, try again.") (setvar 'errno 0) )
                        ( (and (= 'ENAME (type e)) (/= (cdr (assoc 0 (entget e))) typ)) (princ "\nInvalid object.") (setq e nil))
                        ( (and lflg e (= 4 (logand 4 (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (entget e)))))))))
                                (princ "\nThis layer is locked.") (setq e nil)
                        )
                        (e (setq o (vlax-ename->vla-object e)) (setvar 'errno 52))
                        (T nil)
                ); cond
        ); while
        o
)

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 1211个

财富等级: 财源广进

发表于 2016-12-11 09:21:29 | 显示全部楼层
好东西先收下,谢谢分享!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1094个

财富等级: 财源广进

发表于 2021-11-7 00:07:08 | 显示全部楼层
感谢分享把多段线的面积和周长写到属性实体里面
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 22个

财富等级: 恭喜发财

发表于 2023-1-12 10:03:12 | 显示全部楼层
学习一下~~~~
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-5-3 07:09 , Processed in 0.427145 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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