24小时热门版块排行榜    

查看: 278  |  回复: 0

axiuluo007

金虫 (初入文坛)

[交流] 一个倒圆角的代码不适应CAD04以外的版本

(defun c:yj ()
  (SETQ EE1 T)
    (WHILE EE1
  (SETQ SSE (SSADD))
  (setq ee1 (entsel "\n选择第一线:")
  (IF EE1 (PROGN
  (setq e1 (car ee1) P1 (LAST EE1))
  (setq ent (cdr (assoc 0 (entget e1))))
  (if (AND (/= ent "LINE" (/= ENT "LWPOLYLINE") (*ERROR* "NOT LINE & PLINE")
  (IF (= ENT "LINE" (SETQ T1 NIL) (SETQ T1 T))
  (SSADD E1 SSE)
  (setq ee2 (entsel "\n选择第二线:")
  (setq e2 (car ee2) P2 (last EE2))
  (setq ent (cdr (assoc 0 (entget e2))))
  (if (AND (/= ent "LINE" (/= ENT "LWPOLYLINE") (*ERROR* "NOT LINE & PLINE")
  (IF (= ENT "LINE" (SETQ T2 NIL) (SETQ T2 T))
  (IF (AND (SSMEMB E2 SSE) (/= ENT "LWPOLYLINE") (*ERROR* "ONE OBJECT")
  (princ "\n圆角半径<"
  (princ (setq rd (getvar "filletrad"))
  (setq rR (getreal ">:")
  (if rR (SETQ RD RR))
  (setvar "filletrad" rD)
  (IF (SSMEMB E2 SSE)
     (COMMAND "FILLET" "P" P1)
     (PROGN
      (SETQ AA (PW E1 P1) BB (PW E2 P2))
      (setq e1 (CAR AA) W1 (LAST AA))
      (setq e2 (CAR BB) W2 (LAST BB))
      (command "fillet" p1 p2)
      (if (> rd 0.001)
       (if (AND T1 T2)
         (command "pedit" "l" "y" "w" (* (+ w1 w2) 0.5) ""))
      (IF T1 (COMMAND "PEDIT" E1 "Y" "W" W1 "")
      (IF T2 (COMMAND "PEDIT" E2 "Y" "W" W2 "")
     ))

    ))
))
可以倒圆角的命令而且多段线圆角后,弧段和直线不是整体的,方便移动
在AUTOCAD2004 中可用
其它版本中的倒圆角后直线和圆弧形成个整体的了,或者多段线变成直线和圆弧了, 不知道咋回事,谁能看看,解决一下

[ Last edited by axiuluo007 on 2013-5-6 at 16:21 ]
回复此楼
己所不欲勿施于人
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 axiuluo007 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见