马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
;;;;又完善了一些
;;;;;;;;;;;;;;
;;;;;;;;;;;;;;
;;;;;;;;;;;;;;
(defun c:zb(/ szcs xhgd wzgd bghg bglk bghs bgbl dzb_ss n fgs pt_n pt_x pt_y pt_z mx my )
(sta);;;;;;;
;;;默认设置
(if (= xhgd0 nil)(setq xhgd0 3.5))
(setq xhgd xhgd0)
(if (= wzgd0 nil)(setq wzgd0 2.5))
(setq wzgd wzgd0)
(if (= bghg0 nil)(setq bghg0 5.0))
(setq bghg bghg0)
(if (= bglk0 nil)(setq bglk0 15.0))
(setq bglk bglk0)
(if (= bghs0 nil)(setq bghs0 20))
(setq bghs bghs0)
(if (= bgbl0 nil)(setq bgbl0 1))
(setq bgbl bgbl0)
(princ "\n欢迎使用圆心坐标读取书写程序")
(princ "\n[序号高度x]")(princ xhgd)
(princ "[文字高度w]")(princ wzgd)
(princ "[表格行高h]")(princ bghg)
(princ "[表格列宽l]")(princ bglk)
(princ "[表格行数s]")(princ bghs)
(princ "[比例调整b]")(princ bgbl)
(princ "[恢复默认f]:")
(setq szcs (getstring))
;;;参数设置
(while (or (equal szcs "x")(equal szcs "X")(equal szcs "w")(equal szcs "W")
(equal szcs "h")(equal szcs "H")(equal szcs "l")(equal szcs "L")
(equal szcs "s")(equal szcs "S")(equal szcs "f")(equal szcs "F")
(equal szcs "b")(equal szcs "B"))
(cond
((or (equal szcs "x")(equal szcs "X"))
(if (= xhgd0 nil)(setq xhgd0 3.5))
(princ "\n请输入序号高度(")(princ xhgd0)(princ "):")
(setq xhgd (getreal))
(if (= xhgd nil)(setq xhgd xhgd0) (setq xhgd0 xhgd))
);
((or (equal szcs "w")(equal szcs "W"))
(if (= wzgd0 nil)(setq wzgd0 2.5))
(princ "\n请输入文字高度(")(princ wzgd0)(princ "):")
(setq wzgd (getreal))
(if (= wzgd nil)(setq wzgd wzgd0) (setq wzgd0 wzgd))
);
((or (equal szcs "h")(equal szcs "H"))
(if (= bghg0 nil)(setq bghg0 5.0))
(princ "\n请输入表格行高(")(princ bghg0)(princ "):")
(setq bghg (getreal))
(if (= bghg nil)(setq bghg bghg0) (setq bghg0 bghg))
);
((or (equal szcs "l")(equal szcs "L"))
(if (= bglk0 nil)(setq bglk0 15.0))
(princ "\n请输入表格列宽(")(princ bglk0)(princ "):")
(setq bglk (getreal))
(if (= bglk nil)(setq bglk bglk0) (setq bglk0 bglk))
);
((or (equal szcs "s")(equal szcs "S"))
(if (= bghs0 nil)(setq bghs0 20))
(princ "\n请输入表格行数(")(princ bghs0)(princ "):")
(setq bghs (getint))
(if (= bghs nil)(setq bghs bghs0)(setq bghs0 bghs))
);
((or (equal szcs "b")(equal szcs "B"))
(if (= bgbl0 nil)(setq bgbl0 1))
(princ "\n请输入表格比例(")(princ bgbl0)(princ "):")
(setq bgbl (getint))
(if (= bgbl nil)(setq bgbl bgbl0)(setq bgbl0 bgbl))
(setq wzgd (* bgbl wzgd0))
(setq bghg (* bgbl bghg0))
(setq bglk (* bgbl bglk0))
);
((or (equal szcs "f")(equal szcs "F"))
(setq xhgd0 3.5) (setq xhgd xhgd0)
(setq wzgd0 2.5) (setq wzgd wzgd0)
(setq bghg0 5.0) (setq bghg bghg0)
(setq bglk0 15.0) (setq bglk bglk0)
(setq bghs0 20) (setq bghs bghs0)
(setq bgbl0 1) (setq bgbl bgbl0)
);
);
(princ "\n[序号高度x]")(princ xhgd)
(princ "[文字高度w]")(princ wzgd)
(princ "[表格行高h]")(princ bghg)
(princ "[表格列宽l]")(princ bglk)
(princ "[表格行数s]")(princ bghs)
(princ "[比例调整b]")(princ bgbl)
(princ "[恢复默认f]:")
(setq szcs (getstring))
)
(setq dzb_ss (ssget (list (cons 0' "CIRCLE")))); (list (cons 0' "POINT") (cons 0' "CIRCLE"))));
(setq pt0 (getpoint "请选择表格起点"))
(setq n 0)
;;;画表格
(setq fgs (fix (/ (sslength dzb_ss) bghs)))
(if (= (sslength dzb_ss) (* fgs bghs))
(setq fgs (- fgs 1)))
(setq fgs (+ 1 fgs))
(command "line" (list (- (nth 0 pt0) (* 0.5 bglk)) (+ (nth 1 pt0) (* 0.5 bghg)) 0)
(list (+ (nth 0 pt0) (* 3.5 bglk)) (+ (nth 1 pt0) (* 0.5 bghg)) 0) "");画横线
(if (= 1 fgs)
(command "-array" (ssget "l") "" "r" (+ 2 (fix bghs)) fgs (* -1 bghg))
(command "-array" (ssget "l") "" "r" (+ 2 (fix bghs)) fgs (* -1 bghg) (* 4 bglk)))
(command "line" (list (- (nth 0 pt0) (* 0.5 bglk)) (+ (nth 1 pt0) (* 0.5 bghg)) 0)
(list (- (nth 0 pt0) (* 0.5 bglk)) (- (nth 1 pt0) (* bghg (+ 0.5 bghs))) 0) "");画竖线
(command "-array" (ssget "l") "" "r" "1" (+ 1 (* 4 fgs)) bglk)
;;;书写表头
(command "text" "j" "mc" (list (nth 0 pt0) (- (nth 1 pt0) (* bghg n)) 0)
wzgd "0" "序号")
(if (> (sslength dzb_ss) bghs)
(command "-array" (ssget "l") "" "r" "1" fgs (* 4 bglk))
)
(command "text" "j" "mc" (list (+ bglk (nth 0 pt0)) (- (nth 1 pt0) (* bghg n)) 0)
wzgd "0" "X")
(if (> (sslength dzb_ss) bghs)
(command "-array" (ssget "l") "" "r" "1" fgs (* 4 bglk))
)
(command "text" "j" "mc" (list (+ (* 2 bglk) (nth 0 pt0)) (- (nth 1 pt0) (* bghg n)) 0)
wzgd "0" "Y")
(if (> (sslength dzb_ss) bghs)
(command "-array" (ssget "l") "" "r" "1" fgs (* 4 bglk))
)
(command "text" "j" "mc" (list (+ (* 3 bglk) (nth 0 pt0)) (- (nth 1 pt0) (* bghg n)) 0)
wzgd "0" "Z")
(if (> (sslength dzb_ss) bghs)
(command "-array" (ssget "l") "" "r" "1" fgs (* 4 bglk))
)
;;;循环
(while (< n (sslength dzb_ss))
(setq pt_n (cdr (assoc '10 (entget(ssname dzb_ss n)))))
(setq pt_x (nth 0 pt_n))
(setq pt_y (nth 1 pt_n))
(setq pt_z (nth 2 pt_n))
(setq n (1+ n))
(command "text" "j" "mc" pt_n wzgd "0" n);原点书写序号
;;;书写表格内容
(setq mx (* 4 (fix (/ (- n 1) bghs)) bglk))
(setq my (* (- n (* bghs (fix (/ (- n 1) bghs)))) bghg))
(command "text" "j" "mc" (list (+ mx (nth 0 pt0)) (- (nth 1 pt0) my) 0)
wzgd "0" n)
(command "text" "j" "mc" (list (+ mx bglk (nth 0 pt0)) (- (nth 1 pt0) my) 0)
wzgd "0" (rtos pt_x 2 0));
(command "text" "j" "mc" (list (+ mx (* 2 bglk) (nth 0 pt0)) (- (nth 1 pt0) my) 0)
wzgd "0" (rtos pt_y 2 0))
(command "text" "j" "mc" (list (+ mx (* 3 bglk) (nth 0 pt0)) (- (nth 1 pt0) my) 0)
wzgd "0" (rtos pt_z 2 0))
)
;;结束
(princ "\n总共读取并输出")(princ n)(princ "个坐标。")
(end);;;;;;;;;;;
(princ)
) |