基于组件的三维CAD系统开发的关键技术研究
2007-12-24 09:56:09 来源:WEB开发网(1)前处理
STSE为平面渗流有限元程序,单元划分和单元、节点编号工作量最大,可以借助其它通用有限元软件的前处理功能如Ansis、Algor、SAP84等进行初步处理,生成单元、节点编号和节点坐标,而后按照STSE数据文件的格式要求对数据文件进行编辑。
(2)后处理
后处理成果主要为:单元网格图,浸润线和等势线。单元网格图中有节点和单元编号,不同渗透系数的单元采用不同的颜色,以便根据网格图直观地判断数据文件中几何参数和材料特性的正误;
首先分析STSE的输出结果文件的格式,搜索并筛选其中主要参数如单元总数、节点总数和材料总数,把节点坐标和单元信息分别存储,通过对单元循环生成单元网格图。
(defun c:seepmesh()
(if fn
(setq fn (getfiled "渗流结果文件名" fn "" 2))
(setq fn (getfiled "渗流结果文件名" "" "" 2)))
(setq f (open fn "r"))
(setq md (read-line f))
(while (/= (substr md 25 8) "单元总数")
(setq md (read-line f))
);定位单元总数
(setq dyzs (atoi (substr md 58 5)));读单元总数
(setq md (read-line f))
(setq jdzs (atoi (substr md 58 5)));读节点总数
(setq md (read-line f))
(setq clh (atoi (substr md 58 5)));读材料总数
(setq m 0)
(repeat clh
(setq m (+ 1 m))
(setq tcm (strcat "zclh" (itoa m)))
(command "layer" "m" tcm "c" (itoa m) tcm "")
);按材料种类生成图层名称
(setq m 0 n 0)
(repeat dyzs;对单元循环,dycfb中存放单元信息
(setq m (+ m 1))
(setq clh (nth 0 (nth m dycfb)))
(setq jdh1 (nth 1 (nth m dycfb)))
(setq jdh2 (nth 2 (nth m dycfb)))
(setq jdh3 (nth 3 (nth m dycfb)))
(setq jdh4 (nth 4 (nth m dycfb)))
(command "layer" "s" (strcat "zclh" (itoa clh)) "")
(command "pline";绘制单元网格
(nth jdh1 jdzbb)
(nth jdh2 jdzbb)
(nth jdh3 jdzbb)
(nth jdh4 jdzbb) "c")
(setq bzdzb (mapcar '+ (nth jdh1 jdzbb) (nth jdh2 jdzbb)
(nth jdh3 jdzbb) (nth jdh4 jdzbb)))
(setq bzdzb (list (/ (car bzdzb) 4.0) (/ (cadr bzdzb) 4.0)))
(command "text" "m" bzdzb "0.5" "0" (itoa m))
;标注单元号
(setq m 0)
(repeat jdzs
(setq m (+ m 1))
(setq bzdzb (nth m jdzbb))
(setq bzdzb (list (+ (car bzdzb) 0.0) (+ (cadr bzdzb) 0.0)))
(command "text" "m" bzdzb "0.5" "0" (itoa m))
));标注节点号
(close f)
)
限于篇幅,等势线和浸润线生成程序不再赘述。同样,对工程设计中遇到的其它软件如:STAB边坡稳定分析、SAP84的输出文件均可进行类似后处理工作。
3 结语
AutoCAD软件应用已经在设计单位普及,VisualLisp的出现对于提高Lisp语言的编程效率和AutoCAD应用水平具有重要意义。本文涉及的几个实例已经在实际工作中发挥很大作用,充分说明在工程设计当中结合本专业要求开发一些简单实用的Lisp小程序可以有效减轻设计人员的劳动强度,使AutoCAD不仅仅是绘图工具,而真正成为设计人员得心应手的高效设计平台。
- ››基于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图表框架横向对比
更多精彩
赞助商链接