CafeJr 发表于 2022-7-5 15:45:41

用“或”填充一个区域

大家好,
 
有人知道如果可能的话,我用一条多段线(或引导线)填充一个区域,如图所示,通知lisp代码初始点、返回线的半径和空间限制(作为限制线),水平或垂直引导这些线,直到整个区域完全填充?。。。
 
提前感谢。。。
 

marko_ribar 发表于 2022-7-5 15:49:19

这是我的版本,但我不知道你怎么想-在某些情况下,它可能比相反的边界边(蛇的末端)短或长填充。。。
 
(defun c:snakefill (/ ptlst lxm uxm lym rym p1 p2 p3 p4 ip r d1 d2 d3 d4 dmin dir dx dy ls lr lx ly n ss)
(prompt "\nPick area...(lower-left corner+upper-right corner)")
(command "_.rectangle" pause pause)
(setq ptlst (mapcar 'cdr (vl-remove-if-not '(lambda (x) (eq (car x) 10)) (entget (entlast)))))
(setq ptlst (mapcar '(lambda (x) (trans x (entlast) 1)) ptlst))
(prompt "\nDelta X of OCS: ") (princ (distance (car ptlst) (cadr ptlst)))
(prompt "\nDelta Y of OCS: ") (princ (distance (cadr ptlst) (caddr ptlst)))
(initget 4)
(setq lxm (getdist "\nPick lower X of OCS offset margin <0.0>: "))
(if (null lxm) (setq lxm 0.0))
(initget 4)
(setq uxm (getdist "\nPick upper X of OCS offset margin <0.0>: "))
(if (null uxm) (setq uxm 0.0))
(initget 4)
(setq lym (getdist "\nPick left Y of OCS offset margin <0.0>: "))
(if (null lym) (setq lym 0.0))
(initget 4)
(setq rym (getdist "\nPick right Y of OCS offset margin <0.0>: "))
(if (null rym) (setq rym 0.0))
(setq p1 (mapcar '+ (car ptlst) (list lym lxm)))
(setq p2 (mapcar '+ (cadr ptlst) (list (- rym) lxm)))
(setq p3 (mapcar '+ (caddr ptlst) (list (- rym) (- uxm))))
(setq p4 (mapcar '+ (cadddr ptlst) (list lym (- uxm))))
(setq ip (getpoint "\nPick start point of snake fill: "))
(initget 7)
(setq r (getdist "\nPick radius of snake fill: "))
(setq d1 (distance ip p1) d2 (distance ip p2) d3 (distance ip p3) d4 (distance ip p4))
(setq dmin (min d1 d2 d3 d4))
(initget 1 "X Y")
(setq dir (getkword "\nSnake direction - parallel to X or Y of OCS (X/Y): "))
(if (equal dmin d1)
   (progn
   (setq dx (car (mapcar '- ip p1)))
   (setq dy (cadr (mapcar '- ip p1)))
   (if (eq dir "X")
       (progn
         (setq ls (- (distance p1 p2) dx r))
         (setq lr (- (distance p1 p2) (* r 2.0)))
         (setq ly (- (distance p1 p4) dy))
         (setq n (fix (/ ly (* r 2.0))))
         (command "_.pline" ip (polar ip 0.0 ls) "a" "s" (mapcar '+ (polar ip 0.0 ls) (list r r)) (mapcar '+ (polar ip 0.0 ls) (list 0.0 (* r 2.0))) "")
         (setq ss (ssadd))
         (ssadd (entlast) ss)
         (command "_.pline" (mapcar '+ (polar ip 0.0 ls) (list 0.0 (* r 2.0))) (polar (mapcar '+ (polar ip 0.0 ls) (list 0.0 (* r 2.0))) pi lr) "a" "s" (mapcar '+ (polar (mapcar '+ (polar ip 0.0 ls) (list 0.0 (* r 2.0))) pi lr) (list (- r) r)) (mapcar '+ (polar (mapcar '+ (polar ip 0.0 ls) (list 0.0 (* r 2.0))) pi lr) (list 0.0 (* r 2.0))) "l" (polar (mapcar '+ (polar (mapcar '+ (polar ip 0.0 ls) (list 0.0 (* r 2.0))) pi lr) (list 0.0 (* r 2.0))) 0.0 lr) "a" "s" (mapcar '+ (polar (mapcar '+ (polar (mapcar '+ (polar ip 0.0 ls) (list 0.0 (* r 2.0))) pi lr) (list 0.0 (* r 2.0))) 0.0 lr) (list r r)) (mapcar '+ (polar (mapcar '+ (polar (mapcar '+ (polar ip 0.0 ls) (list 0.0 (* r 2.0))) pi lr) (list 0.0 (* r 2.0))) 0.0 lr) (list 0.0 (* r 2.0))) "")
         (ssadd (entlast) ss)
         (repeat (- (fix (/ n 2.0)) 1)
         (command "_.copy" (entlast) "" '(0.0 0.0 0.0) (list 0.0 (* r 4.0) 0.0))
         (ssadd (entlast) ss)
         )
       )
       (progn
         (setq ls (- (distance p1 p4) dy r))
         (setq lr (- (distance p1 p4) (* r 2.0)))
         (setq lx (- (distance p1 p2) dx))
         (setq n (fix (/ lx (* r 2.0))))
         (command "_.pline" ip (polar ip (* pi 0.5) ls) "a" "s" (mapcar '+ (polar ip (* pi 0.5) ls) (list r r)) (mapcar '+ (polar ip (* pi 0.5) ls) (list (* r 2.0) 0.0)) "")
         (setq ss (ssadd))
         (ssadd (entlast) ss)
         (command "_.pline" (mapcar '+ (polar ip (* pi 0.5) ls) (list (* r 2.0) 0.0)) (polar (mapcar '+ (polar ip (* pi 0.5) ls) (list (* r 2.0) 0.0)) (* pi -0.5) lr) "a" "s" (mapcar '+ (polar (mapcar '+ (polar ip (* pi 0.5) ls) (list (* r 2.0) 0.0)) (* pi -0.5) lr) (list r (- r))) (mapcar '+ (polar (mapcar '+ (polar ip (* pi 0.5) ls) (list (* r 2.0) 0.0)) (* pi -0.5) lr) (list (* r 2.0) 0.0)) "l" (polar (mapcar '+ (polar (mapcar '+ (polar ip (* pi 0.5) ls) (list (* r 2.0) 0.0)) (* pi -0.5) lr) (list (* r 2.0) 0.0)) (* pi 0.5) lr) "a" "s" (mapcar '+ (polar (mapcar '+ (polar (mapcar '+ (polar ip (* pi 0.5) ls) (list (* r 2.0) 0.0)) (* pi -0.5) lr) (list (* r 2.0) 0.0)) (* pi 0.5) lr) (list r r)) (mapcar '+ (polar (mapcar '+ (polar (mapcar '+ (polar ip (* pi 0.5) ls) (list (* r 2.0) 0.0)) (* pi -0.5) lr) (list (* r 2.0) 0.0)) (* pi 0.5) lr) (list (* r 2.0) 0.0)) "")
         (ssadd (entlast) ss)
         (repeat (- (fix (/ n 2.0)) 1)
         (command "_.copy" (entlast) "" '(0.0 0.0 0.0) (list (* r 4.0) 0.0 0.0))
         (ssadd (entlast) ss)
         )
       )
   )
   )
)
(if (equal dmin d2)
   (progn
   (setq dx (car (mapcar '- p2 ip)))
   (setq dy (cadr (mapcar '- ip p2)))
   (if (eq dir "X")
       (progn
         (setq ls (- (distance p2 p1) dx r))
         (setq lr (- (distance p2 p1) (* r 2.0)))
         (setq ly (- (distance p2 p3) dy))
         (setq n (fix (/ ly (* r 2.0))))
         (command "_.pline" ip (polar ip pi ls) "a" "s" (mapcar '+ (polar ip pi ls) (list (- r) r)) (mapcar '+ (polar ip pi ls) (list 0.0 (* r 2.0))) "")
         (setq ss (ssadd))
         (ssadd (entlast) ss)
         (command "_.pline" (mapcar '+ (polar ip pi ls) (list 0.0 (* r 2.0))) (polar (mapcar '+ (polar ip pi ls) (list 0.0 (* r 2.0))) 0.0 lr) "a" "s" (mapcar '+ (polar (mapcar '+ (polar ip pi ls) (list 0.0 (* r 2.0))) 0.0 lr) (list r r)) (mapcar '+ (polar (mapcar '+ (polar ip pi ls) (list 0.0 (* r 2.0))) 0.0 lr) (list 0.0 (* r 2.0))) "l" (polar (mapcar '+ (polar (mapcar '+ (polar ip pi ls) (list 0.0 (* r 2.0))) 0.0 lr) (list 0.0 (* r 2.0))) pi lr) "a" "s" (mapcar '+ (polar (mapcar '+ (polar (mapcar '+ (polar ip pi ls) (list 0.0 (* r 2.0))) 0.0 lr) (list 0.0 (* r 2.0))) pi lr) (list (- r) r)) (mapcar '+ (polar (mapcar '+ (polar (mapcar '+ (polar ip pi ls) (list 0.0 (* r 2.0))) 0.0 lr) (list 0.0 (* r 2.0))) pi lr) (list 0.0 (* r 2.0))) "")
         (ssadd (entlast) ss)
         (repeat (- (fix (/ n 2.0)) 1)
         (command "_.copy" (entlast) "" '(0.0 0.0 0.0) (list 0.0 (* r 4.0) 0.0))
         (ssadd (entlast) ss)
         )
       )
       (progn
         (setq ls (- (distance p2 p3) dy r))
         (setq lr (- (distance p2 p3) (* r 2.0)))
         (setq lx (- (distance p1 p2) dx))
         (setq n (fix (/ lx (* r 2.0))))
         (command "_.pline" ip (polar ip (* pi 0.5) ls) "a" "s" (mapcar '+ (polar ip (* pi 0.5) ls) (list (- r) r)) (mapcar '+ (polar ip (* pi 0.5) ls) (list (* r -2.0) 0.0)) "")
         (setq ss (ssadd))
         (ssadd (entlast) ss)
         (command "_.pline" (mapcar '+ (polar ip (* pi 0.5) ls) (list (* r -2.0) 0.0)) (polar (mapcar '+ (polar ip (* pi 0.5) ls) (list (* r -2.0) 0.0)) (* pi -0.5) lr) "a" "s" (mapcar '+ (polar (mapcar '+ (polar ip (* pi 0.5) ls) (list (* r -2.0) 0.0)) (* pi -0.5) lr) (list (- r) (- r))) (mapcar '+ (polar (mapcar '+ (polar ip (* pi 0.5) ls) (list (* r -2.0) 0.0)) (* pi -0.5) lr) (list (* r -2.0) 0.0)) "l" (polar (mapcar '+ (polar (mapcar '+ (polar ip (* pi 0.5) ls) (list (* r -2.0) 0.0)) (* pi -0.5) lr) (list (* r -2.0) 0.0)) (* pi 0.5) lr) "a" "s" (mapcar '+ (polar (mapcar '+ (polar (mapcar '+ (polar ip (* pi 0.5) ls) (list (* r -2.0) 0.0)) (* pi -0.5) lr) (list (* r -2.0) 0.0)) (* pi 0.5) lr) (list (- r) r)) (mapcar '+ (polar (mapcar '+ (polar (mapcar '+ (polar ip (* pi 0.5) ls) (list (* r -2.0) 0.0)) (* pi -0.5) lr) (list (* r -2.0) 0.0)) (* pi 0.5) lr) (list (* r -2.0) 0.0)) "")
         (ssadd (entlast) ss)
         (repeat (- (fix (/ n 2.0)) 1)
         (command "_.copy" (entlast) "" '(0.0 0.0 0.0) (list (* r -4.0) 0.0 0.0))
         (ssadd (entlast) ss)
         )
       )
   )
   )
)
(if (equal dmin d3)
   (progn
   (setq dx (car (mapcar '- p3 ip)))
   (setq dy (cadr (mapcar '- p3 ip)))
   (if (eq dir "X")
       (progn
         (setq ls (- (distance p3 p4) dx r))
         (setq lr (- (distance p3 p4) (* r 2.0)))
         (setq ly (- (distance p3 p2) dy))
         (setq n (fix (/ ly (* r 2.0))))
         (command "_.pline" ip (polar ip pi ls) "a" "s" (mapcar '+ (polar ip pi ls) (list (- r) (- r))) (mapcar '+ (polar ip pi ls) (list 0.0 (* r -2.0))) "")
         (setq ss (ssadd))
         (ssadd (entlast) ss)
         (command "_.pline" (mapcar '+ (polar ip pi ls) (list 0.0 (* r -2.0))) (polar (mapcar '+ (polar ip pi ls) (list 0.0 (* r -2.0))) 0.0 lr) "a" "s" (mapcar '+ (polar (mapcar '+ (polar ip pi ls) (list 0.0 (* r -2.0))) 0.0 lr) (list r (- r))) (mapcar '+ (polar (mapcar '+ (polar ip pi ls) (list 0.0 (* r -2.0))) 0.0 lr) (list 0.0 (* r -2.0))) "l" (polar (mapcar '+ (polar (mapcar '+ (polar ip pi ls) (list 0.0 (* r -2.0))) 0.0 lr) (list 0.0 (* r -2.0))) pi lr) "a" "s" (mapcar '+ (polar (mapcar '+ (polar (mapcar '+ (polar ip pi ls) (list 0.0 (* r -2.0))) 0.0 lr) (list 0.0 (* r -2.0))) pi lr) (list (- r) (- r))) (mapcar '+ (polar (mapcar '+ (polar (mapcar '+ (polar ip pi ls) (list 0.0 (* r -2.0))) 0.0 lr) (list 0.0 (* r -2.0))) pi lr) (list 0.0 (* r -2.0))) "")
         (ssadd (entlast) ss)
         (repeat (- (fix (/ n 2.0)) 1)
         (command "_.copy" (entlast) "" '(0.0 0.0 0.0) (list 0.0 (* r -4.0) 0.0))
         (ssadd (entlast) ss)
         )
       )
       (progn
         (setq ls (- (distance p3 p2) dy r))
         (setq lr (- (distance p3 p2) (* r 2.0)))
         (setq lx (- (distance p3 p4) dx))
         (setq n (fix (/ lx (* r 2.0))))
         (command "_.pline" ip (polar ip (* pi -0.5) ls) "a" "s" (mapcar '+ (polar ip (* pi -0.5) ls) (list (- r) (- r))) (mapcar '+ (polar ip (* pi -0.5) ls) (list (* r -2.0) 0.0)) "")
         (setq ss (ssadd))
         (ssadd (entlast) ss)
         (command "_.pline" (mapcar '+ (polar ip (* pi -0.5) ls) (list (* r -2.0) 0.0)) (polar (mapcar '+ (polar ip (* pi -0.5) ls) (list (* r -2.0) 0.0)) (* pi 0.5) lr) "a" "s" (mapcar '+ (polar (mapcar '+ (polar ip (* pi -0.5) ls) (list (* r -2.0) 0.0)) (* pi 0.5) lr) (list (- r) r)) (mapcar '+ (polar (mapcar '+ (polar ip (* pi -0.5) ls) (list (* r -2.0) 0.0)) (* pi 0.5) lr) (list (* r -2.0) 0.0)) "l" (polar (mapcar '+ (polar (mapcar '+ (polar ip (* pi -0.5) ls) (list (* r -2.0) 0.0)) (* pi 0.5) lr) (list (* r -2.0) 0.0)) (* pi -0.5) lr) "a" "s" (mapcar '+ (polar (mapcar '+ (polar (mapcar '+ (polar ip (* pi -0.5) ls) (list (* r -2.0) 0.0)) (* pi 0.5) lr) (list (* r -2.0) 0.0)) (* pi -0.5) lr) (list (- r) (- r))) (mapcar '+ (polar (mapcar '+ (polar (mapcar '+ (polar ip (* pi -0.5) ls) (list (* r -2.0) 0.0)) (* pi 0.5) lr) (list (* r -2.0) 0.0)) (* pi -0.5) lr) (list (* r -2.0) 0.0)) "")
         (ssadd (entlast) ss)
         (repeat (- (fix (/ n 2.0)) 1)
         (command "_.copy" (entlast) "" '(0.0 0.0 0.0) (list (* r -4.0) 0.0 0.0))
         (ssadd (entlast) ss)
         )
       )
   )
   )
)
(if (equal dmin d4)
   (progn
   (setq dx (car (mapcar '- ip p4)))
   (setq dy (cadr (mapcar '- p4 ip)))
   (if (eq dir "X")
       (progn
         (setq ls (- (distance p4 p3) dx r))
         (setq lr (- (distance p4 p3) (* r 2.0)))
         (setq ly (- (distance p4 p1) dy))
         (setq n (fix (/ ly (* r 2.0))))
         (command "_.pline" ip (polar ip 0.0 ls) "a" "s" (mapcar '+ (polar ip 0.0 ls) (list r (- r))) (mapcar '+ (polar ip 0.0 ls) (list 0.0 (* r -2.0))) "")
         (setq ss (ssadd))
         (ssadd (entlast) ss)
         (command "_.pline" (mapcar '+ (polar ip 0.0 ls) (list 0.0 (* r -2.0))) (polar (mapcar '+ (polar ip 0.0 ls) (list 0.0 (* r -2.0))) pi lr) "a" "s" (mapcar '+ (polar (mapcar '+ (polar ip 0.0 ls) (list 0.0 (* r -2.0))) pi lr) (list (- r) (- r))) (mapcar '+ (polar (mapcar '+ (polar ip 0.0 ls) (list 0.0 (* r -2.0))) pi lr) (list 0.0 (* r -2.0))) "l" (polar (mapcar '+ (polar (mapcar '+ (polar ip 0.0 ls) (list 0.0 (* r -2.0))) pi lr) (list 0.0 (* r -2.0))) 0.0 lr) "a" "s" (mapcar '+ (polar (mapcar '+ (polar (mapcar '+ (polar ip 0.0 ls) (list 0.0 (* r -2.0))) pi lr) (list 0.0 (* r -2.0))) 0.0 lr) (list r (- r))) (mapcar '+ (polar (mapcar '+ (polar (mapcar '+ (polar ip 0.0 ls) (list 0.0 (* r -2.0))) pi lr) (list 0.0 (* r -2.0))) 0.0 lr) (list 0.0 (* r -2.0))) "")
         (ssadd (entlast) ss)
         (repeat (- (fix (/ n 2.0)) 1)
         (command "_.copy" (entlast) "" '(0.0 0.0 0.0) (list 0.0 (* r -4.0) 0.0))
         (ssadd (entlast) ss)
         )
       )
       (progn
         (setq ls (- (distance p4 p1) dy r))
         (setq lr (- (distance p4 p1) (* r 2.0)))
         (setq lx (- (distance p4 p3) dx))
         (setq n (fix (/ lx (* r 2.0))))
         (command "_.pline" ip (polar ip (* pi -0.5) ls) "a" "s" (mapcar '+ (polar ip (* pi -0.5) ls) (list r (- r))) (mapcar '+ (polar ip (* pi -0.5) ls) (list (* r 2.0) 0.0)) "")
         (setq ss (ssadd))
         (ssadd (entlast) ss)
         (command "_.pline" (mapcar '+ (polar ip (* pi -0.5) ls) (list (* r 2.0) 0.0)) (polar (mapcar '+ (polar ip (* pi -0.5) ls) (list (* r 2.0) 0.0)) (* pi 0.5) lr) "a" "s" (mapcar '+ (polar (mapcar '+ (polar ip (* pi -0.5) ls) (list (* r 2.0) 0.0)) (* pi 0.5) lr) (list r r)) (mapcar '+ (polar (mapcar '+ (polar ip (* pi -0.5) ls) (list (* r 2.0) 0.0)) (* pi 0.5) lr) (list (* r 2.0) 0.0)) "l" (polar (mapcar '+ (polar (mapcar '+ (polar ip (* pi -0.5) ls) (list (* r 2.0) 0.0)) (* pi 0.5) lr) (list (* r 2.0) 0.0)) (* pi -0.5) lr) "a" "s" (mapcar '+ (polar (mapcar '+ (polar (mapcar '+ (polar ip (* pi -0.5) ls) (list (* r 2.0) 0.0)) (* pi 0.5) lr) (list (* r 2.0) 0.0)) (* pi -0.5) lr) (list r (- r))) (mapcar '+ (polar (mapcar '+ (polar (mapcar '+ (polar ip (* pi -0.5) ls) (list (* r 2.0) 0.0)) (* pi 0.5) lr) (list (* r 2.0) 0.0)) (* pi -0.5) lr) (list (* r 2.0) 0.0)) "")
         (ssadd (entlast) ss)
         (repeat (- (fix (/ n 2.0)) 1)
         (command "_.copy" (entlast) "" '(0.0 0.0 0.0) (list (* r 4.0) 0.0 0.0))
         (ssadd (entlast) ss)
         )
       )
   )
   )
)
(command "_.pedit" "m" ss "" "j" "" "")
(princ)
)
M.R。

BIGAL 发表于 2022-7-5 15:54:47

这很接近,线可以是任何角度,等等,在路岛上的人字形只需创建一个内部多边形
 
; this use the extrim command to trim shape
; By Alan H Jan 2012
(defun C:Chevron ( / obj pt1 pt2 pt3 pt4 newpt1 newpt2 )
(acet-error-init (list
                  (list   "cmdecho" 0
                        "highlight" 0
                        "regenmode" 1
                           "osmode" 0
                        "ucsicon" 0
                     "offsetdist" 0
                           "attreq" 0
                         "plinewid" 0
                        "plinetype" 1
                         "gridmode" 0
                        "celtype" "CONTINUOUS"
                        "ucsfollow" 0
                         "limcheck" 0
                  )
                  T   ;flag. True means use undo for error clean up.
                  '(if redraw_it (redraw na 4))
               );list
);acet-error-init
(setq obj (car (entsel "\nPick pline or circle")))
; should do a object test here
(setq whatis (cdr (assoc 0 (entget obj))))
(if (= whatis "LWPOLYLINE")
(princ)
(progn
(princ "\You have picked something other than a polyline ")
(princ "\Remake into a pline and do again ")
(setq dummy (getstring "\press any key"))
(exit)
) ; progn
) ; if
(setq pt1 (Getpoint "\nPick Line start point"))
(setq pt2 (Getpoint pt1 "\nPick end point"))
(command "line" pt1 pt2 "")
(setq gap1 (getreal "\nenter spacing 1"))
(setq gap2 (getreal "\nenter spacing 2"))
(setq pt3 (getpoint "\nPick 1st cross point"))
(setq pt4 (getpoint pt3 "\nPick 2nd cross point"))
(setq dist (distance pt3 pt4))
(setq x (fix (/ dist (+ gap1 gap2))))
(setq newpt1 (strcat (rtos gap1 2 2) ",0.0"))
(setq newpt2 (strcat (rtos gap2 2 2) ",0.0"))
(repeat x
(command "copy" "L" "" "0,0" newpt1)
(command "copy" "L" "" "0,0" newpt2)
)
(load "Extrim")
(etrim obj pt1)
(acet-error-restore)
) ; end defun

(princ)

CafeJr 发表于 2022-7-5 15:58:21

 
Marko_ribar,谢谢你的帮助,你写的代码几乎就是我需要的,但是线条只绘制在一个规则的区域(矩形)?有可能选择其他类型的区域吗?如图所示,沿着倾角极限的弧。。。我在想一些事情,比如我填充限制后的区域,作为一个“规则”来画线,比如:如果插入起点,可以画线直到限制线,在那里我们得到限制线的交叉点(绿线),可以减少,以创建第一条线的终点,使用半径作为参考,在画完弧之后,再按照“规则”做,直到画完为止,但我不知道这样做是否可行。
 
再次感谢,关于英语的问题,我很抱歉!。。。

CafeJr 发表于 2022-7-5 15:59:17

 
BIGAL,谢谢,我不知道我是否做错了,但是使用你的代码我只在区域(轮廓)后面创建行,对吗?。。。

BIGAL 发表于 2022-7-5 16:02:56

是的,仅使用1条线,但可以有圆弧等

Lee Mac 发表于 2022-7-5 16:06:04

这个请求让我想起了这个线程——也许这个程序会有所帮助。

CafeJr 发表于 2022-7-5 16:10:37

 
李几乎是。。。但是,我正在填充一个不规则区域!。。。我正在展示另一幅画来解释它。。。
 

BIGAL 发表于 2022-7-5 16:13:11

这是可以解决的,但它不是一个快速的任务,所以我只提供一个李可能能够帮助编写代码的方法
 
根据需要在pline外偏移
以所需的角度和间距创建线(请参见my chevron.lsp)修剪到新的内部柱脚
使用从左到右的线列表,只需交替使用fillet命令top和bottom
 
应该看起来像图像。

CafeJr 发表于 2022-7-5 16:16:47

谢谢比格尔。。。
页: [1] 2
查看完整版本: 用“或”填充一个区域