symoin 发表于 2022-7-6 09:42:25

用点替换块

尊敬的各位:,
我有一个在文本插入点有将近36000个块的图形。
这些区块具有不同的层。现在,我需要一个lisp来删除块,并在块/文本的插入点及其相应的层上放置一个点。

Sittingbull 发表于 2022-7-6 09:47:05

 
对应的层?这是它前面的文本层吗?它是一种带有符号(块)及其描述(层)的表格吗?
一张图纸中有36000块???

Tharwat 发表于 2022-7-6 09:51:09

看看这个。。。。。。伙计。
 

(defun c:test (/ *error* ss TH:CAD TH:StartUnDo TH:EndUnDo)
; Tharwat 21. 02. 2011
(vl-load-com)
(defun *error* ( msg )
   (and TH:UnDo (vla-EndUndoMark TH:CAD))
   (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
       (princ (strcat "\n** Error: " msg " **")))
   (princ)
)
(setq TH:CAD (vla-get-ActiveDocument (vlax-get-acad-object)))
(setq TH:StartUnDo (vla-StartUndoMark TH:CAD))
(if (eq (getvar 'pdmode)0 )(setvar 'pdmode 3))
(if (setq ss (ssget "_x" '((0 . "INSERT"))))
   ((lambda (i / ss1 e L )
      (while
      (setq ss1 (ssname ss (setq i (1+ i))))
      (entmakex (list (cons 0 "POINT")(cons 8 (cdr (assoc 8 (entget ss1))))(cons 10 (cdr (assoc 10 (entget ss1))))
                        )
                  )
             (entdel ss1)
      )
      )
   -1
   )
   (Alert "\n Not even one block found "))
(setq TH:EndUnDo (vla-EndUndoMark TH:CAD))
(princ)
)

 
塔瓦特

Sittingbull 发表于 2022-7-6 09:54:02

Tharwat=快速冈萨雷斯

Tharwat 发表于 2022-7-6 09:58:19

 
我不明白花边是什么意思。

Sittingbull 发表于 2022-7-6 09:58:51

 
http://en.wikipedia.org/wiki/Speedy_Gonzales
 
http://www.youtube.com/results?search_query=speedy+冈萨雷斯和aq=f
 
:眨眼:

Tharwat 发表于 2022-7-6 10:04:16

很好的冈萨雷斯,很高兴认识他。
 
谢谢你的信息。
 
塔瓦特

Lee Mac 发表于 2022-7-6 10:06:08

塔尔瓦特,
 
用于返回vla开始/结束标记的变量的目的是什么?
 
 
此外,这是多余的:
 
 
它可以被替换为
 
(assoc8 (entget ss1))

(assoc 10 (entget ss1))

alanjt 发表于 2022-7-6 10:10:09

哇,几天前才有人向他指出这一点。

Tharwat 发表于 2022-7-6 10:11:57

 
没错,李,这些函数不需要变量名。
 
 
也是这样,这是一个免费重建两次的问题。
 
非常感谢。
 
塔瓦特
页: [1] 2
查看完整版本: 用点替换块