[求助]求兄弟们帮忙!
本帖最后由 作者 于 2010-6-25 9:11:33 编辑 <br /><br /> <p>各位论坛兄弟姐妹们,你们好!由于工作原因3,4年没有接触CAD的二次编程了,现在遇到一个工作问题,需要大家帮忙写出lisp源码,请不吝赐教!</p><p>具体要求如下:</p>
<p><br/>1.首先选择起始点<br/>2.第二选择终止点(此时从起始点到鼠标的之间有一条虚拟线条,当按键落下后该线条消失)<br/>3.命令行提示用户输入圆的半径:R<br/>4.从起始点开始以半径R的0.5倍为间隔(圆心间距为R的0.5倍),从起始点向终止点逐个开始画圆。圆的半径为:R,圆心必须落在“起点--终点”之间的连线上。<br/>5.最后一个圆的圆心位置必须落在“终点”(即最后一个圆与倒数第二个圆的间距不再要求必须是R的0.5倍)。<br/>6.要求对圆进行填充(填充图形为纯色实心图形)。<br/>7.手工修改某些填充的颜色。<br/>8.具备统计各种颜色的数量,并给出各种颜色所占的比例的功能。(此项有难度可以不要。)<br/><br/><br/> <br/><br/></p> 好象最后一个功能不好用LSP函数实现了,貌似只能动用反应器或全部反应器生成图形了。<br/><p style="font-size: small;color: #C0C0C0;text-align: right;">[ 此帖子通过 “明经CAD社区 - Wap” 发表 ]</p> edata发表于2010-6-25 1:41:00static/image/common/back.gif好象最后一个功能不好用LSP函数实现了,貌似只能动用反应器或全部反应器生成图形了。
< 此帖子通过 “明经CAD社区 - Wap” 发表 >
<p>谢谢,有难度可以这一条可以省去。</p> 本帖最后由 crazylsp 于 2011-4-21 11:33 编辑
只能邦你到这个程度了,余下的你自己完善了
;画填充圆 明经 ZZXXQQ 2010.6.25
(defun c:tt ()
(setvar "CMDECHO" 0)
(if (and (setq pt1 (getpoint "\n开始点 :"))
(setq pt2 (getpoint pt1 "\n终点 :"))
(setq r (getdist "\n圆的半径 :"))) (progn
(setq dst (distance pt1 pt2)
ang (angle pt1 pt2)
r2 (/ r 2)
ptt pt1
lnm (getvar "CLAYER")
n (fix (/ dst r2)))
(command ".UNDO" "BE")
(command ".CIRCLE" pt1 r "HATCH" "SOLID" "L" "")
(repeat (1- n)
(setq ptt (polar ptt ang r2))
(command ".CIRCLE" ptt r "HATCH" "SOLID" "L" "")
)
(command ".CIRCLE" pt2 r "HATCH" "SOLID" "L" "")
(command ".UNDO" "E")
))
(setvar "CMDECHO" 1)
(princ)
)
<p>学习!谢谢版主!</p> 学习一下~但是发帖数不够,顶一发 有问必有人解,明经因你们而精彩!
页:
[1]