使用LISP语言实现在平面图中自动画出桥梁墩柱标识.docVIP

使用LISP语言实现在平面图中自动画出桥梁墩柱标识.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用LISP语言实现在平面图中自动画出桥梁墩柱标识

使用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”CIRCLE”) (cons 100 “AcDbEntity”) (cons 100 “AcDbCircle”) (cons 8 “桥墩”) (cons 6 “DASHED”) (cons 48 0.01) (list 10 (car yuanx) (cadr yuanx) 0.0) (cons 40 0.8) (cons 62 5) )) (entmake (list (cons 0”CIRCLE”) (cons 100 “AcDbEntity”) (cons 100 “AcDbCircle”) (cons 8 “桥墩”) (cons 6 “DASHED”) (cons 48 0.01) (list 10 (car yuanx) (cadr yuanx) 0.0) (cons 40 0.85) (cons 62 5) )) ) 3.3判断程序和功能实现子程序: 由于本程序属于比较单一和简单的功能实现集,所以在后来的调试完成时,我把判断程序和功能实现子程序合并成了一个模块。 在该模块中,使用主程序所确定的选择集,首先需要用户输入路基的宽度,以确定可使用半幅桥梁墩柱的总宽度。 依据索引值取出选择集中的图元,然后再把图元转对象

文档评论(0)

docman126 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7042123103000003

1亿VIP精品文档

相关文档