乐筑天下

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

[编程交流] 将对象附着到标注

[复制链接]
pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 08:24:35 | 显示全部楼层 |阅读模式
我之前写过这段代码。在尺寸字符串上插入直径符号作为前缀。但不是%%c,而是一个正方形符号,带有一条模拟直径符号的线
 
  1. (defun  c:test (/ aDoc selset e str data p1 )
  2. (defun MtexInfo ( mt /  db dl ds );;LM snippet
  3. (if
  4.    (and
  5.      (wcmatch (cdr (assoc 0 (setq dl (entget mt)))) "*DIMENSION")
  6.      (setq db (tblobjname "BLOCK" (cdr (assoc 2 dl))))
  7.    )
  8.    (while (and (setq db (entnext db)) (not ds))
  9.      (if (eq "MTEXT" (cdr (assoc 0 (setq dl (entget db)))))
  10.        (setq ds (mapcar '(lambda (j)
  11.                                    (cdr (assoc j dl))) '(42 43 50 7 10))))
  12.      )
  13.    ) ds
  14. )   
  15. (setq aDoc (vla-get-ActiveDocument (vlax-get-acad-object)))
  16. (if (setq selset (ssget '((0 . "DIMENSION"))))
  17.    (repeat (sslength selset)
  18.      (setq e   (vlax-ename->vla-object (ssname selset 0))
  19.        )
  20.        (vla-put-Textprefix e
  21.          "{\\Fgdt|c0;\\H0.75x;o} "
  22.            )
  23.      (setq data (mtexinfo (ssname selset 0)))
  24.      (entmakex
  25.        (list (cons 0 "LINE")
  26.          (cons 10 (setq p1
  27.               (polar (polar
  28.                   (last data)
  29.                   (+ pi (caddr data))
  30.                   (-
  31.                     (/ (car data) 2.0)
  32.                     (*
  33.                       (/ (cadr data) 2.0)
  34.                       (* (cdr
  35.                            (assoc 41 (tblsearch "STYLE" (nth 3 data)))
  36.                            )
  37.                          0.75
  38.                          )
  39.                       )
  40.                     )
  41.                   )
  42.                 (+ (* pi 1.5) (caddr data))
  43.                 (/ (cadr data) 2.0)
  44.                 )
  45.              )
  46.            )
  47.          (cons 11 (polar p1 (+ (/ pi 2.0) (caddr data)) (cadr data)))
  48.          )
  49.        )
  50.      (ssdel (ssname selset 0) selset)
  51.      )
  52.    )
  53. (princ)
  54. )

 
问题是,如何将线(|)与维度联系起来?我对reactor有点生疏,在我确定通过object reactor是最好(或唯一)的方法之前,我不愿意继续编码。
 
有什么想法吗?
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 08:40:54 | 显示全部楼层
符号是平方英尺?难道没有一种字体已经将其作为其字符集的一部分了吗?
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 08:54:05 | 显示全部楼层
 
我肯定有。。但AFAICT仅限于特定的字体类型。需要一个可以从“开箱即用”/非定制cad包中使用的,而且不确定要去哪里找
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 09:02:53 | 显示全部楼层
哇。。我很惊讶这个查询没有得到任何回复建议/建议
 
无论如何。。。我想我暂时搁置这段代码
 
谢谢
回复

使用道具 举报

28

主题

76

帖子

48

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 2022-7-6 09:16:23 | 显示全部楼层
我很想帮你,pBe,但我不能
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:30:21 | 显示全部楼层
也许这个程序会为你指明正确的方向,它也将一个物体与另一个物体联系起来。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 08:34 , Processed in 0.378812 second(s), 64 queries .

© 2020-2025 乐筑天下

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