将对象附着到标注
我之前写过这段代码。在尺寸字符串上插入直径符号作为前缀。但不是%%c,而是一个正方形符号,带有一条模拟直径符号的线(defunc:test (/ aDoc selset e str data p1 )
(defun MtexInfo ( mt /db dl ds );;LM snippet
(if
(and
(wcmatch (cdr (assoc 0 (setq dl (entget mt)))) "*DIMENSION")
(setq db (tblobjname "BLOCK" (cdr (assoc 2 dl))))
)
(while (and (setq db (entnext db)) (not ds))
(if (eq "MTEXT" (cdr (assoc 0 (setq dl (entget db)))))
(setq ds (mapcar '(lambda (j)
(cdr (assoc j dl))) '(42 43 50 7 10))))
)
) ds
)
(setq aDoc (vla-get-ActiveDocument (vlax-get-acad-object)))
(if (setq selset (ssget '((0 . "DIMENSION"))))
(repeat (sslength selset)
(setq e (vlax-ename->vla-object (ssname selset 0))
)
(vla-put-Textprefix e
"{\\Fgdt|c0;\\H0.75x;o} "
)
(setq data (mtexinfo (ssname selset 0)))
(entmakex
(list (cons 0 "LINE")
(cons 10 (setq p1
(polar (polar
(last data)
(+ pi (caddr data))
(-
(/ (car data) 2.0)
(*
(/ (cadr data) 2.0)
(* (cdr
(assoc 41 (tblsearch "STYLE" (nth 3 data)))
)
0.75
)
)
)
)
(+ (* pi 1.5) (caddr data))
(/ (cadr data) 2.0)
)
)
)
(cons 11 (polar p1 (+ (/ pi 2.0) (caddr data)) (cadr data)))
)
)
(ssdel (ssname selset 0) selset)
)
)
(princ)
)
问题是,如何将线(|)与维度联系起来?我对reactor有点生疏,在我确定通过object reactor是最好(或唯一)的方法之前,我不愿意继续编码。
有什么想法吗? 符号是平方英尺?难道没有一种字体已经将其作为其字符集的一部分了吗?
我肯定有。。但AFAICT仅限于特定的字体类型。需要一个可以从“开箱即用”/非定制cad包中使用的,而且不确定要去哪里找 哇。。我很惊讶这个查询没有得到任何回复建议/建议
无论如何。。。我想我暂时搁置这段代码
谢谢 我很想帮你,pBe,但我不能 也许这个程序会为你指明正确的方向,它也将一个物体与另一个物体联系起来。
页:
[1]