elfert 发表于 2022-7-5 15:46:59

查找块插入点

您好,我需要一个lisp-rutine,可以找到一个块(绘图头)插入点,并在同一点插入另一个块。我不认为这可能是一个长口吃。我在网上到处找了找。我还看到了一个最近的lisp-rutine,用户必须选择块以用户选择或给定的角度旋转块。我需要一些思考,可以找到块插入点,只需寻找块名,并在第一个块的相同插入点插入另一个块。
 
Thx i前进。

BIGAL 发表于 2022-7-5 15:51:43

查找SSGET帮助它允许“过滤器”基本上使用过滤器搜索所有块并返回名为xyz的块
 
执行(setq ans(entsel))选择块,然后(entget(car ans))您现在将看到所有已知的dxf代码,您需要使用(0。“插入”)和(2。“您的块名”)也可能是(410。“布局1”)当前布局,提示还可以尝试“模型”。插入点在我拾取的块中为(10 0.0 0.0 0.0),
 

(setq ans (entsel))
(setq en (entget (car ans)))
(setq inspt (cdr (assoc 10 en)))
(princ inspt)
; (car inspt) is X
; (cadr inspt) is Y
;(caddr inspt) is Z

;(ssget "X"(0 . "INSERT")(2 . "your blockname"))
;warning if more than once will return all

elfert 发表于 2022-7-5 15:55:11

 
 
我这个程序我需要选择一个块,它返回一个插入点。我要搜索的是一个rutine,它根据特定的块名称查找块,并找到这个块插入点这个插入点它必须用来插入另一个块,而不是第一个块。
我读过jefferypsanders的SSGET。com,还有关于过滤器,但据我所知,我必须使用SSGET“X”并过滤掉块名,但当它可以过滤掉的唯一名称是层名时,这怎么可能呢?
 
我有大约3公斤的画,我有一个“竣工”的标志,这就是为什么我问,并希望我可以在脚本批使用芦丁。
 
提前谢谢你。
 
埃尔弗特

elfert 发表于 2022-7-5 15:57:39

 
我环顾了一下afralisp,发现它可能是我问题的解决方案,但我无法让它正常工作,也许有人能帮我。
 
我试图让程序返回我告诉它的块名称的插入点。但我犯了一个错误;错误:功能错误:(2.“dwg”);dwg是我的测试块名称。
 
任何帮助都感谢。。。thx提前。。。。一个人怎么会犯错误。。。埃尔弗特!

paulmcz 发表于 2022-7-5 16:00:19

如果图形中只有一个块实例,这将为您提供其插入点:
 
(defun c:asbuilt2 (/ a b c)
(setq        a (ssget "_X" '((0 . "INSERT") (2 . "block-name")))
b (sslength a)
)

(repeat b
   (setq b (1- b)
c (append c (cdr (assoc 10 (entget (ssname a b)))))
   )
)
(princ c)
(princ)
)
 
如果有多个插入点,它将列出所有插入点。

elfert 发表于 2022-7-5 16:03:20

 
Thx做到了。我已经完成了这个计划。非常感谢你。我将尝试对其进行微调,然后稍后发布。

elfert 发表于 2022-7-5 16:06:43

给你!还是Lisp程序员的新手。。。。。。

BlackBox 发表于 2022-7-5 16:11:34

埃尔弗特,
 
确保考虑ANS=nil(在C:Asbuilt1中)或A=nil(在C:asbuilt2中)的可能性。
 
也许IF语句可以帮助您缓解潜在错误-例如:
 

(defun c:FOO(/ ss)
(if (and (setq ss (ssget ":S:E" '((0 . "INSERT"))))
          (findfile "ASBUILT.dwg"))
   (command "._-insert"
            "ASBUILT"
            (cdr (assoc 10 (entget (ssname ss 0))))
            1.0
            1.0
            0.0)
   (cond (ss (prompt "\n** \"ASBUILT.dwg\" cannot be found ** "))
         ((prompt "\n** Nothing selected ** "))))
(princ))

 
**编辑添加-我个人尝试在插入块时明确定义比例和旋转,以避免潜在的错误。
 
HTH公司

elfert 发表于 2022-7-5 16:13:47

谢谢。我会调查的。我会尽快发布一个新的代码来考虑。

BlackBox 发表于 2022-7-5 16:17:21

不客气。。。我很高兴你发现我的帖子很有用。
页: [1] 2
查看完整版本: 查找块插入点