永发信息网

cad里lisp程序编程求助:能够简单计算并显示出来。

答案:2  悬赏:60  手机版
解决时间 2021-03-23 08:11
求助,有谁懂cad的lisp编程吗?想编个小程序,实现个小功能——比如cad上面有三行文字:第一行为:小红年龄:18 第二行为:小明年龄:9 第三行为:小李年龄:5 (这三行文字里年龄都是变的) 然后我调用lisp程序,程序提示我选择。我选择这三行文字,确定。然后程序提示我指定插入点。然后我点插入点。这时候在插入点出现两行文字:第一行 小红比小明大:9 第二行 小红比小李大:13 (这个就是我想要的效果,能够自动捕捉文字里的年龄,然后计算结果,固定格式显示出来)求助大神
最佳答案
你好,请您试一试下面的程序:
;小程序,实现个小功能——比如cad上面有三行文字:
;第一行为:小红年龄:18
;第二行为:小明年龄:9
;第三行为:小李年龄:5
;(这三行文字里年龄都是变的)
;然后调用lisp程序,程序提示选择这三行文字,确定。
;然后程序提示指定插入点。然后点插入点。
;这时候在插入点出现两行文字:
;第一行 小红比小明大:9
;第二行 小红比小李大:13
(defun c:nl ()
(setq sss (ssget)
nm0 (nm&nl 0)
nl0 (cadr nm0)
nm0 (car nm0)
nm1 (nm&nl 1)
nl1 (cadr nm1)
nm1 (car nm1)
nm2 (nm&nl 2)
nl2 (cadr nm2)
nm2 (car nm2)
nl20 (- nl2 nl0)
nl21 (- nl2 nl1)
)
(print (list nm0 nl0 nm1 nl1 nm2 nl2 nl20 nl21))
(command "text" pause "" "" (strcat nm2 "比" nm1 "大:" (rtos nl21 2 0))
"text" "" (strcat nm2 "比" nm0 "大:" (rtos nl20 2 0))
)
)
(defun nm&nl (i / nm nl)
(setq nm (ssname sss i)
nm (entget nm)
nm (cdr (assoc 1 nm))
nl (substr nm 11)
nm (substr nm 1 4)
nl (read nl)
)
(list nm nl)
)
全部回答
(defun c:xx1(/ en1 en2 en1_data en2_data pt1 old2_1 old2_2 pt2_1 pt2_2 pt2) (setvar "cmdecho" 0) (setq en1 (entsel "\n请选择一条直线:")) (setq en2 (entsel "\n请选择一个文字:")) (setq en1_data (entget (car en1)));;;获取直线的联合属性列表 (setq en2_data (entget (car en2)));;;获取文字的联合属性列表 (command "justifytext" en2 "" "c");;;将文字的对正方式设置为“中” (setq pt1 (assoc 11 en2_data));;;获取文字的对正位置点坐标 (setq old2_1 (cdr (assoc 10 en1_data)));;;获取直线的起点坐标 (setq old2_2 (cdr (assoc 11 en1_data)));;;获取直线的终点坐标 (setq pt2_1 (/ (+ (car old2_1) (car old2_2)) 2));直线中点的横坐标 (setq pt2_2 (/ (+ (cadr old2_1) (cadr old2_2)) 2));直线中点的纵坐标 (setq pt2 (list 11 pt2_1 pt2_2 0.0));;;pt2为直线中点坐标 (setq en2_data (subst pt2 pt1 en2_data));设置文字的对正点到直线中点 (entmod en2_data);;;更新图形 (prin1);;;静默退出 ) 写了个小程序,已经调试成功。程序没有判断直线是否水平,也就是说如果直线是斜线,也会将文字中点对正到直线中点,但是文字依然是水平的,如果要旋转文字,需要计算直线的角度,这个不难,自己加入几条代码就可以。 但是我的水平也只有这样了,如果要在改变直线长度的时候,自动更新文字位置,这个估计要用到反应器的技术,这个我还没学,所以无法给出代码了。 代码中已经加入简单的注释,应该可以看懂,如果有疑问,再找机会讨论。 = cad技术智囊团 =
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
炫舞小灵通许愿池在哪,炫舞小灵通里佛光签到
铭骏汽车生活馆石城旗舰店在哪里啊,我有事要
法国2015年班特雅城堡红葡萄酒波尔多AOC这酒
出汗的感觉挺好的句子,好久没聊天了,感觉好友
---Where to, Madam?---at the Baiyun H
高三计算不合格怎么办
神不喜欢说歌词
问:有关火影的樱秘传、卡卡西秘传之类的是不
什么牌子的洗衣液最好,什么牌子洗衣液洗的干
沈阳博源专用设备有限公司这个地址在什么地方
小白求助.phpMyAdmin打开空白
西安事变后,杨虎城被蒋介石杀害,张学良被长
指挥太平军取得青浦战役胜利的太平军将领是
杨志茂被关了 锦龙股份会倒闭吗
牛牛是什么,有谁能研发出单尾牛牛包嬴的软件
推荐资讯
怎样才能看到期货以前的内盘,外盘,成交和持仓
荥阳市人民检察院便民检务大厅地址在哪,我要
『新航』:假如,我行李超重了,怎么处理?
求事业占卦求得遁之旅卦怎么解
读下列图表资料,回答问题.材料一 我国四大
马来西亚的iPhone6要多少钱?
初中英语谚语分类大全,耳熟能详的古诗分类大
谁能帮我想以“华飞莹智”几个字为句首,以“
(五)阅读吴庆林的《山丹油菜花》一文,完成
我们离婚小孩都19岁了,孩子自愿跟了妈妈.我还
(1)图1硬币的直径为______cm.(2)图2电子
有一部电影讲的是有一栋房子怎么也逃不出去
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?