yangist 发表于 2013-6-21 09:58:34

圆弧变加尖角

;圆弧变加尖角
(defun c:cac(/ ss1 n en el code0 r sa ea ct sp ep A+b/2 j_angle l j)
   (setvar "cmdecho" 0) ;指令执行过程不响应
   (princ "\n-->请框选要变加尖角的圆弧...")
(setq os (getvar "osmode"))
(setq ss1 (ssget))
(setq n (sslength ss1))
(setq n 0)
(setq m 0)
(setq colo_r(getvar "cecolor"))
(setvar "osmode" 0)
(setvar "cecolor" "5")
(while (setq en (ssname ss1 n))
    (setq el (entget en))
    (setq code0 (cdr (assoc 0 el)))
    (if (= code0 "ARC")
      (progn
(setq m (+ 1 m))
(setq r (cdr (assoc 40 el)))
(if (< r 2000)
   (progn
   (setq sa (cdr (assoc 50 el)))
   (setq ea (cdr (assoc 51 el)))
   (setq ct (cdr (assoc 10 el)))
   (setq sp (polar ct sa r))
   (setq ep (polar ct ea r))
   (setq A+B/2 (/ (- ea sa) 2))
   (setq j_angle (+ (/ (- ea sa) 2) sa))
   (setq l (/ r (cos A+B/2)))
   (setq j (polar ct j_angle l))
   (if (/= (- ea sa) pi)
       (progn
(command "zoom" w sp ep)
       (command "pline" sp j ep "")
       )
       (Princ "所选圆弧中有半圆!")
   )
   )
   (princ "所选圆弧中有半径大于 2000")
)
      )
    )
    (setq n (1+ n))
)
(setvar "cecolor" colo_r)
(setvar "osmode" os)
(Princ "共有")
(princ m)
(princ "个圆弧变尖")
(princ "\nKOKU's soft")
   (PRINC "\n 圆弧变加尖角完成!")(PRINC))
页: [1]
查看完整版本: 圆弧变加尖角