程序功能是这样的:选择平面图形,求出面积,然后键盘输入钢板厚度,程序自动算出构件的净重。
我编的程序老是出毛病,大虾们帮忙改一下,多谢了:)
(defun c:mj (/ plate wmj zuizh zhiliang tiji houdu ss1 nr en tot_area) (setq plate (ssget))
(command "area" "o" plate ) (setq wmj (getvar "area")) (if (setq ss1 (ssget '((-4 . "<OR") (0 . "POLYLINE") (0 . "LWPOLYLINE") (0 . "CIRCLE") (0 . "ELLIPSE") (0 . "SPLINE") (0 . "REGION") (-4 . "OR>") ) ) ) (progn (setq nr 0) (setq tot_area 0.0) (setq en (ssname ss1 nr)) (while en (command "._area" "_O" en) (setq tot_area (+ tot_area (getvar "area"))) (setq nr (1+ nr)) (setq en (ssname ss1 nr)) ) ) ) (setq zuizh (- wmj tot_area)) (setq houdu (getint"输入板的厚度")) (setq tiji (* zuizh houdu)) (setq tiji (/ tiji 1000000000)) (rtos tiji 2 2) (setq zhiliang (* 7850 tiji)) (princ "单品净重为:") (princ zhiliang)
) |