自动绘制出中心线(一)

来源:室内设计师    发布时间:2013-03-31    室内设计师辅导视频    评论

  AutoCAD是目前国内应用最广范的CAD系统之一,AutoCAD功能强大,是一个通用的CAD平台,但是如果不根据本专业的需要进行二次开发,使用起来是很不方便的。画对称中心线是机械设计中经常遇到的一个问题。 
  用AutoLISP依据国家标准开发了两个程序,可以很方便地解决直线对称中心线的问题。 
  第一个程序适用于两条边是连续直线的情况。使用方法是:用LOAD命令装入GLS.LSP,运行C:GSL,依据屏幕提示,分别选择两边,自动绘制出中心线。 
  GSL.LSP: 
  (defunmid(pt1pt2)计算两点之中点的功能函数 
  (setqpt(mapcar’+pt1pt2)) 
  (setqpt(mapcar’/pt’(222)))) 
  (defunc:gsl/mcl1clcl2eptpt1pt2pt3pt4a)(SETQM1) 
  (WHILEM 
  (SETQCL1(ENTSEL"/n选择第一条直线")) 
  (cond 
  ((notcl1)(prompt"/n没有发现实体")) 
  ((/="LINE"(cdr(assoc0(setqe(entget(carcl1)))))) 
  (prompt"/n所选不是直线")) 
  (t(prompt"找到了第一条直线”) 
  (setqmnil);退出循环))) 
  (setqcl(ssget(nth0(cdrcl1))));取得第一条直线的实体数据 
  (SETQM1) 
  (WHILEM 
  (SETQCL2(ENTSEL"/n选择第二条直线")) 
  (ifcl2 
  (if(ssmemb(carcl2)cl) 
  (progn 
  (princ"/n选择重复,重新选择") 
  (setqcl2nil)))) 
  (cond 
  ((notcl2)(prompt"没有发现实体或重复")) 
  ((/="LINE"(cdr(assoc0(setqe(entget(carcl2)))))) 
  (prompt"/n所选不是直线")) 
  (t(prompt"/n两条直线已经选择完毕") 
  (setqmnil);;;退出循环))) 
  ;;;取得第一直线两端点的坐标 
  (setqpt1(cdr(assoc10e))pt2(cdr(assoc11e))) 
  (setqe(entget(carcl1)));;取得第二条直线的实体数据 
  ;;;取得第二直线两端点的坐标 
  (setqpt3(cdr(assoc10e))pt4(cdr(assoc11e))) 
  ;;调整端点 
  (if(interspt1pt3pt2pt4t) 
  (setqptpt1 
  pt1pt2 
  pt2pt)) 
  ;;;计算两端中点坐标 
  (setqpt1(midpt1pt3)) 
  (setqpt2(midpt2pt4)) 
  (setqa(anglept1pt2));计算中心线的倾角 
  (setqpt2(polarpt2a2.5));;计算中心线的第一个端点 
  (setqpt1(polarpt1(+pia)2.5)) 
  (command"layer""SET"5"");;设置中心线层 
  (command"line"pt1pt2"");;画出中心线) 
  (princ"/nC:GSLhasloaded") 
  (Princ"/nforsymmetryline") 
  (princ) 

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答