lisp代码合并_如何编写lisp将两个文字合并为一?请教大神。

引用EasyCAD的回答:

(defun c:tes ( / &ss #si #sn #kw &cs )

(if (null vlax-dump-object) (vl-load-com) )

(if (null &mod) (setq &mod (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)))) )

(if (null #ofs) (setq #ofs 40) )

(if (setq #nfs (getreal (strcat "\n请输入筛选距离: "))) (setq #ofs #nfs) (setq #nfs #ofs) )

(if (setq &ss (ssget (list (cons 0 "TEXT") (cons -4 ""))))

(progn

(repeat (setq #si 0 @sa '() @nv '() #sn (sslength &ss))

(setq &cs (vlax-ename->vla-object (ssname &ss #si)) #si (1+ #si))

($jt-drawtextbox &cs 1)

)

(foreach rec (append @sa @nv) (if (not (vlax-erased-p rec)) (vla-erase rec) ) )

)

(princ "\n未选中文字对象,程序退出!")

)

(princ)

)

(defun $jt-drawtextbox ( &tx #mo / p1 p2 p3 p4 lis dou pol &rec &vs #vi #vn #mx &cv #cm &nv )

(vla-getboundingbox &tx 'p1 'p2)

(setq p1 (vlax-safearray->list p1) p2 (vlax-safearray->list p2))

(setq p3 (list (car p1) (cadr p2)) p4 (list (car p2) (cadr p1)) pts (list p1 p3 p2 p4 p1))

(setq lis (apply 'append (mapcar '(lambda (x) (list (car x) (cadr x))) pts)))

(setq dou (vlax-make-safearray vlax-vbdouble (cons 0 (1- (* 2 (length pts))))))

(setq lis (vlax-make-variant (vlax-safearray-fill dou lis)))

(setq &rec (vla-addlightweightpolyline &mod lis) @sa (cons &rec @sa))

(if (= #mo 1)

(progn

(setq p1 (polar p1 (* pi 1.25) #nfs) p2 (polar p2 (* pi 0.25) #nfs))

(setq p3 (polar p1 (angle p1 p2) (/ (distance p1 p2) 2.0)))

(if (setq &vs (ssget "C" p1 p2 (list (cons 0 "TEXT") (cons 1 "(*X*)"))))

(progn

(repeat (setq #vi 0 #mx 1000 #vn (sslength &vs))

(setq &cv (vlax-ename->vla-object (ssname &vs #vi)) #vi (1+ #vi))

(if (not (member &cv @nv))

(progn

(setq #cm (vlax-curve-getclosestpointto ($jt-drawtextbox &cv 0) p3))

(if (< (setq #cm (distance p3 #cm)) #mx) (setq #mx #cm &nv &cv) )

)

)

)

(if &nv

(progn

(vla-put-textstring &tx (strcat (vla-get-textstring &tx) (vla-get-textstring &nv)))

(vla-put-color &nv 1) (setq @nv (cons &nv @nv))

)

)

)

)

)

)

&rec

)

试下上面的程序吧,命令是 tes

展开全部

上面的程序是不能合并,并不是提问者所想要的东西

2Q==

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值