RyanAtNelco 发表于 2022-7-6 12:18:43

标注样式-放置文字

大家好,
 
有人知道lisp可以遍历所有的dimstyles并删除“手动放置文本”选项吗。我希望测量自动以尺寸为中心,并且我经常使用具有许多文字样式的图形,这些文字样式在dimstyle属性中选中了“手动放置文字”框。
 
谢谢

Freerefill 发表于 2022-7-6 12:30:48

不久前我也有同样的问题。试试这个:
 



(defun c:fd( / ss eLst)
(princ "\nSelect dimensions: ")
(setq ss (ssget '((0 . "DIMENSION"))))
(if ss
   (foreach forVar (vl-remove nil (mapcar '(lambda (x) (if (= (type (cadr x)) 'ENAME) (cadr x) '())) (ssnamex ss)))
   (setq eLst (entget forVar))
   (setq eLst (subst '(70 . 32) (assoc 70 eLst) eLst))
   (entmod eLst)
   (entupd forVar)
   )
   )
); Fix dimensions so text aligns in the center

RyanAtNelco 发表于 2022-7-6 12:33:05

这很好,但它似乎需要每个维度。您知道如何编辑标注样式,以便您创建的未来标注自动居中吗?

Freerefill 发表于 2022-7-6 12:42:32

隐马尔可夫模型。。如果转到“修改尺寸”窗口(命令:“DIMSTYLE”),修改所需的尺寸,然后单击“文本”选项卡上的“文本对齐”(右下角)下,您应该会看到一个单选按钮。检查以确保选择了“与尺寸线对齐”。
 
恐怕我对尺寸样式做得不多,所以我想这是我能告诉你的最好的了。

RyanAtNelco 发表于 2022-7-6 12:52:00

我有alanjt提供的一些类似代码。我已经强调了我认为需要修改的地方,但不可否认,我还不太擅长编写代码。
 
(vl load com)
(定义C:D手动()
(vlax代表x(vla get TextStyles
(vla get activedocument(vlax get acad object))
)
(普林斯)
(vla setfont x“ARIAL”:vlax False:vlax False 0 32)
)
)
 
我认为textstyles需要更改为dimstyles,font x“ARIAL”:vlax False:vlax False 0 32也需要更改,但我不确定要更改什么。
 
任何洞察都会很棒!

alanjt 发表于 2022-7-6 12:58:40

查看Dimstyle设置:
 

RyanAtNelco 发表于 2022-7-6 13:03:37

艾伦,
 
这就是我一直在做的,但是我有一些有许多DIMSTYLE的图形,浏览整个列表很耗时。
 
我希望用lisp来实现,但我不知道正确的vla set命令(有人手头有这些命令的列表吗?)。我认为应该将“textstyles”更改为“dimstyles”,对吗?

alanjt 发表于 2022-7-6 13:09:00

 
 
这应该让你开始,不能编辑当前的风格(只是它是如何)。
 
(defun test (#Name / #Style)
(and (setq #Style (entget (tblobjname "dimstyle" #Name)))
      (entmod (append #Style (list (cons 288 0))))))

RyanAtNelco 发表于 2022-7-6 13:12:20

谢谢Alan!

alanjt 发表于 2022-7-6 13:22:53

 
没问题。
页: [1]
查看完整版本: 标注样式-放置文字