本帖最后由 lincctw_ccl 于 2011-11-24 10:08 编辑
请教这程序该如何改进才能更好的执行? 用意:选择线,在线的中点 绘制矩型,因矩形可能放在线的某一侧 程度不好只能用 旋转来解决 请问:关于旋转最后绘制出的矩型这段该如何改进,利用点选线的某一侧来决定 矩形所应放的正确位置? 谢谢!!
另请教 代码该如何贴才能贴成一行一行的!不是像我这种不分段落的?
 - (defun c:tt()(setvar "CMDECHO" 0)(setvar "blipmode" 0);;标记点开关(setq la (getvar "clayer"));取得现有图层(setq oldcolor (getvar "cecolor"));;取得现有颜色(command "cecolor" "bylayer");;设定颜色为bylayer(setq old_osmode (getvar "osmode"));;先将原对象锁点模式值储存(setvar "osmode" 0);; 强迫取消物件锁点;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;(setq en (entsel "\n 选择线:"))(command "lengthen" en "");;show出点选线段的长度(setq pts(cadr en)) ;取出坐标(setq mpt (osnap pts "mid")) ;直接取得中点;;以下 ww、hh 值须由使用者输入(setq hh (getreal "\n 宽 度 :"))(setq ww (getreal "\n 长 度 :"));;以下pa pb pc pd值须由程序依据 pts ww hh 求出(setq pa (polar mpt (* pi 1.5) (/ hh 2 )));;求pa坐标(setq pb (polar pa 0 ww));;求pb坐标(setq pc (polar pb (/ pi 2) hh));;求pc坐标(setq pd (polar pc pi ww));;求pd坐标;以下依据 pa、pb、pc、pd 点画矩形(command "pline" pa pb pc pd"c")(setq EL (ENTLAST));;抓取最后建立之像素(setvar "osmode" 512) ;;设物件锁点最近点(command "rotate" EL "" mpt"r" mpt pa Pause);;旋转方向(setvar "osmode" old_osmode) ;;还原对象锁点设定 (prin1) )
|