Lispboy 发表于 2018-10-6 16:20:51

属性定义标签、提示、默认值修改

本帖最后由 Lispboy 于 2018-10-6 16:26 编辑

(defun c:xdtb_attedit (/            result
                     xd-odcl-att-def-edit-data   blkname
                     tf            #tag             #prompt
                     #default            atts             attename
                     doContinue   result attdefs tags
                      )
(setq      xd-odcl-att-def-edit-data
         '("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"
          )
)
(defun c:xd-att-def-edit-form#OnInitialize (/)
    (dcl-Control-SetList xd-att-def-edit-combox-block atts)
    (dcl-Control-SetEnabled xd-att-def-edit-button-ok nil)
    (if      blkname
      (progn (dcl-Control-SetText xd-att-def-edit-combox-block blkname)
             (c:xd-att-def-edit-combox-block#OnSelChanged
               (vl-position blkname atts)
               blkname
             )
             (setq blkname nil)
      )
      (progn (dcl-Control-SetEnabled
               xd-att-def-edit-combox-tag-caption
               nil
             )
             (dcl-Control-SetEnabled xd-att-def-edit-combox-tag nil)
      )
    )
    (_visible-1 nil)
)
(defun _visible-1 (tf)
    (dcl-Control-SetEnabled xd-att-def-edit-button-ok tf)
    (dcl-Control-setenabled
      xd-att-def-edit-combox-tag-rename-caption
      tf
    )
    (dcl-Control-setenabled
      xd-att-def-edit-combox-tag-rename
      tf
    )
    (dcl-Control-setenabled
      xd-att-def-edit-combox-prompt-rename-caption
      tf
    )
    (dcl-Control-SetEnabled
      xd-att-def-edit-combox-prompt-rename
      tf
    )
    (dcl-Control-setenabled
      xd-att-def-edit-combox-default-rename-caption
      tf
    )
    (dcl-Control-setenabled
      xd-att-def-edit-combox-default-rename
      tf
    )
)
(defun c:xd-att-def-edit-combox-tag#OnSelChanged
         (ItemIndexOrCount Value /)
    (if      (/= value "")
      (progn (_visible-1 t)
             (dcl-Control-SetText
               xd-att-def-edit-combox-tag-rename
               (car (nth ItemIndexOrCount tags))
             )
             (dcl-Control-SetText
               xd-att-def-edit-combox-prompt-rename
               (caddr (nth ItemIndexOrCount tags))
             )
             (dcl-Control-SetText
               xd-att-def-edit-combox-default-rename
               (cadddr (nth ItemIndexOrCount tags))
             )
             (setq attename (cadr (nth ItemIndexOrCount tags)))
      )
      (_visible-1 nil)
    )
)
(defun c:xd-att-def-edit-combox-block#OnSelChanged
         (ItemIndexOrCount Value /)
    (if      (/= value "")
      (progn (dcl-Control-SetEnabled
               xd-att-def-edit-combox-tag-caption
               t
             )
             (dcl-Control-SetEnabled xd-att-def-edit-combox-tag t)
             (dcl-Control-SetEnabled
               xd-att-def-edit-combox-tag-caption
               t
             )
             (setq attdefs (xdrx_block_getentities value '((0 . "att*"))))
             (setq tags      (mapcar      '(lambda (x)
                                 (xdrx_getpropertyvalue
                                     x
                                     "tag"
                                     "prompt"
                                     "textstring"
                                 )
                                 (list #tag x #prompt #textstring)
                                 )
                              attdefs
                        )
             )
             (dcl-Control-SetList
               xd-att-def-edit-combox-tag
               (mapcar 'car tags)
             )
      )
    )
)
(defun c:xd-att-def-edit-button-quit#OnClicked (/)
    (dcl-form-close xd-att-def-edit-form 5)
)
(defun c:xd-att-def-edit-button-pick#OnClicked (/)
    (dcl-form-close xd-att-def-edit-form 3)
)
(defun _pick ()
    (if      (setq e (car (xdrx_entsel "\n拾取属性块<返回>:" '((66 . 1)))))
      (setq blkname (xdrx_getpropertyvalue e "name"))
    )
)
(defun c:xd-att-def-edit-button-ok#OnClicked (/)
    (setq #tag (dcl-Control-GetText xd-att-def-edit-combox-tag-rename))
    (setq #prompt
         (dcl-Control-GetText xd-att-def-edit-combox-prompt-rename)
    )
    (setq #default (dcl-Control-GetText
                     xd-att-def-edit-combox-default-rename
                   )
    )
    (if      (or (= #tag "") (= #prompt "") (= #default ""))
      (dcl-messagebox "数据无值,请检查." "晓东温馨提示")
      (progn (setq
               blkname (dcl-Control-GetText xd-att-def-edit-combox-block)
             )
             (dcl-form-close xd-att-def-edit-form 4)
             (xdrx_setpropertyvalue
               attename      "tag" #tag "textstring"      #default "prompt"
               #prompt)
             (xdrx_prompt "\n属性定义已经修改.")
      )
    )
)
(setq atts (xd::block:getattdefs))
(if (not atts)
    (xdrx_prompt "\n当前图没发现属性块.")
    (progn (dcl-project-import xd-odcl-att-def-edit-data)
         (setq doContinue t)
         (while doContinue
             (setq doContinue nil)
             (setq result (dcl-form-show xd-att-def-edit-form))
             (cond ((= result 3) (_pick) (setq doContinue t))
                   (t (setq doContinue nil))
             )
         )
    )
)
(princ)
)

evayleung 发表于 2018-10-7 00:27:29

谢谢提供好源码。。

sicky111 发表于 2018-10-8 00:02:57

这个方便。

tht-0 发表于 2018-10-10 16:58:39

谢谢分享!!学习一下!!!

sunshinejwt 发表于 2018-10-12 09:43:24

缺少的函数在这里
http://bbs.xdcad.net/forum.php?mod=viewthread&tid=718289&highlight=GETATTDEFS
不过我试用后发现有的改不了。另外这个还可以增加功能,比如原来的属性快里面的某个属性是已经填了,但是现在看不到。

newer 发表于 2018-10-12 12:41:33

本帖最后由 newer 于 2018-10-12 12:42 编辑

sunshinejwt 发表于 2018-10-12 09:43
缺少的函数在这里
http://bbs.xdcad.net/forum.php?mod=viewthread&tid=718289&highlight=GETATTDEFS
不 ...
请把不能修改的图传上来。另外,这个程序是修改属性定义的标签的,不是修改块的属性值的

shqvc 发表于 2018-10-13 18:22:59

evayleung 发表于 2018-10-7 00:27
谢谢提供好源码。。

你能看的懂他写的是什么吗?    默认值都能改哪一些

newer 发表于 2018-10-13 18:26:54

shqvc 发表于 2018-10-13 18:22
你能看的懂他写的是什么吗?    默认值都能改哪一些

你做图块前,你属性ATTDEF定义的那些。
不是做好块后,插入时候提示你的那些。

wafmok 发表于 2026-7-15 14:53:27

谢谢分享
页: [1]
查看完整版本: 属性定义标签、提示、默认值修改