如何用lisp合并cad里的两个文字内容!! @临雪一枝梅 帮忙解答一下!

如何用lisp合并cad里的两个文字内容!! @临雪一枝梅 帮忙解答一下!,第1张

最基本的如下先选取两个文字对象,分别得到它们的图元数据,取得它们的文本内容,将文本内容连接起来,替换掉第一个文字对象的图元数据里边的文字内容一项,这样就把它们连接到一起了,把另一个文字对象删除掉

(DEFUN TEXTJOIN(E1 E2 / T1 T2)

(SETQ T1(ENTGET E1)

T2(ENTGET E2))

(ENTMOD(SUBST

(CONS 1(STRCAT(CDR(ASSOC 1 T1))(CDR(ASSOC 1 T2))))

(ASSOC 1 T1)T1))

(ENTDEL E2)

)

(setq E1(CAR(ENTSEL"点取要连接的文字"))

E2(CAR(ENTSEL"点取要连接的文字")))

(TEXTJOIN E1 E2)

当然,仅仅这样是没多在意义的,但是实现了可以把你指定的两个文字对象连接到一起。在实际应用中,可能还要考虑让程序能完全自动处理,比如只要在同一水平线上(或者相差不大)间隔一定距离的,程序都能把它们连接起来,这样就比较理想了。具体怎么处理看需要吧,不过核心都是调用(TEXTJOIN E1 E2)

感谢来自百度用户you_meworld的回答

以下是提取CAD的一个尝试,不过需要利用AUTOLISP。

1,首先养成好习惯,你要提取的文字应该在特定的几个图层。

2,菜单--工具--AutoLisp--Visual Lisp 编辑器,把下面代码复制进去:

(defun c:GTEXT()

(setq la (getstring "\n请输入图层名: "))

(setq ss (ssget "X" (list (cons 0 "TEXT") (cons 8 la))))

(setq fi (open "C:\\cirtxt" "w"))

(setq si 0)

(repeat (sslength ss)

(setq ct (cdr (assoc 1 (entget (ssname ss si)))))

(write-line ct fi)

(setq si (1+ si))

)

(close fi)

)

保存这个代码。记得存在哪里哟!!

这个代码会找到所有TEXT命令输入的文字,并导出到c盘 cirtxt如果你需要MTEXT的文字,则要改变代码里面少许参数即可。

3,菜单--工具--AutoLisp--Load Application--选择你刚才存的Lisp文件

4,在COMMAND命令行输入: gtext

5,到c盘根目录下找到cirtxt。

以上经ACAD 2014测试成功。

不容易呀!!

直线的图元表:

((-1 <图元名: 7ffffb05e20>) (0 "LINE") (330 <图元名: 7ffffb03990>) (5

"DF2") (100 "AcDbEntity") (67 0) (410 "Model") (8 "MOU") (100

"AcDbLine") (10 0919113 215962 00) (11 432096 614953 00) (210 00 00

10))

10和11项是直线的两个端点(10 0919113 215962 00) (11 432096 614953 00) ,要经过计算才会得出直线的角度

倾斜文字的图元表

((-1 <图元名: 7ffffb05e40>) (0 "TEXT") (330 <图元名: 7ffffb03990>) (5

"DF4") (100 "AcDbEntity") (67 0) (410 "Model") (8 "MOU") (100

"AcDbText") (10 744934 178795 00) (40 1235) (1 "123456") (50

0273648) (41 10) (51 00) (7 "ROMAND") (71 0) (72 0) (11 00 00

00) (210 00 00 10) (100 "AcDbText") (73 0))

其中第50项(50 0273648) 是角度,单位是弧度,要转化成角度(156789度)

用命令

(entget (car (entsel)))

就可以提取到图元表

首先你要分成两部走吧,你的语句本身说来是错的

1首先过滤出PT列表中的实体,要用到

(SSGET "CP" PT)

2在1的结果中滤出LBH图层中的文字

(SSGET "P" '((CONS 0 "TEXT") (CONS 8 LBH)))

以上就是关于如何用lisp合并cad里的两个文字内容!! @临雪一枝梅 帮忙解答一下!全部的内容,包括:如何用lisp合并cad里的两个文字内容!! @临雪一枝梅 帮忙解答一下!、哪位大侠知道怎么把CAD里面的文字批量提取出来当然还可以再写入进去,有没有好用的软件啊、如何用LISP语言提取CAD中文本或直线的倾斜角度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9668646.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存