CAD LISP程序,求高手帮忙。写个小程序

2025-03-26 10:50:53
推荐回答(1个)
回答1:

(defun c:tes ( / #k1 %k1 %k2 &k1 &kw1)
 (if (setq &k1 (entsel "\n请选择参考圆"))
  (progn
   (setq #k1 (entget (car &k1)) &k1 (cdr (assoc 0 #k1)));取得图元名
   (if (= &k1 "CIRCLE");如果是圆
    (progn;那么
     (setq %k1 (assoc 40 #k1));取得圆半径
     (if (setq &kw1 (ssget '((0 . "CIRCLE"))));框选圆
      (progn
       (setq &k1 (ssname &kw1 0))
       (while &k1
        (setq &kw1 (ssdel &k1 &kw1)
              #k1 (entget &k1)
              %k2 (assoc 40 #k1)
              #k1 (subst %k1 %k2 #k1);圆半径替换为参考圆半径
        )
        (entmod #k1)
        (setq &k1 (ssname &kw1 0))
       );while
      )
     );if3
    )
   );if2
  )
 );if1
 (princ)
);复制到记事本,以【.lsp】为后缀命名。autoLISP加载了,命令:【tes】