需要插入圆Lisp
有人能编一个Lisp程序的句子吗让我画一条线。
读取该线的距离。
询问在此距离上均匀分布的圈数
求圆的直径
均匀放置圆并删除线。
谢谢 1) 启动if语句以测试以下各项的有效输入:
2) 使用getpoint函数提示输入第一个点(pt1)
3) 使用带有basepoint参数的getpoint函数作为第一个拾取点来检索第二个点(pt2)
4) 使用getint函数和initget函数来提示用户输入圈数
5) 使用getdist函数提示输入圆的直径。
6) 使用距离函数确定“pt1”和“pt2”之间的距离,使用角度函数确定“pt1”和“pt2”之间的角度。
7) 将步骤(6)中检索到的距离除以步骤(4)中的圆数减1,得到圆之间的间距。
8] 在零处启动计数器
9) 开始重复循环,重复步骤(4)中的圈数。
10) 对于循环的每次迭代,使用极函数确定圆心,其基点为步骤(1)中的“pt1”,步骤(6)中的角度和步骤(7)中的间距乘以步骤(8)中的计数器
11) 使用命令函数或entmake(使用我的entmake线程中的引用)创建一个圆,以创建半径等于步骤(5)中的直径除以2的圆。
11) 每次迭代时递增计数器。
12) 使用princ函数干净地退出。
你完了!
Mike,不要只期望人们为你编写代码,而不需要你付出一点努力。我们确实喜欢编写代码,但这个论坛旨在成为一个帮助和建议论坛。我已经注意到,你的大多数线程仅仅是代码请求-我愿意帮助你编写程序,但我认为最好是你开始使用一些研究、尝试和错误,以及我上面的建议。尽管如此,不幸的是,毫无疑问其他人会发布解决方案,我的建议将被浪费。
李 我感谢你的帮助,我会尝试一下,让你知道我的问题所在 我几个月前就这么做了。。不太好,但这是一个开始
(defun c:Bubble (/ *error* p1 p2 radius)
(setvar "cmdecho" 0)
(command "undo" "begin")
(defun *error* (msg)
(or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
(princ (strcat "\n** Error: " msg " **"))
)
(command "undo" "end")
(setvar "cmdecho" 1)
(princ)
)
(if
(setq p1 (getpoint "\nSpecify first point: ")
p2 (getpoint p1 "\nSpecify second point: "))
(repeat
(1+
(fix
(/
(distance p1 p2)
(* 2 (setq radius )
)
)
)
(entmakex
(list
(cons 0 "CIRCLE")
(cons 10 p1);insertion point
(cons 8 "0");layer
(cons 40 radius)
)
)
(setq p1 (polar p1 (angle p1 p2)(* 2 radius)))
)
)
(command "undo" "end")
(setvar "cmdecho" 1)
(princ)
) 你对迈克怎么样?
再清楚不过了。。。
那也是 (定义c:使用(/区域A chn hno ptx pty shno sno)
(setq OLD\u CMDECHO(getvar“CMDECHO”))
(setvar“CMDECHO”0)
;(setq高度(GETREAL“\n输入文本高度:”)
(setq文件名(getstring“\n用于写入扩展名为:”)的文本的数据输入文件名)
;(SETQ文件名(strcat FILENAME1.TXT”))
(setq文件单元(打开文件名“r”))
(while(setq LINE_输入(读取行文件单元))
(setq l1 LINE_输入)
(setq区域A(atof(substr LINE_输入1 15)))
(setq CHN(atof(substr LINE_INPUT 16 30)))
(setq HNO(atof(substr LINE_输入31 45)))
(setq PTX(atof(substr LINE_INPUT 46 60)))
(setq PTY(atof(substr LINE_输入61 75)))
(setq shno(substr LINE_输入76 90))
(setq sno(atof(substr LINE_输入91 105)))
;(setq inspt(列表(atof PTX)(atof PTY)))
(setq inspt(列表ptx pty))
;(prinC ptx)(prinC pty)(getreal“inspt…………)
; (命令“点”inspt)
(命令“insert”“CHNO”inspt“1”“1”“0”shno(rtos sno 2 0)(rtos HNO 2 0)(rtos CHN 2 0)(rtos AREA A 2 3))
;(命令“text”“ML”(LIST INSX INSY)高度0 TEXTLINE)
)
(关闭文件单元)
)
在这个程序中,问题是当我在autocad中调用这个程序时,在表中没有测量,最后请解决这个问题 嗯,看起来我的指示是在浪费时间-你试过了吗,迈克?
这是开始:
(if
(and
(setq p1 (getpoint "\nSpecify First Point: "))
(setq p2 (getpoint "\nSpecify Second Point: " p1))
(progn
(initget 6)
(setq no (getint "\nSpecify Number of Circles: "))
)
(setq di (getdist "\nSpecify Diameter of Circles: "))
)
李·麦克,
你会推荐我们哪个论坛使用代码挑战绘图员来发布我们对例程的请求,以帮助减轻我们的日常苦工?
挖掘机
如果你需要程序来减轻你的日常工作负担,但又不愿意学习编写代码,那就找个程序员吧。
页:
[1]
2