819534890 发表于 2014-12-3 17:24:57

矩形如何画成倒圆角

本帖最后由 819534890 于 2014-12-3 17:32 编辑

如图所示,圆弧的半径为r,圆弧向里凹,不是往外凸。

819534890 发表于 2014-12-3 21:29:05

本帖最后由 819534890 于 2014-12-4 11:06 编辑

谢谢了,我自己解决了,等下贴出代码。把群码42 的值改为相反值就行。
;批量多段线圆角,和FILLET的圆角方向相反,简化版
(defun c:ff(/ radius radius1 ss en)
(setq radius (getvar "FILLETRAD"))
(if (setq radius1
             (getdist (strcat "\n请指定圆角半径<" (rtos radius) ">:"))
      )
    (setq radius radius1)
)
(if (setq ss(ssget '((0 . "lwpolyline"))))
    (progn
      (setq echo1 (getvar "cmdecho"))
      (setvar "cmdecho" 0)
      (while (setq en(ssname ss 0))
      (ffr en radius)
         (rer en)
      (setq ss (ssdel en ss))
      )
      (if echo1 (setvar "cmdecho" echo1))
      )
    )
(princ)
)
(defun ffr(en r)
(setvar "FILLETRAD" r)
(command "_.FILLET" "P" en)
)
(defun rer(sn / x sn_g p42)
(setq sn_g (entget sn))
(setq sn_g (mapcar '(lambda (x) (if (= (car x) 42 ) (setq x (cons 42 (- 0 (cdr x)))) x)) sn_g))
(entmod sn_g)
)

下文没句号。 发表于 2023-3-6 11:43:10

819534890 发表于 2014-12-3 21:29
谢谢了,我自己解决了,等下贴出代码。把群码42 的值改为相反值就行。

不错,感谢,拿来用用。。

大角牛 发表于 2024-8-13 21:45:43

好好好好好好

wzg356 发表于 2014-12-3 18:22:06

本帖最后由 wzg356 于 2014-12-3 18:29 编辑

圆心在角点上?
1、画矩形(或选择矩形)
2、取得四角点
3、根据角点、半径算出弧的三点
4、根据3点画弧
5、相邻弧的端点画直线
6、连接4段直线、4个弧成一条多线段
7、删除原矩形

434939575 发表于 2014-12-3 19:44:00

4角上画圆,矩形中心点BO。我是这样想的。

ZZXXQQ 发表于 2014-12-3 22:01:43

(defun c:tt ()
(if (and (setq pt1 (getpoint "\n第一角点: "))
    (setq pt2 (getcorner pt1 "\n另一角点: "))
    (setq r (getdist "\n圆弧半径: "))) (progn
(setq ptm (mapcar '(lambda (a b) (/ (+ a b) 2)) pt1 pt2))
(setq pt3 (list (car pt1) (cadr pt2)))
(setq pt4 (list (car pt2) (cadr pt1)))
(command "CIRCLE" pt1 r "CIRCLE" pt3 r "CIRCLE" pt2 r "CIRCLE" pt4 r)
(command "RECTANG" pt1 pt2)
(command "BOUNDARY" ptm "")
(command "ERASE" "C" pt1 pt2 "R" "L" "")
))
(princ)
)

819534890 发表于 2014-12-3 22:09:14

ZZXXQQ 发表于 2014-12-3 22:01 static/image/common/back.gif


谢谢啦!!
你这个是新画矩形,我刚才贴了一个修改的,同时对多段线也也适用。

depgfdepgf 发表于 2014-12-4 09:56:47

要是能在矩型内点选就更好了!

tianyi1230 发表于 2014-12-5 08:44:52

不错,使用的时候比较实惠!

ps122hb 发表于 2014-12-7 13:06:08

不错,多谢分享

自贡黄明儒 发表于 2014-12-10 15:23:17

ps122hb 发表于 2014-12-7 13:06 static/image/common/back.gif
不错,多谢分享

(defun C:w1 (/ E0 EN X)
(setq e0 (entlast))
(command "_.rectang" "F")
(while (not (equal (getvar "cmdnames") "")) (apply 'command (list pause)))
(cond
    ((not (equal e0 (entlast)))
   (setq en (entget (entlast)))
   (entmod (mapcar '(lambda (x)
                        (cond ((equal (car x) 42) (cons 42 (abs (cdr x))))
                              (T x)
                        )
                      )
                     en
             )
   )
    )
)
(princ)
)
页: [1] 2
查看完整版本: 矩形如何画成倒圆角