• 57.50 KB
  • 2022-04-22 11:27:52 发布

给排水设计给排水cad软件开发实例 .

  • 13页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'  给排水设计给排水CAD软件开发实例.;【摘要】本文介绍了用户幻灯菜单及功能和开发方法,并给出了标高标注和图例绘制程序的开发方法以及程序注解。1用户幻灯菜单简介用户幻灯菜单(下文简称幻灯菜单)是在autocad平台上开发的一种高效实用的用户图形界面,由幻灯和相应的autolisp实用程序组成。其功能及用法类似于autocad的图标菜单。调用时幻灯菜单屏幕上出现一幅幻灯,幻灯显示不同图形界面,由幻灯和相应的autocad实用程序组成。其功能及用法的功能区域,每个区域对应相应的功能,用鼠标点取即可调用该功能。I8-3-ttPLJ8&"xQ[州学习工学水利.gzU521.]I8-3-ttPLJ8&"xQ幻灯菜单可以用于开发本部门使用的工具软件或是商业化的cad软件,可以大大提高开发效率以及设计绘图速度。下面以我院开发的标高标注程序为例介绍幻灯菜单的功能:在command:状态下从下拉菜单中点取“标高标注1”后屏幕上出现如图1所示幻灯,用鼠标在某一标高种类格中点击后幻灯消失,恢复前一图面,在提示行中提示“请输入起点”,给点后又提示:“标高值” ,输入数值后自动按选择的种类画好标高符号并写好标高值;然后重复提示“请输入起点”标注下一个,回车则回到图1幻灯重复使用,点exit退出。2幻灯菜单的特点幻灯菜单可以实现autocad的图标菜单的各项功能,并且有如下优点:a.制作、修改效率高。制作图标菜单时,要实现的功能数与幻灯数及菜单项的数量相同。而制作一个幻灯菜单只需要作一个幻灯,幻灯数量大幅减少,修改也容易得多。b.使用效率高。为了提高软件效率,尽量减少击键次数是今后软件的发展方向。幻灯菜单可以将多种形式的选择以图形形式直观地显示出来,以供选择。以标高标注为例,以前的方法是先问标高符号形式,再问方向,而使用幻灯菜单只需点取一次即可。c.界面美观,制作灵活多样,使用方便。幻灯菜单在一幅幻灯中划分的功能区数量不限,并且可以根据需要制作成方格、横格、竖格、扇型格、圆环格等多种形式,甚至可以达到可编程序对话框的很多功能。 d.适用性强,移植方便。幻灯菜单适用于r9.0版以上的各种中、西文autocad版本。使用幻灯菜单时,由于它包含在用ads或autolisp等语言编制的程序中,所以只要能运行程序即可调出幻灯菜单,版本升级时不必改变新的菜单文件。而图标菜单的菜单项必须逐条加入到新的菜单文件中。e.可以作成定型模块重复使用,从而大大提高编程效率。3幻灯菜单的制作幻灯菜单的原理是:将autocad绘图区分为若干规则的图形区域,每一区域可以对应一组功能,在程序调用幻灯菜单时,要求用户根据需要在某一图形区域中选取一点,然后程序自动计算出该点所在的区域位置,从而调用所对应的程序功能。点的定位是幻灯菜单制作编程的关键所在,以矩形格幻灯菜单为例,其whil1.=M=b6? TYS[州学习工学水利.gzU521.].=M=b6? TYS(command″vslide″(strcattlpath″atl″tlsldn))(initget1)(setqpp(getpoint″\n请连续点取图例,并点取〈确定〉″))(setqh(getvar″viewsize″))(setqpcen(getvar″viewctr″))图例绘制主程序赋初始值图例图块路径提示当whil1为真执行下面程序调出幻灯(幻灯名由三个变量连接而成,图2为第一页)不接受空值以下内容同标高标注程序(setqpmax(getvar″vsmax″))(setqpmin(getvar″vsmin″))(setqw(*(/(-(carpmax)(carpmin)) (-cadrpmax)(cadrpmin)))h))(setqpp0(list(-(carpcen)(*w0.44))(-(cadrpcen)(*h0.26))))(setqpp1(list(+(carpcen)(*w0.44))lZ`Wk€)k`5_€yTkEy[此文;((=xh13)(setnil))-7p|~xXhM y[州学习工学水利.gzU521.]-7p|~xXhM y((=xh14)(setok))))(defunlastsld())(defunnextsld())(defunsetnil())(defunsetok())如点在上半部分运行dq1,否则运行dq2while;defun图例主程序结束定义dq1子函数点落在左面aorb为1点在右面aorb为2;if计算纵向序号计算图例图块名(由4部分连接组成)dq1结束定义dq2子函数计算横向序号运行lastsld子函数,向前翻页运行nextsld子函数,向后翻页运行setnil子函数,赋空退出运行setok子函数,插入图例定义lastsld子函数,略定义nextsld子函数,略定义setnil子函数,略vn y((=xh14)(setok))))(defunlastsld())(defunnextsld())(defunsetnil())(defunsetok())如点在上半部分运行dq1,否则运行dq2while;defun图例主程序结束定义dq1子函数点落在左面aorb为1点在右面aorb为2;if计算纵向序号计算图例图块名(由4部分连接组成)dq1结束定义dq2子函数计算横向序号运行lastsld子函数,向前翻页运行nextsld子函数,向后翻页运行setnil子函数,赋空退出运行setok子函数,插入图例定义lastsld子函数,略定义nextsld子函数,略定义setnil子函数,略vn ~l *},x8jT[此文'