使用lisp语言实现在平面图中自动画出桥梁的墩柱标识.doc
还剩
5页未读,
继续阅读
下载文档到电脑,马上远离加班熬夜!
亲,喜欢就下载吧,价低环保!
内容要点:
使用 LISP 语言实现在平面图中自动画出桥梁的墩柱标识 摘 要:以往在平面图中画墩柱标识是一件费时费力,生产力低下的工作,本文讨论了如何使用 LISP 语言实现该项工作,以极大的节省时间,提高共效率。 关键词: LISP 桥梁墩柱 中图分类号: TU997 文献标识码: A 1.以前工作状况 在平面图中画桥梁墩柱的标识是一件大量的繁琐的重复性的工作,以往的做法是: 依据路基宽度确定墩柱的间距和位置,依据桥梁的斜交角度确定是双柱墩还是三柱墩 ,然后把每一种角度的墩柱标识各做成一个块(如图一),再分别一个一个的粘贴进平面图,再旋转该块而成(如图二)。非常繁琐而且需要大量的时间。(当然以上方法仅适用于普通桥梁的标准墩柱标识,对于特殊要求的墩柱型式还是以桥梁组提供的为准。以下 LISP 语言实现的也仅是画出标准墩柱标识。) 图一 图二 2.LISP 语言及编程方法 LISP 语言的先天特性就是可以处理 AutoCAD 中大量重复性的工作,以节省时间和提高效率,下面我们就来看看该怎么实现这个自动画墩柱的程序呢? 我一直认为编程最好的方 法就是分解法,把要实现的目标分解成若干个模块,然后一步一步的去实现。这有利于减少整个工作的难度,有利于增加或者减少程序功能,有利于出现问题时的溯源以便于查错纠错,而且可以提高不少工作效率。 这个程序也是这样,首先我依据需求和平时做这项工作的特性,理出大致的程序结构,分别为: {主程序:负责调用记录系统变量和恢复系统变量,调用功能实现子模块; 判断程序:判断各变量状态; 功能实现子程序:使用判断程序和画出墩柱程序,依据各种状态按要求实现程序功能; 画出墩柱程序。 } 3.自动 画桥墩的具体实现 3.1 主程序: 这里记录了各个系统变量状态,由于本程序需要使用 visual 函数,所以需要预先加载 visual 函数接口,调用了所需的 AutoCAD 线型,调用了功能实现子程序,且程序运行结束后需恢复各系统变量。程序实现如下: (defun c:qd() (setvar "cmdecho" 0) (command "undo" "be") (setq osmode (getvar "osmode")) (setvar "osmode" 0) (vl-load-com) (if(not(tblsearch "ltype" "dashed"))(command "-linetype""load" "dashed" "" "")) (setq f (ssget '((0 . "LWPOLYLINE")))) (get_length f) (command "_copy" f "" '(0 0 ) '(0 0)) (command "_erase" f "") (command "_ucs" "w") (setvar "osmode" osmode) (command "undo" "e") (princ) ) 3.2 画出墩柱程序: 使用功能实现子程序所确定的位置画出墩柱。 (defun DrawC(yuanx / ) (entmake (list (cons 0"
发表评论
暂无评论,赶快抢占沙发吧。