Tunnelrat 发表于 2022-7-6 15:22:44

块插入时的节点

我在fuccaro发布的这个论坛上发现了这个lisp代码,他说可以修改它,在圆和线处插入节点,但我无法通过添加(=零“线”)使其工作。有谁知道如何帮助我,特别是如何使其与块一起工作吗。
 
非常感谢。
 
 
 
 
; 在多段线顶点处绘制点
; 和(M)个文本插入点
;;; mfuccaro@hotmail.com 09.06.2003
;
(defun c:pts(/ss i首先删除零)
(setvar“CMDECHO”0)
(命令“UNDO”“begin”)
(setq ss(ssget)i 0)
(重复(sslength ss)
(setq elist(entget(ssname ss i))
零(cdr(assoc 0 elist)))
(如果(或(=零“TEXT”)(=零“MTEXT”)(=零“LWPOLYLINE”))
(当elist
(setq first(car elist)elist(cdr elist))
(if(=10(车辆优先))(命令“点”(cdr优先))
))
(setq i(1+i))
)
(命令“undo”“end”)
(setvar“CMDECHO”1)
(普林斯)
)

CarlB 发表于 2022-7-6 16:01:39

似乎它应该与“line”一起使用,您是这样添加的吗
 
(如果(或(=零“TEXT”)(=零“MTEXT”)(=零“LWPOLYLINE”)(=零“LINE”))
 
要使其仅与块一起工作,请使用这条线;
 
(如果(=零“插入”)
 
整个文件仅针对块插入上的节点进行修改;
 

; Draw POINTs at BLOCK insert points
;;;; mfuccaro@hotmail.com 09.06.2003
;;; modied by CAB 1.06.09
(defun c:pts ( / ss i elist InsPt)
(setvar "CMDECHO" 0)
(command "UNDO" "begin")
(setq ss (ssget '((0 . "INSERT"))) i 0) ;filters for inserts
(repeat (sslength ss)
   (setq elist (entget (ssname ss i))
   (setq InsPt (cdr (assoc 10 elist)))
   (command "POINT" insPt)
   (setq i (1+ i))
)
(command "undo" "end")
(setvar "CMDECHO" 1)
(princ)
)

Tunnelrat 发表于 2022-7-6 16:06:14

非常感谢CarlB,它工作得很好。
它以前不工作,可能是我把PDnode设置得太小了,它没有显示。

Lee Mac 发表于 2022-7-6 16:28:16

 
缺少1个支架
 

; Draw POINTs at BLOCK insert points
;;;; mfuccaro@hotmail.com 09.06.2003
;;; modied by CAB 1.06.09
(defun c:pts ( / ss i elist InsPt)
(setvar "CMDECHO" 0)
(command "UNDO" "begin")
(setq ss (ssget '((0 . "INSERT"))) i 0) ;filters for inserts
(repeat (sslength ss)
   (setq elist (entget (ssname ss i)))
   (setq InsPt (cdr (assoc 10 elist)))
   (command "POINT" insPt)
   (setq i (1+ i))
)
(command "undo" "end")
(setvar "CMDECHO" 1)
(princ)
)
页: [1]
查看完整版本: 块插入时的节点