[原创]画剖面线的小程序
<P>主要是因为atuocad中剖面线选择麻烦,我是搞机械的.就弄了个这个.应该考虑比较全面了.</P><P>也许我写得比较罗嗦,希望大虾们给斧正一下.另外</P>
<P> (while (/= 0 (getvar"cmdactive")) ;没有它回不到原来图层<BR> (command pause) <BR> )<BR>这段话,我也不知道具体真正含义,,只是知道能使一个命令不中断.没它在这里就回不到原来的图层了.cmdactive这变量,说明写得我都看不懂.也无人可问.</P>
<P>另外,我想把输入行或是执行回车动作减少一个,比如输入间距的时候如果不输入,就可以直接插入选择点了,而不是需要回车一下.试了好多方法,不行.请高手指点.</P>
<P>还有,执行过程中按esc后,图层就返回不到原始层了,而是就在hatch层了.如果再加个判断呢?</P>
<P>;画剖面线,主要功能就是自己设定层,也考虑了其它影响因素<BR>(defun c:xh(/ oldlay a xlt xoce xos angb angd)<BR> (setq xoce (getvar "cmdecho")) ;回显特性给xoce<BR> (setvar "cmdecho" 0) ;取消回显<BR> <BR> (setq xos (getvar "osmode")) ;捕捉特性赋值给xos <BR> <BR> (setvar "osmode" 0) ;取消捕捉 <BR> (setq oldlay (getvar"clayer")) ;原始图层状态赋值给oldlay<BR> (setq angb (getvar "angbase" ));取角度起始方向<BR> (setq angd (getvar "angdir" )) ;取角度旋转方向<BR> (setvar "angbase" 0.0) ;x轴(东)为0<BR> (setvar "angdir" 0) ;逆时针为正</P>
<P><BR> (setq xlt (getvar "dimscale")) ;取得标注比例因子给xlt<BR> (if (null (tblsearch "LAYER" "hatch")) ;如果还没有hatch图层<BR> (command "._layer" "_m" "hatch" "_c" 2 "" <BR> "_lt" "continuous" "" "") ;则创建hatch图层,颜色2,线型continuous<BR> (setvar"clayer" "hatch") ;否则直接转换到hatch图层 <BR> )</P>
<P> (if (not xjd) ;如果从未确定过剖面线角度<BR> (setq xjd 45)) ;则令默认角度为45<BR> (setq a xjd) ;将角度暂存在a中<BR> (setq xjd (getreal(strcat"\n请输入剖面线角度<" (rtos xjd) "%%d>"))) ;输入角度令提示中出现角度值<BR> (if (not xjd) ;如果空输入<BR> (setq xjd a)) ;则从a中取值</P>
<P> (if (not xjj ) ;如果从未确定过剖面线间距<BR> (setq xjj 2)) ;则令默认间距为2<BR> (setq a xjj) ;将间距暂存于a中<BR> (setq xjj (getreal(strcat "\n请输入剖面线间距<"(rtos xjj) ">"))) ;输入间距令提示中出现间距值<BR> (if (not xjj ) ;如果空输入<BR> (setq xjj a)) ;从a中取值</P>
<P><BR> (princ"\n请选择剖面线插入点") ;纯粹提示,因为前面已经令回显关闭<BR> (command ".-bhatch" "p" "u" xjd (* xlt xjj) "n" ) ;画剖面线,其中间距是考虑了比例因子的<BR> <BR> (while (/= 0 (getvar"cmdactive")) ;没有它回不到原来图层<BR> (command pause) <BR> )<BR> </P>
<P> (setvar"clayer" oldlay) ;返回原图层<BR> (setvar "osmode" xos) ;回原捕捉方式<BR> (setvar "angbase" angb) ;返回角度初始<BR> (setvar "angdir" angd) ;返回角度旋转方向<BR> (setvar "cmdecho" xoce) ;回原回显状态<BR> (princ) ;打印空行<BR>) <BR></P> 话剖面线虽然软件自带,但是能自己编写也很牛逼了 谢谢啊.东西很好.学习中..呵.不过为什么没有放LISP文件下来.嘿嘿.好久都没有做这种程序了,谢谢分享 我不太会用格式,上传个文件也太麻烦.就贴上去了.这样复制一下就可以了. 多谢多谢 原来 hatch 还有这种用法。 受教了。 谢谢! 加个错误函数,出错时,就会返回之前的层 <p>谢谢提供,学习了</p> 如何关联呢? 谢谢楼主
页:
[1]
2