HEATS 发表于 2010-9-13 22:00:36

基于组件的三维CAD系统开发的关键技术研究(四)

<p>  2 .7应用软件前、后处理</p>

<p>  由于软件升级滞后,一些常用软件后处理功能很弱或没有,可以利用LSP程序结合AutoCAD增加或简化前后处理功能。下面结合平面渗流分析程序STSE软件对其前、后处理功能的实现进行介绍:</p>

<p>  (1)前处理</p>

<p>  STSE为平面渗流有限元程序,单元划分和单元、节点编号工作量最大,可以借助其它通用有限元软件的前处理功能如Ansis、Algor、SAP84等进行初步处理,生成单元、节点编号和节点坐标,而后按照STSE数据文件的格式要求对数据文件进行编辑。</p>

<p>  (2)后处理</p>

<p>  后处理成果主要为:单元网格图,浸润线和等势线。单元网格图中有节点和单元编号,不同渗透系数的单元采用不同的颜色,以便根据网格图直观地判断数据文件中几何参数和材料特性的正误;</p>

<p>  首先分析STSE的输出结果文件的格式,搜索并筛选其中主要参数如单元总数、节点总数和材料总数,把节点坐标和单元信息分别存储,通过对单元循环生成单元网格图。</p>

<p>  (defun c:seepmesh()</p>

<p>  (if fn</p>

<p>  (setq fn (getfiled "渗流结果文件名" fn "" 2))</p>

<p>  (setq fn (getfiled "渗流结果文件名" "" "" 2)))</p>

<p>  (setq f (open fn "r"))</p>

<p>  (setq md (read-line f))</p>

<p>  (while (/= (substr md 25 8) "单元总数")</p>

<p>  (setq md (read-line f))</p>

<p>  );定位单元总数</p>

<p>  (setq dyzs (atoi (substr md 58 5)));读单元总数</p>

<p>  (setq md (read-line f))</p>

<p>  (setq jdzs (atoi (substr md 58 5)));读节点总数</p>

<p>  (setq md (read-line f))</p>

<p>  (setq clh (atoi (substr md 58 5)));读材料总数</p>

<p>  (setq m 0)</p>

<p>  (repeat clh</p>

<p>  (setq m (+ 1 m))</p>

<p>  (setq tcm (strcat "zclh" (itoa m)))</p>

<p>  (command "layer" "m" tcm "c" (itoa m) tcm "")</p>

<p>  );按材料种类生成图层名称</p>

<p>  (setq m 0 n 0)</p>

<p>  (repeat dyzs;对单元循环,dycfb中存放单元信息</p>

<p>  (setq m (+ m 1))</p>

<p>  (setq clh (nth 0 (nth m dycfb)))</p>

<p>  (setq jdh1 (nth 1 (nth m dycfb)))</p>

<p>  (setq jdh2 (nth 2 (nth m dycfb)))</p>

<p>  (setq jdh3 (nth 3 (nth m dycfb)))</p>

<p>  (setq jdh4 (nth 4 (nth m dycfb)))</p>

<p>  (command "layer" "s" (strcat "zclh" (itoa clh)) "")</p>

<p>  (command "pline";绘制单元网格</p>

<p>  (nth jdh1 jdzbb)</p>

<p>  (nth jdh2 jdzbb)</p>

<p>  (nth jdh3 jdzbb)</p>

<p>  (nth jdh4 jdzbb) "c")</p>

<p>  (setq bzdzb (mapcar '+ (nth jdh1 jdzbb) (nth jdh2 jdzbb)</p>

<p>  (nth jdh3 jdzbb) (nth jdh4 jdzbb)))</p>

<p>  (setq bzdzb (list (/ (car bzdzb) 4.0) (/ (cadr bzdzb) 4.0)))</p>

<p>  (command "text" "m" bzdzb "0.5" "0" (itoa m))</p>

<p>  ;标注单元号</p>

<p>  (setq m 0)</p>

<p>  (repeat jdzs </p>

<p>  (setq m (+ m 1)) </p>

<p>  (setq bzdzb (nth m jdzbb)) </p>

<p>  (setq bzdzb (list (+ (car bzdzb) 0.0) (+ (cadr bzdzb) 0.0))) </p>

<p>  (command "text" "m" bzdzb "0.5" "0" (itoa m)) </p>

<p>  ));标注节点号</p>

<p>  (close f)</p>

<p>  )</p>

<p>  限于篇幅,等势线和浸润线生成程序不再赘述。同样,对工程设计中遇到的其它软件如:STAB边坡稳定分析、SAP84的输出文件均可进行类似后处理工作。</p>

<p>  3结语</p>

<p>  AutoCAD软件应用已经在设计单位普及,VisualLisp的出现对于提高Lisp语言的编程效率和AutoCAD应用水平具有重要意义。本文涉及的几个实例已经在实际工作中发挥很大作用,充分说明在工程设计当中结合本专业要求开发一些简单实用的Lisp小程序可以有效减轻设计人员的劳动强度,使AutoCAD不仅仅是绘图工具,而真正成为设计人员得心应手的高效设计平台。</p>



               
页: [1]
查看完整版本: 基于组件的三维CAD系统开发的关键技术研究(四)

中国磨床技术论坛
论 坛 声 明 郑重声明:本论坛属技术交流,非盈利性论坛。本论坛言论纯属发表者个人意见,与“中国磨削技术论坛”立场无关。 涉及政治言论一律删除,请所有会员注意.论坛资源由会员从网上收集整理所得,版权属于原作者. 论坛所有资源是进行学习和科研测试之用,请在下载后24小时删除, 本站出于学习和科研的目的进行交流和讨论,如有侵犯原作者的版权, 请来信告知,我们将立即做出整改,并给予相应的答复,谢谢合作!

中国磨削网