Auto Lisp在百图水利土石方设计软件中快速标注中桩高程的应用.docVIP

Auto 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文档。上传文档
查看更多
Auto Lisp在百图水利土石方设计软件中快速标注中桩高程的应用.doc

Auto Lisp在百图水利土石方设计软件中快速标注中桩高程的应用   【摘 要】本文叙述了利用AutoLISP在百图水利土石方设计软件中快速标注中桩高程的应用,并通过实例证明程序是可行性的。   【关键词】AutoLISP 百图水利土石方设计软件 水利测量 横断面图 中桩高程   1 引言   AutoLISP是由Autodesk公司开发的一种LISP程序语言,LISP是List Processor的缩写。通过AutoLISP编程,可以节省内业很多时间。AutoLISP语言作为嵌入在AutoCAD内部的具有智能特点的编程语言,是开发应用AutoCAD不可缺少的工具。它能帮助经常使用或重复操作步骤的自动化,从而显著地提高工作效率。其基本功能是可以控制用户与程序运行之间的相互关系。AutoLISP具有容易撰写、容易学习、无需编译、安全性好等特点。   2 问题及解决方法   百图水利土石方设计软件是目前在水利工程测量中常用的软件之一,它对土石方工程(如堤防、河道、渠道、土坝、道路等)断面数据的提取及批量绘制横断面图等有着很强的功能。但是,在批量绘制好的横断面图上,每标注一个横断面中桩高程都必需重复进行“高程校准 → 选取标尺 → 高程标注 → 指定高程符号插入点”这四步曲,操作起来就很费时费力并且容易出错。针对这一情况,通过对横断面数据及横断面图进行了分析,结果发现数据中桩高程是唯一的,也就是说每一个横断面数据中都有一个中桩高程(注:如要用下面这个程序,先检查数据后再应用,每一条横断面数据中只能保留一个中桩高程,否则程序就会将中桩高程标注错位。),其数据格式为“ 0.000 90.398”;再分析绘制好的横断面图,发现横断面的“断面排列间距”是一个固定值。根据这两个特点,笔者利用AutoLISP语言编写了一个小程序,就可以解决这一问题。   3 程序代码   ;;;批量标注横断面中桩高程   (defun c:gcsb(/ f p jj str b h)   ;(regmap)   (setq f (getfiled \n选择断面数据文件 d:/ txt 2))   (setq ltscale (htblc))   (setq jj (getreal \n输入断面排列间距: ))   (if (= jj nil) (setq jj 100))   (setvar osmode 32)   (setq p1 (getpoint \n指定点:))   (setvar osmode 0)   ;;;   (setq p4 (polar p1 (/ pi 0.66667) 0))   (setq pt (polar p4 (* (/ pi 2.0) 3) (- 0 (* jj 1000))))   ;;;上标   (setq p2 (polar p1 (/ pi 0.66667) (- 0 (* 2610.26 ltscale))))   ;;;下标   ;(setq p2 (polar p1 (/ pi 0.66667) (* 5002.22 ltscale)))   ;;;   (setq p3 (polar p2 0 (* 2004.89 ltscale)))   (setq p (polar p3 (* (/ pi 2.0) 3) (- 0 (* jj 1000))))   (setq f (open f r))   (setq str (read-line f))   (while (and (/= str nil) (/= str ))   (setq b (substr str 1 15))   (if (= b 0.000 )   ;(setq b (substr str 1 5))   ;(if (= b 0.0 )   (progn   (setq h (substr str 16 7))   ;(setq h (substr str 6 7))   (setq pt (polar pt (* (/ pi 2.0) 3) (* jj 1000)))   ;(setq p (polar p (* (/ pi 2.0) 3) (* jj 1000)))   (command layer m zzbz c white zzbz )   ;;;上标   (command insert ele_sym05.dwg pt (* 2500 ltscale) (* 2500 ltscale) h)   ;;;下标   ;(command insert ele_sym15.dwg pt (* 2500 ltscale) (* 2500

文档评论(0)

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

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

1亿VIP精品文档

相关文档