文档详情

利用AUTOLISP编程“空间前方交会”程序设计.doc

发布:2017-01-01约4.03千字共6页下载文档
文本预览下载声明
作业(四)利用AUTOLISP编程“空间前方交会”程序设计 一、作业目的 巩固空间前方交会的知识,学会利用AUTOLISP编程“空间前方交会”程序设计,掌握程序设计基本原理和方法。 二、作业内容与要求 内容:利用AUTOLISP编程“空间前方交会”程序设计,写出相应代码,并运行程序,确保程序的完整。 要求:代码完整有效,并有详细截图 三、数据准备 空间前方交会算例输入数据: 2.00;基准尺长度 3.22;基线近似长度 0.10;两侧站高差 60.505204 74.094935 40.065279 80.062663 29.034438 80.093274 83.133099 73.321423 3;目标点个数 88.024982 60.595535 37.551721 72.283391 53.521126 67.290622 64.003939 66.513494 36.515340 74.011574 101.281847 66.340716 四、作业方法与步骤 如图1所示,空间前方交会原理。 作业步骤: 1、打开CAD2006,运行Visual Lisp程序,并输入代码并保存。 2、在CAD2006中加载已经写好的空间前方交会Lisp程序,成功加载后在下面的命令栏中输入“spsec”然后按回车键。 3、调入已经写好的“空间前方交会算例输入数据”文件。 4、将输出数据的文件名命名为“输出数据”。 图1 空间前方交会原理 五、结果实现截图 六、程序代码 (defun angtorad(/ A B C D E) (setq dms (atof ang)) (setq A (fix dms)) (setq B (* (- dms A) 100)) (setq C (fix B)) (setq D (* (- B C) 100)) (setq E (+ A (/ C 60.0) (/ D 3600))) (setq hu (* (/ E 180) PI)) );endsub (Angle to Radian) (defun intersec(/ C D z1 z2 P p1 p2 p3) (setq C (+ A B) D (* b0 (/ (sin B) (sin C)))) (setq x (* D (cos A)) y (* D (sin A))) (setq z1 (* D (/ (cos Za) (sin Za)))) (setq z2 (+ (* D (/ (sin A) (sin B) (/ (sin Zb) (cos Zb)))) h)) (setq z (/ (+ z1 z2) 2) dz (- z1 z2)) (if (= out y) (progn (setq P (list x y z)) (command point P ) (command line P PA ) (command line P PB ) (setq p1 (list (+ x 0.03) (- y 0.05) z)) (setq p2 (list (+ x 0.03) (- y 0.10) z)) (setq p3 (list (+ x 0.03) (- y 0.15) z)) (command text p1 0.04 0 (rtos x 2 4) ) (command text p2 0.04 0 (rtos y 2 4) ) (command text p3 0.04 0 (rtos z 2 4) ) (princ \n f2) (princ x= f2) (Princ (rtos x 2 5) f2) (princ y= f2) (princ (rtos y 2 5) f2) (princ z= f2) (princ (rtos z 2 5) f2) (princ dz= f2) (princ dz f2) )); endprogn endif ); endsub (Intersection) (defun readline(/ line) (setq line (read-line f1)) (setq ang (substr line 1 12)) (angtorad) (setq A hu) (setq ang (substr line 13 12)) (angtorad) (setq Za hu) (setq ang (sub
显示全部
相似文档