求助贴!
本帖最后由 Gu_xl 于 2015-7-10 14:18 编辑开始是用VBA编的效果也出来了,但是要让别人用比较麻烦,怎么也搞不定。
现在改用LISP编,对话框和主程序都写好了,但是就是出不来,搞不好。我把程序贴上来请大家看看。
程序见附件 导致弹不出对话框的问题有两处:
(if (<id 0)(exit))====》(if (< id 0)(exit))
(if(not(new_dialog "f" id ))(exit))====》(if(not(new_dialog "sanxing" id ))(exit))
但是还有问题,没细研究 本帖最后由 gaics 于 2015-7-11 15:13 编辑
1、(get_tile "X")、(set_tile "X" (rtos x 2 2))里面的"X"要与dcl里面的大小写一致,Y、Z也一样。
2、前面的“done_dialoge”拼写错误。
3、(command "layer" "m" "solid")结尾缺少""。
4、点坐标的计算方法是用来搞笑的吗?这里不是excel啊,哈哈。再说角度转换为弧度也不是除以360吧?不清楚你的ANG是如何定义的,也许除以360的结果才是你想要的。
(setq pt0 (list x y z))
(setq pt1 (list (- x (* (sin (* (/ ANG 180) pi)) R1)) (- y (* (cos (* (/ ANG 180) pi)) R1)) z))
(setq pt2 (list (- x (* (sin (* (/ ANG 180) pi)) R2)) (- y (* (cos (* (/ ANG 180) pi)) R2)) z))
(setq pt3 (list (+ x (* (sin (* (/ ANG 180) pi)) R1)) (- y (* (cos (* (/ ANG 180) pi)) R1)) z))
(setq pt4 (list (+ x (* (sin (* (/ ANG 180) pi)) R2)) (- y (* (cos (* (/ ANG 180) pi)) R2)) z))
5、pt5从哪里来的?
本帖最后由 gaics 于 2015-7-11 16:03 编辑
按照你原来的程序,如果角度大于180°则可能出现两条圆弧不同心的现象。建议把画圆弧的命令改为“圆心、端点、角度”或者“圆心、端点、端点”的模式。比如:
第一条弧(command "arc" "c" pt0 pt1 "a" ANG)
第二条弧(command "arc" "c" pt0 pt2 pt4)
页:
[1]