自动断开管线的Lisp程序?
xfd831
xfd831 Lv.12
2005年05月14日 17:41:21
只看楼主

由于每次画图,都要用break打断交叉的线段,自己目前还不懂的lisp编程,不知道哪位大虾有?小弟这里先谢过了,我想要!

由于每次画图,都要用break打断交叉的线段,自己目前还不懂的lisp编程,不知道哪位大虾有?小弟这里先谢过了,我想要!
xfd831
2005年05月14日 17:41:46
2楼
我先顶
回复
xfd831
2005年05月17日 12:23:54
3楼
看来这个问题比较难,没有高手发表意见呀
回复
gps-xlf
2005年05月19日 11:26:32
4楼
我以前编制了一个自动打断管线的程序,但该程序是我的编制的程序的一部分,现已将该程序及相关调用的公用子程序整理出来,上传文件为编译后的VLX文件,可用APPLOAD命令加载或编制ACADDOC.LSP文件在启动时自动加载该文件,命令名为BL,Break Lines;支持多条管线同时选择。

另我还编制了一个连接同一条直线上的任意条管线,可将同一直线上的所有管线连接成为一条,可用窗选或窗交的方式同时选择多组管线,经自已试用感觉还不错,有时间再整理出来与大家分享,以解决绘图中一些烦杂的操作,操作中若存在问题,可与我联系。我的邮箱是:xlf1076@sina.com,希望能对各位同行有所帮助
回复
xfd831
2005年05月19日 14:31:49
5楼
谢谢楼上的无私奉献
回复
2002-ytf
2005年05月21日 22:13:54
6楼

能否传上来让我等享用,谢了!
回复
2002-ytf
2005年05月24日 18:42:29
7楼
打断长度能否控制,主要是比例不同
回复
弱水三千
2005年05月24日 23:30:26
8楼


是支持什么版本的,14/2000/2002/2004/2005?
回复
gps-xlf
2005年05月27日 11:22:26
9楼
R14我没使用过,但2000及以上版本没什么支持问题,可以通过设置比例值调节打断距离
回复
vectra
2005年05月27日 11:43:40
10楼
;; crossBreak.lsp
;; (c) 2005 Inkpaint Computing Inc.
;; break lines with cross point

(defun c:cb (/ ent pt ang entx pt0 pt1 cs es ret)
(if (null *CB_DIST)
(setq *CB_DIST 3)
)
(if (null *CB_BDRAWCIRCLE)
(setq *CB_BDRAWCIRCLE 0)
)

(setq cs (getvar "cmdecho")
es *error*
*error* OnError
)
(setvar "cmdecho" 0)

(setq ret t)
(while ret
(initget "D C")
(setq ent (entsel (strcat "\n选择打断直线或 [间距(D)/"
(if (= *CB_BDRAWCIRCLE 1)
"绘隔断圆(C): "
"取消隔断圆(C): "
)
)
)
)
(cond

((= ent "D")
(initget 6)
(setq ret1
(getdist (strcat "\n输入打断间距 <" (rtos *CB_DIST) ">: ")
)
)
(if (/= nil ret1)
(setq *CB_DIST ret1)
)
)

((= ent "C")
(setq *CB_BDRAWCIRCLE
(if (= *CB_BDRAWCIRCLE 0)
1
0
)
)
)


(ent (setq ret nil))
)
)

(setq pt (getpoint "\n指定打断点: "))

(if (not (null pt))
(progn

(setq entx (entget (car ent)))
(setq pt0 (cdr (assoc ’10 entx)))
(setq pt1 (cdr (assoc ’11 entx)))
(setq ang (angle pt0 pt1))

(command ".undo" "BE")

(disableos)
(command ".break"
ent
"F"
(polar pt ang (/ *CB_DIST 2.0))
(polar pt ang (/ *CB_DIST -2.0))
)
(if (= *CB_BDRAWCIRCLE 1)
(command ".circle" pt "D" *CB_DIST)

)

(restoreos)
(command ".undo" "E")
)
)
(setvar "cmdecho" cs)
(setq *error* es)
(princ)
)


将以上代码存为CB.LSP文件, 在CAD中加载, 调用CB命令, 依提示操作
回复
2002-ytf
2005年06月02日 16:09:36
11楼
楼上程序好似不能运行,
回复

相关推荐

APP内打开