Kowal 发表于 2022-7-5 16:04:28

如何获取现有标签名称

如何使用visuallisp获取图形中存在的标签名称。

Commandobill 发表于 2022-7-5 16:17:32

看这里

Kowal 发表于 2022-7-5 16:34:12

谢谢Commandobill。
我修改了这个论坛的一些代码。
也许有人会用它。
该程序仅适用于Civil 3D 2014,但这不是问题。
(prompt "\ncglab")
(vl-load-com)
(defun c:cglab (/ C3Ddoc ptlblstyles styl lst)
(setq C3Ddoc (vla-get-activedocument (vla-getinterfaceobject (vlax-get-acad-object) "AeccXUiLand.AeccApplication.10.3")))
(setq ptlblstyles (vlax-get C3Ddoc 'pointlabelstyles))
(vlax-for styl ptlblstyles
   (print (vlax-get styl 'name))
   (setq lst (cons (vlax-get styl 'name) lst))
   )
(print lst)
(princ)
)

BIGAL 发表于 2022-7-5 16:40:22

这里有一种获取版本的方法。你想做什么?玩弄这些风格会变得很复杂,有些你想要的东西并没有放在你认为应该放的地方。
 

;vercheck.lspversion check for *aecc objects

(defun ah:vercheck ( / vrsn appstr)
(vl-load-com)
(if ((lambda (vrsn)
       (cond
      ((vl-string-search "R17.2" vrsn) (setq appstr "6.0")) ;09
      ((vl-string-search "R18.0" vrsn) (setq appstr "7.0")) ;10
      ((vl-string-search "R18.1" vrsn) (setq appstr "8.0")) ;11
      ((vl-string-search "R18.2" vrsn) (setq appstr "9.0")) ;12 ?
      ((vl-string-search "R19.0" vrsn) (setq appstr "10.0")) ;13
      ((vl-string-search "R19.1" vrsn)(setq appstr "10.3"));;2014
      ((vl-string-search "R20.0" vrsn)(setq appstr "10.4"));;2015
      ((vl-string-search "R20.1" vrsn)(setq appstr "10.5"));;2016   
      ((vl-string-search "R21.0" vrsn)(setq appstr "11.0"));;2017
((vl-string-search "R22.0" vrsn)(setq appstr "12.0"));;2018   
((alert "This version of C3D not supported!"))
       )
      )
      (vlax-product-key)
   )                         ; end if condition progn is true
   (progn
       (cond (*AeccDoc*)
         ((setq *AeccDoc*
         (vlax-get
             (cond (*AeccApp*)
               ((setq *AeccApp*
               (vla-getinterfaceobject
                  (cond (*Acad*)
                  ((setq *Acad* (vlax-get-acad-object)))
                  )
                  (strcat "AeccXUiLand.AeccApplication." appstr)
               )
                )
               )
             )
             'ActiveDocument
         )
          )
         )
       ) ; end main cond
   ) ; end progn
) ; end if vsrn
)

 
你可能对此感兴趣。
CH点样式。拉链
Chtourstolbar。拉链

ronjonp 发表于 2022-7-5 16:47:48

这是获取版本的另一种方法(杰夫M)

Kowal 发表于 2022-7-5 16:55:43

谢谢你的帮助。
谢谢你的节目。
我还需要一个信息。如何将标签设置为无?
如果未设置任何标签。
(vlax-get-property (vlax-ename->vla-object (car (entsel))) 'LabelStyle)
回报:零
如果设置了任何标签。
(vlax-get (vlax-get-property (vlax-ename->vla-object (car (entsel))) 'LabelStyle) 'Name)
返回例如:“仅点编号”
 
将标签设置为nil将返回错误。
(vlax-put-property (vlax-ename->vla-object (car (entsel))) 'LabelStyle nil)
如何将标签设置为无?

BIGAL 发表于 2022-7-5 17:07:38

看看这个。您可以更改“点组”样式,而不是实体。这就是我在别处看到的改变一些东西。实体显示正在使用的样式。
CH点样式。拉链
页: [1]
查看完整版本: 如何获取现有标签名称