; ============================================= ; | 折断线绘制 | ; | 版本: V1.0 作者: wxh5330  | ; ============================================= (defun c:zdx(/ clayer orig_blip orig_cmd orig_osnap pt1 pt2 dis x1 pt3 pt4 pt5 pt6 pt7 pt8 scale) (setq orig_blip (getvar "blipmode")) (setq orig_cmd (getvar "cmdecho")) (setq orig_osnap (getvar "osmode")) (setq clayer (getvar "clayer")) (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "osmode" 191) (if (null default-s) (setq default-s "100") ) (setq scale (getreal (strcat "绘图比例<"default-s">:"))) (if (null scale) (setq scale (distof default-s)) (setq default-s (rtos scale 2 2)) ) (setq pt1 (getpoint "\n起点:")) (setq pt2 (getpoint pt1 "\n终点:")) (setq ang (angle pt1 pt2)) (setq dis (distance pt1 pt2)) (setq x1 (/ (- dis (* 2 scale)) 2)) (setq pt3 (polar pt1 ang x1)) (setq pt4 (polar pt1 ang (+ x1 (* 2 scale)))) (setq pt5 (polar pt3 (+ ang 1.32582) (* 1.50 scale))) (setq pt6 (polar pt4 (- ang 1.81577) (* 1.50 scale))) (setq pt7 (polar pt1 (- 0 (- pi ang)) (* 2.50 scale))) (setq pt8 (polar pt2 ang (* 2.50 scale))) (setvar "osmode" 0) (command "layer" "m" "THIN" "") (command "pline" pt7 "w" "0" "0" pt3 pt5 pt6 pt4 pt8 "") (setvar "blipmode" orig_blip) (setvar "cmdecho" orig_cmd) (setvar "osmode" orig_osnap) (setvar "clayer" clayer) (princ) ) ; ============================================= ; | 双折断线绘制 | ; | 版本: V1.0 作者: 王晓华  | ; ============================================= (defun c:zdx2(/ clayer orig_blip orig_cmd orig_osnap ss ppt pt1 pt2 dis x1 pt3 pt4 pt5 pt6 pt7 pt8 scale) (setq orig_blip (getvar "blipmode")) (setq orig_cmd (getvar "cmdecho")) (setq orig_osnap (getvar "osmode")) (setq clayer (getvar "clayer")) (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "osmode" 191) (if (null default-s) (setq default-s "100") ) (setq scale (getreal (strcat "绘图比例<"default-s">:"))) (if (null scale) (setq scale (distof default-s)) (setq default-s (rtos scale 2 2)) ) (setq pt1 (getpoint "\n起点:")) (setq pt2 (getpoint pt1 "\n终点:")) (setq ang (angle pt1 pt2)) (setq dis (distance pt1 pt2)) (setq x1 (/ (- dis (* 2 scale)) 2)) (setq pt3 (polar pt1 ang x1)) (setq pt4 (polar pt1 ang (+ x1 (* 2 scale)))) (setq pt5 (polar pt3 (+ ang 1.32582) (* 1.50 scale))) (setq pt6 (polar pt4 (- ang 1.81577) (* 1.50 scale))) (setq pt7 (polar pt1 (- 0 (- pi ang)) (* 2.50 scale))) (setq pt8 (polar pt2 ang (* 2.50 scale))) (setq ptt (polar pt1 (- ang (/ pi 2)) (* 1.00 scale))) (setvar "osmode" 0) (command "layer" "m" "THIN" "") (command "pline" pt7 "w" "0" "0" pt3 pt5 pt6 pt4 pt8 "") (setq ss (entlast)) (command "copy" ss "" pt1 ptt) (setvar "blipmode" orig_blip) (setvar "cmdecho" orig_cmd) (setvar "osmode" orig_osnap) (setvar "clayer" clayer) (princ) ) ;;;;;;=================================================================* ;;;功能:绘制圆柱断面符号 * ;;;日期:zml84 于 2010-03-18 * ;;;=================================================================* (defun c:zhdx () (if (and (setq pt1 (getpoint "\n点取基点1: ")) (setq pt2 (getpoint pt1 "\n点取基点2: ")) ) (progn (tt-01 pt1 pt2) (if (setq pt3 (getpoint pt2 "\n点取基点3: ")) (tt-01 pt3 (polar pt3 (angle pt2 pt1) (distance pt2 pt1)) ) ) ) ;_结束progn ) (princ) ) ;;;=================================================================* ;;;在指点两点间,绘制单个圆柱断面符号 * (defun tt-01 (pt1 pt2 / ang dist pt_tmp1 clayer) (setq clayer (getvar "clayer")) (setq ang (angle pt1 pt2) dist (distance pt1 pt2) ) (setq pt_tmp1 (polar pt1 ang (* 0.5 dist))) (command "layer" "m" "THIN" "") (command "_.pline" "non" pt1 "a" "d" (+ (* 180 (/ ang pi)) -45) "non" pt_tmp1 "non" pt2 "d" (+ (* 180 (/ ang pi)) 180 45) "non" pt_tmp1 "" ) (setvar "clayer" clayer) t ) ;;;=================================================================* (setq msg_ "\n ***折断线===zdx ***双折断线===zdx2 ***圆柱折断线===zhdx ***\n") (prompt msg_) (prin1)