AECC标签样式编辑
因此,我试图扩展我编写的一个例程,将背景遮罩应用于不同的对象。我遇到的问题是当我尝试更改AECC标签样式的属性时。我不知道如何更改正常情况下和拖动状态下对应于背景掩码的属性。当我转储对象时,标签样式显示为无用信息。LabelStyle = #。然后我向下迭代一个级别,这为我提供了有关标签样式的信息,但在背景掩码上找不到任何内容。我可以向下迭代另一个级别,获得关于DraggedComponentStyle的信息,但这似乎没有任何关于背景掩码的信息。有人有什么建议吗? 在civ3d中,一些标签样式信息实际上保存在不同的位置,我试图获取样式中的图层信息,发现一些答案在其他地方。我花了很多时间浏览样式,有些标签有描述,但名称与align v的aligns略有不同
; vercheck returns *AeccDoc* for the particular version
(if (not ah:vercheck)(Load "vercheck"))
(ah:vercheck)
(setq gnl (vlax-get *AeccDoc* 'GeneralLineLabelStyles))
(setq std (vlax-get-property gnl 'item "Bearing and Distance 2.5mm >500m"))
(setq labprop (vlax-get std 'LabelProperties))
(setq lay (vlax-get labprop 'Layer))
; (vlax-dump-object lay)
; Value = "0" layer name
(vla-put-Value lay "text")
我可以在BorderStyle、TextComponent、TextComponents和LabelStyle下找到背景遮罩。
(setq obj (vlax-ename->vla-object (car (entsel ))))
(setq lblstyle (vlax-get-property obj 'LabelStyle))
(setq tcoms (vlax-get-property lblstyle 'TextComponents))
(setq tcom (vlax-get-property tcoms 'Item 0))
(setq bordStl (vlax-get-property tcom 'BorderStyle)) 希普,谢谢你!所以当我转储bordstl时,我看到背景掩码属性就在那里。然而,我似乎无法实际设置它。掩码的对应代码似乎是-1,但当我尝试通过执行(vlax-put-property bordstl 'BackgroundMask -1)来设置它时,实际上什么都没有发生。你知道我做错了什么吗? 请尝试以下操作:
(vlax-put-property bordstl 'BackgroundMask :vlax-true)
或
(vlax-put-property bordstl 'BackgroundMask :vlax-false)
虽然我发现这只适用于非拖拽状态。这不会对拖动状态背景掩码产生影响。 我不确定,但我认为你走错了路,你可能必须有一个背景遮罩设置的标签样式,然后更改点样式为那个。查看点的特性并更改“样式”而不是点标签样式。我已经打过了,但它仍然不太正确,但很接近,我认为有一些越位的设置踢进来。
(vlax-put-property lblstyle 'name "your label")
在对此进行更多研究时,背景掩码似乎是为文本组件公开的,尽管它似乎没有为拖动状态组件公开。然而,它暴露在空气中。NET框架。
页:
[1]