6224jjyy 发表于 2022-5-23 20:15:41

求助,entmake制作属性块,怎么水平对齐?

本帖最后由 6224jjyy 于 2022-5-24 09:00 编辑

entmake制作属性块,属性文字无法对齐圆心。纯小白,被折腾一天了,求帮助。
'(72 . 1),用来水平居中对齐,貌似没作用,不知道错在哪里了。
(setq zz (getstring "请输入圆的高度(m): "))
(while (setq pt (getpoint "\n指定圆心位置: "))
(setq name (getvar "clayer"))
(entmake (list '(0 . "BLOCK") '(70 . 2) '(10 0.0 0.0 0.0) (cons 2 name)))
(entmake '((0 . "CIRCLE") (10 0.0 0.0 0.0) (40 . 80) (370 . 30)))
(entmake '((0 . "ENDBLK")))
(entmake (list '(0 . "INSERT") '(66 . 1) (cons 2 name) (cons 10 pt)))
(entmake (list '(0 . "ATTRIB") '(100 . "AcDbEntity") '(100 . "AcDbText") (cons 10 pt) (cons 11 pt) (cons 40 48) (cons 1 zz) '(100 . "AcDbAttribute") (cons 2 "A") '(70 . 0) '(72 . 1) '(74 . 2)))
(entmake '((0 . "SEQEND")))
)



菜卷鱼 发表于 2022-5-28 10:56:36

建普通块跟属性块不要自己去写代码建,
手动建好块之后,用程序把它转成代码

edata 发表于 2022-5-23 20:37:45

(defun c:tt(/ zz pt name zr)
        (setq zr (getstring "请输入圆的高度(m): "))
        (while (setq pt (getpoint "\n指定圆心位置: "))
                (setq name (getvar "clayer"))
                (entmake (list '(0 . "BLOCK") '(70 . 2) '(10 0.0 0.0 0.0) (cons 2 name)))
                (entmake '((0 . "CIRCLE") (10 0.0 0.0 0.0) (40 . 80) (370 . 30)))
                (entmake '((0 . "ENDBLK")))
                (entmake (list '(0 . "INSERT") '(66 . 1) (cons 2 name) (cons 10 pt)))
                (entmake (list '(0 . "ATTRIB") '(100 . "AcDbEntity") '(100 . "AcDbText") (cons 10 pt) (cons 11 pt) (cons 40 48) (cons 1 zr)'(71 . 0)'(72 . 1)'(100 . "AcDbAttribute") (cons 2 "A") '(70 . 0)'(73 . 2)'(74 . 2)))
                (entmake '((0 . "SEQEND"))))
        (princ)
        )

6224jjyy 发表于 2022-5-23 20:24:18

考虑过用polar函数,把属性基准点左移,但属性数字的长度不一致。
数值可能是4.5,可能是450.55,所以希望居中对齐,看起来更美观。

6224jjyy 发表于 2022-5-23 20:25:30

求大神帮忙

6224jjyy 发表于 2022-5-24 09:03:14

edata 发表于 2022-5-23 20:37


非常感谢!

999999 发表于 2022-5-24 17:41:57

感谢大神的回答

LIULISHENG 发表于 2022-5-26 08:09:21

非常感谢!

paulpipi 发表于 2022-5-26 14:09:20

感谢高手的分享

duhan6401 发表于 2022-5-27 08:17:53

谢谢高手的提点
页: [1] 2 3
查看完整版本: 求助,entmake制作属性块,怎么水平对齐?