当前位置:文档之家› CAD拼图程序lisp程序

CAD拼图程序lisp程序

CAD拼图程序lisp程序
CAD拼图程序lisp程序

CAD拼图程序lisp程序

(defun c: pintu (s1 s2 (pt1 pt2 in na.)

(setvar "blipmode")

(setvar "cmdecho")

(get _ rowandcolumn)

(setq p1 (getpoint "n 输入起始点")

(setq p0, p1).

(setq pa0 (0 to 10)

(setq pai (list (as pa0) - (framework pa0) (2000)

(setq pa2 (list + (pa1) (2000) (framework pa1)

(setq pa3 (list (pa2) - (framework pa2) (2000)

(setq pa4 (list + (pa3) (pa3) framework)

(setq p0, p1).

(setq v1 (getvar "osmode)

(setvar "osmode")

(command "zoom", "r")

(setq numa2)

(setq numa3)

(setq (0)

"(m), 列清零(setq j ().

"(j),

(setq s1 (ssget "w" p1 (list + (p1) 1190) + (connection p1) 845) (the s1.

(command "copy" s1 "," p1 "(0)

(getboundingbox)

(command "zoom", "r")

(setq s2 (ssget "w" (5 / 5) (1190 850)

(cond

(((< = sd (sd = 1195) 1185)

(progn (command "move" s2 "(0) pa0) (setq pa0 (list + (pa0) (1500) framework pa0))))

)

(((< = sd (sd = 835 845)

(progn (command "move" s2 "(0) (setq pai (pai) list (pa1) - (framework pa1) 614))))

)

(((< = sd (sd = 600) 590)

(progn (command "move" s2 "(0) (pa2).

(setq numa2 (1 + numa2)

(if (= (rem numa2 (2)

(setq (list (pa2 pa2) - (framework pa2) 440)

(setq (list + (pa2 pa2) 614) + (framework pa2) 440)

)

)

)

(((< = sd (sd = 425))))

(progn (command "move" s2 "(0) pa3)

(setq numa3 (1 + numa3)

(if (= (rem numa3 (2)

(setq pa3 (list + (pa3) 440 (pa3) framework)

(setq pa3 (list ((((pa3) 440) framework pa3) 317)

)

)

)

(((< = (215) (> = (dd))

(progn (command "move" s2 "(0) (pa4) setq pa4 (list + (pa4) (framework pa4))))

)

;;; (t (setq fn (strcat f / a4 / tuhao "a4.dwg")

)

(setq s1.)

)

(setq p1 (list + (p1) 1 (p1) framework)

(setq j (1 + j).

)

(setq p0 (list (car p0) (- (cadr p0) 1500)))

(setq p1 p0)

(setq in (1 + 1))

)

(setvar "osmode" v1)

;;; (setvar "osmode" 16383)

(prince)

)

;;; --- 取得图幅幅面宽度以便判断图幅大小

(defun getboundingbox (/ ss pt2 in pt _ list pt10 pt11 a endata my _ x max _ x my _ x _ pt _ list

max _ x _ pt _ list my _ x _ pt max _ x _ pt

)

(setq pt2 (list (+ (car p1) 1195) (+ (cadr p1) 850)))

(setq ss (ssget "w" p1 pt2 '((0. " line "))))

(setq in 0)

(setq pt _ list nil)

;;; 获取所有直线端点并赋值给pt _ list

(repeat (sslength ss)

(setq a (ssname ss in))

(setq endata (entget a))

(setq pt10 (cdr (assoc. 10 endata)))

(setq pt _ list (cons pt10 pt _ list))

(setq pt11 (cdr (assoc. 11 endata)))

(setq pt _ list (cons pt11 pt _ list))

(setq in (1 + 1))

)

;;; 获取最小点和最大点

(setq pt _ list (vl - black pt _ list (function (lambda (e1 e2)

(< (car e1) (car e2))))))

(setq my _ x (car (car pt _ list)))

(setq pt _ list (reverse pt _ list))

(setq max _ x (car (car pt _ list)))

(setq my _ x _ pt _ list nil)

(setq max _ x _ pt _ list nil)

(foreach val pt _ list

(if (= (car val) my _ x)

(setq my _ x _ pt _ list (cons val my _ x _ pt _ list))

)

(if (= (car val) max _ x)

(setq max _ x _ pt _ list (cons val max _ x _ pt _ list)) )

)

(setq my _ x _ pt _ list (vl - black my _ x _ pt _ list (function (lambda (e1 e2) (< (cadr e1) (cadr e2)))))) (setq my _ x _ pt (car my _ x _ pt _ list))

(setq max _ x _ pt _ list (vl - black max _ x _ pt _ list (function

(lambda (e1 e2) (> (cadr e1) (cadr e2))))))

(setq max _ x _ pt (car max _ x _ pt _ list))

;;; (prin1 my _ x _ pt)

;;; (prin1 max _ x _ pt)

(setq dd (max _ x my _ x))

(setq dd (fix (dd))

;;; (prin1 dd)

)

;;;;;;;; 不同图幅图纸, 图号字符提取

;;;;;; ------------ along a0

;;; (defun a0 _ tufu (/ sss0 a endata)

;;; (command "zoom" "w" (list (1144 25) (- 60 5)) (list (+ 1144 25) (+ 60 5)))

;;; (setq sss0 (ssget "w" (list (1144 25) (- 60 5)) (list (+ 1144 25) (+ 60 5)) ((0. " text "))))

J J J

(setq in (ssname sss0 0))

(setq endata (;;; entget)

(setq (;;; tuhao (1 Cor endata Assoc)

;;;)

;;;;;; ---- A1 ---------------

J J J J J J " ' ?

J J J

;;; _ Tufu (defun (A1 / sss1 in endata)

;;; (Command "Zoom" "W" (list (25 - 796) (5 - 60) (list (796

(60 + 25 + 5))))

(setq sss1 (;;; ssget "W" (list (25 - 796) (5 - 60) (list (+

25 (+ 60 796) (5) (0) '. " Text "))))

(setq (;;; ssname sss1 0))

(setq endata (;;; entget)

(setq (;;; tuhao (1 Cor endata Assoc)

;;;)

;;;;;; ---- A2 --------------

J J J J J J 厂

;;; _ Tufu (defun (A2 / sss2 in endata)

;;; (Command "Zoom" "W" (list (25 - 549) (5 - 60) (list (549 (60 + 25 + 5))))

(setq sss2 (;;; ssget "W" (list (25 - 549) (5 - 60) (list (549 (+ 60 + 25) (5) (0) '. " Text "))))

(setq (;;; ssname sss2 0))

(setq endata (;;; entget)

(setq (;;; tuhao (1 Cor endata Assoc)

;;;)

;;;;;; ---- A3 --------------

;;; _ Tufu (defun (A3 / sss3 in endata)

;;; (Command "Zoom" "W" (list (- 380 (25) - 55 5) (list (+ 380 25) (+ 55 (5))

(setq sss3 (;;; ssget "W" (list (- 380 (25) - 55 5) (list (+ 380 25 (5) + (55) (0) '. " Text "))))

(setq (;;; ssname sss3 0))

(setq endata (;;; entget)

(setq (;;; tuhao (1 Cor endata Assoc)

;;;)

相关主题
文本预览
相关文档 最新文档