AutoLISP入门7 - 图元资料的取得与活用技巧(二).pdf

AutoLISP入门7 - 图元资料的取得与活用技巧(二).pdf

ID:48039401

大小:232.42 KB

页数:6页

时间:2020-02-07

AutoLISP入门7 - 图元资料的取得与活用技巧(二).pdf_第1页
AutoLISP入门7 - 图元资料的取得与活用技巧(二).pdf_第2页
AutoLISP入门7 - 图元资料的取得与活用技巧(二).pdf_第3页
AutoLISP入门7 - 图元资料的取得与活用技巧(二).pdf_第4页
AutoLISP入门7 - 图元资料的取得与活用技巧(二).pdf_第5页
资源描述:

《AutoLISP入门7 - 图元资料的取得与活用技巧(二).pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、单元七:图元资料的取得与活用技巧(二)五、范例练习:范例一:请撰写一个CHGRAD.LSP,用来修改圆半径,此程式的执行过程要求如下:指令:CHGRAD选取已知圆:碰选画面上已存在的圆自动显示该旧圆半径值于指令区新半径:要求输入一半径值new_rr程式内容解答:(defunc:chgrad()(setvar"cmdecho"0;指令执行过程不回应;;;;以下为INPUT图元选取(setqen(entsel"选取已知圆:"));要求碰选一个圆;;;;以下为图元资料&半径资料取得(setqen_data(entget

2、(caren)));取得元体资料串列(setqold_rad_list(assoc40en_data));取得半径子串列(setqold_rr(cdrrad_list));取得旧有半径(princ“旧半径=”)(princold_rr);显示该旧圆半径值于指令区;;;;以下为新半径输入&图元资料新旧半径更替(setqcenpt(cdr(assoc10en_data)));一口气取得圆之圆心(setqnew_rr(getdistcenpt"NewRadius:"));要求输入一半径值(setqnew_rad_l

3、ist(cons40new_rr));产生新半径子串列(setqen_data(substnew_rad_listold_rad_listen_data));新旧交替(entmoden_data);依新图元资料自动更新圆半径(prin1))(prompt"***************<>*****************")(prin1)程式执行:(请先在画面上任意的画一些圆)指令:(load"chgrad")回应:***************<>***********

4、******指令:CHGRAD选取已知圆:(碰选画面上已有的圆)新半径:20(输入一半径值)范例二:请撰写一个MCIR.LSP,当碰选画面上的LINE时,会在该线的中点(Midpoint)产生一个圆,此程式的执行过程要求如下:指令:MCIRSelectaLINE:碰选画面上已有的线CircleRadius:要求输入一半径值MR(可给整数、实数或拉一段距离)自动的在该线的中点画出一个半径值为MR的圆该如何设计MCIR.LSP呢???解题关键:先取得线的二端点座标pt1(px1py1)&pt2(px2py2),那二点

5、的中点座标mpt(mxmy)就用数学几何公式求得mx=(px1+px2)/2my=(py1+py2)/2程式内容解答:(defunc:mcir()(setvar"cmdecho"0);指令执行过程不回应(setqen(entsel"SelectaLINE:"));要求碰选一条线(setqen_data(entget(caren)));取得元体资料串列;********************求得pt1&px1、py1*********************(setqpts(assoc10en_data));取得

6、群码10的子串列(setqpt1(cdrpts));取得起点pt1座标(setqpx1(carpt1));取得pt1座标的x值(setqpy1(cadrpt1));取得pt1座标的y值;********************求得pt2&px2、py2***********************(setqpte(assoc11en_data));取得群码11的子串列(setqpt2(cdrpte));取得终点pt2座标(setqpx2(carpt2));取得pt2座标的x值(setqpy2(cadrpt2));

7、取得pt2座标的y值;*****************求得mx&my并结合成mpt****************(setqmx(/(+px1px2)2));求得mx值(setqmy(/(+py1py2)2));求得my值(setqmpt(listmxmy));结合mx&my成mpt点;********************Input&Finish************************(setqmr(getdistmpt"CircleRadius:"));要求输入半径值(command"ci

8、rcle"mptmr);完成中点画圆(prin1))(prompt"***************<>*****************")(prin1)程式执行:(请先在画面上任意的画一些线)指令:(load"mcir")回应:***************<>*****************指令:MCIRSelectaLINE:(碰选

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。