悬赏:自动"排水平面"生成"排水系统"(未完成)
qianzhou
qianzhou Lv.3
2007年11月20日 14:51:42
只看楼主

程序如下:(princ "平面变系统")(princ " *^_^* ")(defun c:lo() (setq p0(getpoint "选取系统点") p1(getpoint"选取顶层其点") cir1(ssget ’((0 . "circle")));选取立管 lin1(ssget ’((0 . "line")));选取线 cir_n(sslength cir1) lin_n(sslength lin1)

程序如下:
(princ "平面变系统")
(princ "
*^_^* ")
(defun c:lo()
(setq p0(getpoint "
选取系统点")
p1(getpoint"
选取顶层其点")
cir1(ssget ’((0 . "circle")));选取立管
lin1(ssget ’((0 . "line")));选取线
cir_n(sslength cir1)
lin_n(sslength lin1)
n1 -1
n2 -1)
(if(<= cir_n lin_n)
(progn
(repeat cir_n
(setq cir_nam(ssname cir1 (+ n1 1))
cir_p1(cdr(assoc 10 (entget cir_nam))))
(setq lin_n1 0)
(while (< lin_n1 lin_n)
(setq lin_n1(+ lin_n1 1))
(setq lin_nam(ssname lin1 (+ n2 1))
lin_p1(cdr(assoc 10 (entget lin_nam))))
(if(<(distance cir_p1 lin_p1)110) ;判别圆内是否有直线 有1,无2
(progn
(setq or1 1)
(setq lin_n1 (+ lin_n 1))
(command "copy" lin_nam """m" cir_p1 p0"")
)
(progn
(setq or1 2)))
)
(princ or1)
(if(= or1 1)
(princ"
直线上")
(princ "
拐弯了"))
)
;(setq p0 ’((+(car p0) 3000)(cadr p0)0.0))
))
)
步骤:
1)平面取一点
2)取(某一)平面图中所有立管(即圆)
3)再取此平面中的排水横管
思路:根据立管是否有引出管线(或引入管)生成系统。
情况1)立管位置无引出或引入管,在图中相应位置生成上引或下引约3.0米的直线;
情况2)有引出管(圆边连有管线),copy出所连管线(可能不止一条)到图的其它相应位置,转成系统图式,且上引直线;有管线连到圆内的,下引直线。就此生成系统图。
以上程序存在问题:无法识别哪个立管连有管线,哪个没有。请哪位高手帮忙分析一下,在此谢过了!!

1195541500958.JPG

tongyihaoma
2008年09月01日 21:56:07
12楼
感谢楼主

辛苦了楼主:lol


努力学习中,嘿嘿 还有很多地方不会,请指教!!!!!!!!!!!

看看,学习!.......
回复
xmdxyzs
2008年10月13日 12:26:21
13楼
没用过鸿业,谢谢,要是能拆出来供大家共享就好了。
回复
voidspace
2008年12月19日 10:32:05
14楼
请问代码编写查阅什么书籍?
回复
xuwu1983
2009年01月07日 11:17:09
15楼
学习中:loveliness: 呵呵
回复
skylj4
2009年03月10日 22:32:36
16楼
多是高手啊
我本人多用天正的,
没想到高人们多是自己编程的呀!!
回复
shlejie
2009年09月18日 16:18:08
17楼
我也想要自动生成纵断面图的软件,但程序我不懂.
回复

相关推荐

APP内打开