基于组件的三维CAD系统开发的关键技术研究
2007-12-24 09:56:09 来源:WEB开发网(2)切剖面
输入剖面编号,在平面地形图上指定两点确定剖面剖切线位置,指定剖面图起点,利用AutoCAD的inters函数搜索剖切线与地形图的全部交点,自动计算交点坐标,计算交点与剖面位置起点的距离,按各交点高程和与起点的距离形成剖面图各点坐标,即可用本文实例1坐标画线生成地形图的剖面。
(defun dxtent1 ()
(setq n 0 xdzb nil)
(setq xds 0)
(setq sh (sslength e1))
(while (< n sh)
(setq x (entget (ssname e1 n)))
(if (= (fld 0 x) "LINE")
(progn
(setq dxtgcgc (fld 8 x))
(setq dxtgcgc (atoi dxtgcgc))
(if (> dxtgcgc 10)
(progn
(setq pst (fld 10 x))
(setq pet (fld 11 x))
(setq zb (list gc
(list (car pst) (cadr pst))
(list (car pet) (cadr pet))
))
(setq xdzb (cons zb xdzb))
(setq xds (+ xds 1))
))))
(setq n (+ n 1))
))
(defun c:dxtsec ()
(setq pmh (+ pmh 1))
(setq pmh (getstring "/n 剖面号" ))
(setq pt1 (getpoint "/n 剖切位置起点:"))
(setq pt2 (getpoint pt1 "/n 剖切位置终点:"))
(setq pt3 (getpoint "/n 剖面图布置:"))
(setq p01 pt3)
(setq e1 (ssget "F" (list pt1 pt2)));利用AutoCAD的目标选择“F”方式选取与剖切线相交的地形线。
(dxtent);获取与剖切线相交地形线的坐标
(setq mxgc -100)
(setq mngc 10000)
(setq m 0 pmp nil)
(setq n xds i 0)
(while (< i n)
(setq crosp
(inters pt1 pt2 (nth 1 (nth i xdzb)) (nth 2 (nth i xdzb)) 1)
);求剖切线与地形线的交点
(if (/= crosp nil)
(progn
(setq dxtgcgc (nth 0 (nth i xdzb)))
(setq mxgc (max mxgc dxtgcgc))
(setq mngc (min mngc dxtgcgc))
(setq dst (distance pt1 crosp));剖切线起点与交点的距离
(setq dst (* (/ blcz dxthtbl) dst))
(setq pmp (cons (list m dst dxtgcgc) pmp))
(setq m (+ m 1))
))
(setq i (+ i 1))
))
- ››基于IP地址的vsftp服务器
- ››基于MySQL 水平分区的优化示例
- ››基于CentOS5的Linux下pptp和openvpn的搭建及配置
- ››基于JavaScript的网页版塔防游戏
- ››基于Android平台 QQ大战360手机游戏爆红
- ››基于Windows Azure的云计算应用设计
- ››基于AES算法实现对数据的加密
- ››基于SoPC目标板Flash编程设计的创建及应用
- ››基于SolidWarks齿轮机构的运动分析与仿真
- ››基于Windwos Server 2008故障转移群
- ››基于JavaScript的REST客户端框架
- ››基于JavaScript和CSS的Web图表框架横向对比
更多精彩
赞助商链接