broncos15 发表于 2022-7-5 15:04:03

更改multilea的文本颜色

因此,我正在尝试将多标题的文本颜色从bylayer更改为红色(这是QC例程的一部分)。在查看了所有属性后,我唯一能找到方法的方法是做一个变通方法,基本上只需将文本复制并粘贴回多重引线。
问题是,如果文本中有任何字段,这将覆盖。有没有其他我没有想到的解决方法?

Lee Mac 发表于 2022-7-5 15:26:36

您可以更改相应多重引线样式的TextColor属性,例如:
(defun c:test ( / aci col sel sty )
   (if (and (setq sel (ssget "_+.:E:S" '((0 . "MULTILEADER")))) (setq aci (acad_colordlg 1 nil)))
       (progn
         (setq sty
               (vla-item
                   (vla-item
                     (vla-get-dictionaries
                           (vla-get-activedocument
                               (vlax-get-acad-object)
                           )
                     )
                     "acad_mleaderstyle"
                   )
                   (vla-get-stylename (vlax-ename->vla-object (ssname sel 0)))
               )
               col (vla-get-textcolor sty)
         )
         (vla-put-colorindex col aci)
         (vla-put-textcolorsty col)
       )
   )
   (princ)
)
(vl-load-com) (princ)
请注意,这将影响所有引用样式的多重引线。

Grrr 发表于 2022-7-5 15:37:12

 
我喜欢你的建议。

broncos15 发表于 2022-7-5 15:46:48

李非常感谢你的帮助!我曾想过更改样式,但问题是,工作流程是这样的,一个人手动检查多行文字或多重引线,纠正任何不正确的内容,然后将文本变为红色,表示它是正确的,并且已被检查。然后在检查完所有内容后,我将它们放回bylayer。这没什么大不了的,我可能只是在命令中添加了一个检查,这样用户就不能选择包含字段的对象了。

handasa 发表于 2022-7-5 15:54:18

这是我在afralisp使用的一个。通用域名格式
 
 
2

hzdriggers 发表于 2022-7-5 16:07:38

我正在尝试使用以下方法设置mleaderstyle的文本颜色,但运气不好。。。但是你似乎可以帮我。。。
 
 
(程序
(setq*doc*(vla get activedocument(vlax get acad object)))
(setq mldrdict(vla项(vla get字典*文档*)“ACAD\U MLEADERSTYLE”))
(setq newldrstyle(vlax invoke mldrdict“addobject”Standard“AcDbMLeaderStyle”))
(vlax put property newldrstyle'AlignSpace 0.18)
(vlax put属性newldrstyle'注释性-1)
(vlax put property newldrstyle'箭头大小0.125)
(vlax put属性newldrstyle“BlockConnectionType 0)
(vlax put属性newldrstyle‘BlockRotation 0.0)
(vlax put property newldrstyle’BlockScale 1.0)
(vlax put property newldrstyle’BreakSize 0.125)
(vlax put属性newldrstyle’ContentType 2)
(vlax put property newldrstyle的描述“标准”)
(vlax put属性newldrstyle’DoglegLength 0.125)
(vlax put属性newldrstyle“DrawLeaderOrderType 0)
(vlax put属性newldrstyle'DrawMLeaderOrderType 1)
(vlax put property newldrstyle“EnableBlockRotation-1)
(vlax put property newldrstyle“EnableBlockScale-1)
(vlax put property newldrstyle“EnableDoglug-1)
(vlax put属性newldrstyle“EnableFrameText 0)
(vlax put property newldrstyle“EnableLanding-1)
(vlax put属性newldrstyle“FirstSegmentAngleConstraint 0)
(vlax put property newldrstyle’LandingGap 0.125)
(vlax put属性newldrstyle’LeaderLineType 1)
(vlax put property newldrstyle’LeaderLineTypeId“ByLayer”)
(vlax put property newldrstyle’LeaderLineWeight-1)
(vlax put属性newldrstyle“MaxLeaderSegmentsPoints 0)
(vlax put property newldrstyle’name“标准”)
(vlax put属性newldrstyle'ScaleFactor 1.0)
(vlax put属性newldrstyle“SecondSegmentAngleConstraint 0)
(vlax put属性newldrstyle“TextAlignmentType 0)
(vlax put属性newldrstyle“TextAngleType 1)
(vlax put property newldrstyle’TextHeight 0.09375)
(vlax put property newldrstyle“TextColor Yellow)
(vlax put属性newldrstyle“TextLeftAttachmentType 1)
(vlax put属性newldrstyle'TextRightAttachmentType 1)
(vlax put属性newldrstyle“TextString”)
(vlax put属性newldrstyle'TextStyle(getvar“TextStyle”))
页: [1]
查看完整版本: 更改multilea的文本颜色