level 1
创后年1Q
楼主
(defun C:gp(/)
(setq cm (getvar "cmdecho"))
(setq os (getvar "osmode"))
(setvar "cmdecho" 0)
(setvar "osmode" 0)
(setq ss(ssget))
(setq n 0)
(setq r(getreal"输入半径<0.75>:"))
(if(= r nil)(setq r 0.75))
(setq len(sslength ss))
(
while (<= n (- len 1))
(setq ent(ssname ss n))
(setq ent_data(entget ent))
(setq p1(cdr (assoc 10 ent_data)))
(setq p2(cdr (assoc 11 ent_data)))
(setq x1 (nth 1 (assoc 10 ent_data)))
(setq y1 (nth 2 (assoc 10 ent_data)))
(setq x2 (nth 1 (assoc 11 ent_data)))
(setq y2 (nth 2 (assoc 11 ent_data)))
(setq x0(/ (+ x1 x2) 2))
(setq y0(/ (+ y1 y2) 2))
;;(setq INT (list x0 y0))
(setq INT(osnap p1 "mid"))
(command "circle" INT r "")
(setq yp(entlast))
(setq an1(angle INT P1))
(setq an2(angle INT P2))
(setq cos1(+ (* r (cos an1)) x0))
(setq sin1(+ (* r (sin an1)) y0))
(setq cos2(+ (* r (cos an2)) x0))
(setq sin2(+ (* r (sin an2)) y0))
(setq inter1 (list cos1 sin1))
(setq inter2 (list cos2 sin2))
(setq inter11(osnap inter1 "INT"))
(setq inter22(osnap inter2 "INT"))
(command "break" ent "f" inter11 inter22 "")
(command "_insert" "溢流口" INT "" "" "")
(command "erase" yp "")
(setq n(+ 1 n))
)
(prin1)
(setvar "cmdecho" cm)
(setvar "osmode" os)
)
(command "break" ent "f" inter11 inter22 "") 这行代码执行错误,总是提示inter11点有问题,我用!inter11发现没有问题,但是在执行过程中就是通不过。
2017年07月04日 03点07分
1
(setq cm (getvar "cmdecho"))
(setq os (getvar "osmode"))
(setvar "cmdecho" 0)
(setvar "osmode" 0)
(setq ss(ssget))
(setq n 0)
(setq r(getreal"输入半径<0.75>:"))
(if(= r nil)(setq r 0.75))
(setq len(sslength ss))
(
while (<= n (- len 1))
(setq ent(ssname ss n))
(setq ent_data(entget ent))
(setq p1(cdr (assoc 10 ent_data)))
(setq p2(cdr (assoc 11 ent_data)))
(setq x1 (nth 1 (assoc 10 ent_data)))
(setq y1 (nth 2 (assoc 10 ent_data)))
(setq x2 (nth 1 (assoc 11 ent_data)))
(setq y2 (nth 2 (assoc 11 ent_data)))
(setq x0(/ (+ x1 x2) 2))
(setq y0(/ (+ y1 y2) 2))
;;(setq INT (list x0 y0))
(setq INT(osnap p1 "mid"))
(command "circle" INT r "")
(setq yp(entlast))
(setq an1(angle INT P1))
(setq an2(angle INT P2))
(setq cos1(+ (* r (cos an1)) x0))
(setq sin1(+ (* r (sin an1)) y0))
(setq cos2(+ (* r (cos an2)) x0))
(setq sin2(+ (* r (sin an2)) y0))
(setq inter1 (list cos1 sin1))
(setq inter2 (list cos2 sin2))
(setq inter11(osnap inter1 "INT"))
(setq inter22(osnap inter2 "INT"))
(command "break" ent "f" inter11 inter22 "")
(command "_insert" "溢流口" INT "" "" "")
(command "erase" yp "")
(setq n(+ 1 n))
)
(prin1)
(setvar "cmdecho" cm)
(setvar "osmode" os)
)
(command "break" ent "f" inter11 inter22 "") 这行代码执行错误,总是提示inter11点有问题,我用!inter11发现没有问题,但是在执行过程中就是通不过。