![]() |
【转帖】我自已写的一个画扶梯gad的小程式
我自已写的一个画扶梯gad的小程式
www.dimcax.com 我自已写的一个画扶梯gad的小程式 修改完成,仅仅是画了一个大致图,如果有做扶梯的同仁一并改进 ;'****************************************************************************** ; 编写完成! ;****************************************************************************** (defun c:gad() (setq os (getvar "osmode")) (setvar "osmode" os) (setq p10 (getpoint "\n请输入基点<退出>:")) ;gad开始画点 (setq s1 (getreal "\n下段长度:")) ;s1下段长度 (setq s2 (getreal "\n上段长度:")) ;s2上段长度 (setq at (getreal "\n倾斜角度:")) ;at上段长度 (setq sh (getreal "\n提升高度:")) ;sh提升高度 (setq p20 (list (+ (car p10) s1) (cadr p10))) ;算出p20点的坐标 (setq atp (/ (* at 3.1416) 180)) ;将角度转为弧度 (setq p20x (+ (car p20) (/ sh (/ (sin atp) (cos atp))))) ;计算出p20点的x值 (setq p20y (+ (cadr p10) sh)) ;计算出p20点的y值 (setq p30 (list p20x p20y)) ;计算出p30点的坐标 (setq p40 (list (+ (car p30) s2) (cadr p30))) ;算出位置p40点的坐标 (command "layer" "n" "1z" "c" "3" "1z" "l" "center" "1z" "") (command "layer" "s" "1z" "") (command "line" p10 p20 "") (command "line" p20 p30 "") (command "line" p30 p40 "") (setq p11 (list (car p10) (- (cadr p10) 140))) ;获得p11点的坐标 (setq p12 (list (+ (car p10) 240) (- (cadr p10) 140))) ;获得p12点的坐标 (setq p13 (list (+ (car p10) 240) (- (cadr p10) 1050))) ;获得p13点的坐标 (setq atp2 (/ (* (/ (- 180 at) 2) 3.1416) 180)) ;求下边线余角 (setq ytt (/ (* 940 (cos atp2)) (sin atp2))) ;求参数ytt (setq ytt2 (- ytt (/ (* 110 (cos atp)) (sin atp)))) ;求ytt2 (setq p14x (+ (car p10) (+ s1 ytt2))) ;求p14点的x坐标 (setq p14 (list p14x (- (cadr p10) 1050))) ;得到p14点坐标 (command "line" p10 p11 "") (command "line" p11 p12 "") (command "line" p12 p13 "") (command "line" p13 p14 "") (setq p31 (polar p14 atp (/ sh (sin atp)))) ;获得p31点的位置 (setq p41 (polar p40 -1.5708 140)) ;获得p41点位置 (setq p42 (polar p41 pi 240)) ;获得p42的坐标 (setq p43 (polar p42 -1.5708 910)) ;获得p43的坐标 (command "line" p14 p31 "") (command "line" p31 p43 "") (command "line" p43 p42 "") (command "line" p42 p41 "") (command "line" p41 p40 "") (setvar "osmode" os) (princ) ) 大家帮我见证,我一步一步的改下去: 等有空的时候,我再改改,使这个更完美! 谢谢楼主,我也正想作这样一个程序,因时间有限,至今未能如愿!!先下了看看。 回,chhwj 为仅仅是一个小段,公司没有时间让我接头把它做好,这也不是我工作份内的事,所以只是画了一个简图,还望见谅 有才 |
| 所有的时间均为北京时间。 现在的时间是 11:47 AM. |