- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AutoCAD LISP在市政排水工程中应用摘要:AutoCAD作为当前使用最为广泛的工程绘图软件,可以选择其作为测量数据处理的应用平台。但是使用其原有的内部命令不能够一一满足日常测量工作需要,这就要求工作者在其基础上进行二次开发。本文主要是以AutoCAD为二次平台进行开发和设计的,该平台很好地利用了AutoCAD灵活的编辑和强大的制图功能,根据实际需要在此平台的基础上进行二次开发,编写自己所需要的程序,形成一个个独立的功能模块,方便调用与修改,为数字化成图提供了一种新的开发手段和开发思路。
关键词:AutoCAD LIS市政排水测量二次开发程序
传统处理数据方式如下:排水井井底标注方面,要先按要求做出分数标注形式;然后复制到每个要标注的排水井附近,绘图者利用井面高程减去实地量测的井底深度求得井底高程,并通过命令“DDEDIT”来修改井面高程和井底高程,这样才能完成排水井井底标注;沉沙井管底标注基本方法基本与排水井井底标注相同,绘图者用井面高程减去实地量测的管底深度求得管底高程,结合实地量测的管径通过命令“DDEDIT”修改管径和管底高程;管径和流向标注时除了要修改管径数据外,还要旋转管径数据使其与管线方向保持一致,流向线段同样保持与管线方向成一定的夹角。
由于一般市政工程的工期都相当紧迫,在有限的时间里人工处理大量的数据难免会出现一些计算错误,而且计算过程本身也会影响绘图的速度。在标注管径连线和流水方向时很难做到整齐化一,流向线段的长度和其与相应管径的夹角也很难始终保持相同。因此本文采用新的设计思路,通过程序化绘图来解决实际问题。程序设计思路如下:
1、排水井井底标注
让编图人员通过键盘输入井面高程和实地测量的井底深度,利用AutoCAD本身带有的计算功能自动计算出井底高程,并结合AutoCAD内部文字标注命令“TEXT”,在指定位置按要求自动标注出井底高程。这样就会避免编图人员的计算错误,并保持排水井标注格式的严格统一。
2、排水管径边线及流向标注
在标注管径连线时,切换AutoCAD的系统变量,使AutoCAD的捕捉状态置于只有捕捉“圆心”状态下,因为每个排水井的符号都有圆心,这样大大提高了连线速度,并且可以保证每条连线起点都位于排水井的定位点(即圆心)上。通过计算两个排水井之间的长度和连线的中心位置,规定流向与排水井管径连线的角度,则可以自动标注每一段排水管的流向,每个流向线段的长度及其与之相应的排水管线的夹角完全相同。
3、沉沙井管底标注
让编图人员通过键盘输入沉沙井井面高程、沉沙井管径大小及实地测量的管底深度,利用AutoCAD本身带有的计算功能计算出管底高程,并结合AutoCAD内部文字标注命令“TEXT”,在指定位置按要求自动标注出管径和管底高程。在选择要求标注的管位时,切换AutoCAD的系统变量,使AutoCAD的捕捉状态置于只有捕捉“最近点”状态下,这样能准确在连线到相应的管径连线上,然后在选择标注所放的位置时把捕捉状态关掉。
4、程序编制
(1).排水井井底标注程序主体:
;;;;;;;;;;;;;;设定变量
(setq pt1 (getpoint”\n标注位置:”))
(setq jmg (getreal”\n井面高程:”))
(setq js (getreal”\n井深:”))
;;;;;;;;;计算井底高程
(setq jds (- jmg js))
;;;;;;;;;根据井面高程和井底高程字符的长度确定分数线的长度
(setq string_len (max (fix jmg) (fix jds)))
(setq len_factor (strlen (itoa string_len)))
(setq pt2 (polar pt1 0 (* (+ len_factor 2) 0.7)))
(setq pt3 (polar pt1 0 (* (+ len_factor 2) 0.7 0.5)))
(setq pt4 (polar pt3 (* pi 0.5) 0.5))
(setq pt5 (polar pt3 (* pi 1.5) 0.5))
;;;;;;;;自动标注井面高程和井底高程,并利用wide_change函数将标注字高设为0.7
(command “text” “j” “m” pt4 “0.7” “0” (rtos jmg 2 2))
(setq en (entlast))
(wide_change)
(command “pline” pt1 pt2 ““)
(command “text” “j” “m”
文档评论(0)