乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: CAD_Noob

[编程交流] 多行文字到属性

[复制链接]

18

主题

98

帖子

115

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
79
发表于 2022-7-5 16:36:35 | 显示全部楼层
我的错。。。很抱歉
复制代码时,我错过了WAI子函数。
它正在工作。只是位置有点不合适,
房间号的矩形被留下。
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 16:41:05 | 显示全部楼层
 
 
这对我有点管用。例程假设图形中存在块“Room_Tag”。使用窗口选择mtex,但必须按enter键提交选择(有待改进),然后插入带有属性的block room\u标记并删除MTEXT(但留下多段线,也有待改进)。如果这是您所期望的,那么它不会绘制整个图形,因为这需要一种更复杂的方法,就像我发布链接的路线中使用的方法一样。我可以先选择两个点(getpoint/getcorner),然后在窗口中使用ssget,这样我也可以用多行文字的
 
 
gr.Rlx
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 16:42:26 | 显示全部楼层
 
 
好的,没问题。如果上多行文字中始终存在对齐点(中间或中心,dxf代码11),我可以更好地对齐符号。看看我以后有没有时间,现在要为老板做些工作。。。
 
 
gr.Rlx
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 16:46:58 | 显示全部楼层
 
 
这个应该表现得更好一点:
 
 
  1. (defun c:RoomTag ( / p1 p2 ss tl ip bn old-att-req)
  2. (vl-load-com)
  3. (setq old-att-req (getvar "ATTREQ"))
  4. (princ "\n<<< Select Mtexts >>> ")
  5. (cond
  6.    ((not (and (setq p1 (getpoint "\nSelect 1st corner :"))
  7.        (setq p2 (getcorner p1 "\nSelect 2nd corner :"))))
  8.     (princ "\nNothing selected"))
  9.    ((not (setq ss (ssget "w" p1 p2 '((0 . "MTEXT"))))) (princ "\nNo Mtext's found"))
  10.    ((not (= (sslength ss) 4)) (princ "\nYou must select 4 Mtext's"))
  11.    ((not (tblsearch "block" (setq bn "Room_Tag"))) (princ "\nBlock 'Room_Tag' not present"))
  12.    (t
  13.      (setq ss (sss ss) tl (mapcar '(lambda (x) (cdr (assoc 1 (entget x)))) ss)
  14.     ip (cdr (assoc 10 (entget (caddr ss)))))
  15.      (setvar "ATTREQ" 0)(command-s "-insert" bn ip 1 1 0)
  16.      (mapcar '(lambda (att val) (wai bn att val)) '("RM_TAG" "RM_VENT" "RM_NO." "RM_AREA") tl)
  17.      (mapcar 'entdel ss)
  18.      (if (setq ss (ssget "w" p1 p2 '((0 . "LWPOLYLINE"))))
  19. (progn (entdel (ssname ss 0))(setq ss nil)))
  20.      (setvar "ATTREQ" old-att-req)
  21.    )
  22. )
  23. )

 
 
仅替换主要功能c:RoomTag
gr.Rlx
回复

使用道具 举报

18

主题

98

帖子

115

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
79
发表于 2022-7-5 16:48:49 | 显示全部楼层
 
嗨,RLX,我遇到了这个错误:
 
  1. ROOMTAG
  2. <<< Select Mtexts >>>
  3. Select 1st corner :
  4. Select 2nd corner :; error: no function definition: COMMAND-S
回复

使用道具 举报

18

主题

98

帖子

115

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
79
发表于 2022-7-5 16:51:40 | 显示全部楼层
它现在工作得很好
 
我换了线
  1. (setvar "ATTREQ" 0)(command-s "-insert" bn ip 1 1 0)

 
用这个
  1. (setvar "ATTREQ" 0)(command "-insert" bn ip 1 1 0)

 
非常感谢!我相信这不仅对我有益,而且对同时在revit和autocad中工作的其他人有益。
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 16:54:41 | 显示全部楼层
 
将命令-s替换为:
  1. (if command-s
  2. command-s
  3. command
  4. )
回复

使用道具 举报

32

主题

430

帖子

423

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
150
发表于 2022-7-5 16:57:48 | 显示全部楼层
 
某些acad旧版本不支持Command-s
更改为
 
命令
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 17:03:01 | 显示全部楼层
 
如果我没有弄错的话,command-s是从AutoCAD 2017开始的。
回复

使用道具 举报

32

主题

430

帖子

423

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
150
发表于 2022-7-5 17:05:33 | 显示全部楼层
它的目的是什么??
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-13 21:04 , Processed in 0.519559 second(s), 81 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表