ARGV 发表于 2022-7-6 07:17:59

块描述字段

有人知道autocad将块描述字段隐藏在哪里吗?我无法使用VLISP或常规LISP找到它??我查看了扩展数据,也没有发现任何东西??
 
谢谢

Lee Mac 发表于 2022-7-6 07:32:02

像这样的?
 

(defun getDesc (blk / Com)
(cond
   ((not
      (vl-catch-all-error-p
      (vl-catch-all-apply
          (function
            (lambda ( )
            (setq com
                (vla-get-Comments
                  (vla-item
                  (vla-get-Blocks
                      (vla-get-ActiveDocument
                        (vlax-get-acad-object))) blk))))))))
    Com)
   (t nil)))

(defun c:test (/ ent)
(if (and (setq ent (car (entsel "\nSelect Block: ")))
          (eq "INSERT" (cdadr (entget ent))))
   (if (setq Com (getDesc (cdr (assoc 2 (entget ent)))))
   (alert Com)))
(princ))

(vl-load-com)

ARGV 发表于 2022-7-6 07:39:23

 
是的,谢谢。我不知道vla get comments命令,显然从未尝试过找到它??
 
非常感谢。

Lee Mac 发表于 2022-7-6 07:46:30

 
没问题-在今天之前我从未尝试过寻找描述,所以我只是做了一些实验,在那里找到了它

ARGV 发表于 2022-7-6 07:49:39

 
是的,我可以发誓我试着在恰当的窗口中查找“评论”。
 
无论如何,现在的额外问题是,如何向块中添加注释。据我所知,您可以在summaryinfo对象内添加注释,但我无法向块中添加注释??
 
谢谢你,李。

Lee Mac 发表于 2022-7-6 08:01:12

 
这似乎对我有效:
 

(defun PutDesc (blk Desc)
(cond
   ((not
      (vl-catch-all-error-p
      (vl-catch-all-apply
          (function
            (lambda ( )
            (vla-put-Comments
                (vla-item
                  (vla-get-Blocks
                  (vla-get-ActiveDocument
                      (vlax-get-acad-object))) blk) Desc))))))
    Desc)
   (t nil)))

(defun c:test (/ ent Com)
(if (and (setq ent (car (entsel "\nSelect Block: ")))
          (eq "INSERT" (cdadr (entget ent)))
          (setq Com (getstring t "\nSpecify Comments: ")))
   (PutDesc (cdr (assoc 2 (entget ent))) Com))
(princ))

ARGV 发表于 2022-7-6 08:03:09

 
好的,那么。。我尝试了一种更直接的方法,但似乎没有奏效,但也许我错过了什么。谢谢

Lee Mac 发表于 2022-7-6 08:11:48

 
酷,还有什么要问的吗

kheajohn 发表于 2022-7-6 08:22:28

 
 
李,你好,
 
你能进一步增强这个lisp吗,这样我就可以得到块或层描述的描述,并在标记/标记中使用这些信息?
 
当做
理查德
页: [1]
查看完整版本: 块描述字段