 - (defun C:gp(/)
- (vl-load-com)
- (setq cm (getvar "cmdecho"))
- (setq os (getvar "osmode"))
- (setvar "cmdecho" 0)
- (setvar "osmode" 0)
- (setq ss (car (cdr (ssgetfirst))))
- (while (= ss nil) (setq ss (ssget '((-4 . "<or")(0 . "LINE") (0 . "LWPOLYLINE")(-4 . "or>")))))
-
- (setq plst nil)
- (setq n 0)
- (repeat(sslength ss)
- (setq ent(ssname ss n))
- (setq ent(entget ent))
- (if(= (cdr (assoc 0 ent)) "LWPOLYLINE")
- (progn
- (foreach n ent
- (if(= (car n) 10)
- (setq plst(cons (cdr n) plst)))
- )
- (setq p1(car plst)
- p1(list (car p1) (cadr p1))
- p2(cadr plst)
- p2(list (car p2) (cadr p2))
-
- )
- )
- )
-
-
- (if(= (cdr (assoc 0 ent)) "LINE")
- (setq p1(cdr (assoc 10 ent))
- p1(list (car p1) (cadr p1))
- p2(cdr (assoc 11 ent))
- p2(list (car p2) (cadr p2)))
- )
- (setq p0(mapcar '(lambda(x y) (/ (+ x y) 2) ) p1 p2))
- ;|(setq r(getreal"输入半径<0.2>:"))
- (if(= r nil)(setq r 0.2))
- (vl-cmdf "circle" p0 r "")
- (setq yp(entlast))
- (vl-cmdf "trim" yp "" (list (ssname ss n) p0) "")|;
- (entmake (list (cons 0 "INSERT")
- (cons 10 p0)
- (cons 2 "溢流口")
- )
- )
- (setq ylk(entlast))
- (setq ylkvlx(vlax-ename->vla-object ylk))
- (setq ylk1(entget ylk))
- (setq n(+ 1 n))
- );end repeat
-
- (prin1)
- (setvar "cmdecho" cm)
- (setvar "osmode" os)
- )
|