Barry_47 发表于 2022-7-5 22:24:57

dr的实心阴影闭合区域

有人在这里帮助我或可以为我写程序。
在我的日常绘图工作中,我必须对绘图的封闭区域进行实体填充。他们的数字很多。它们有着不同颜色的边界。
任何人都可以帮我用它的边界颜色填充那个闭合的边界。这将帮助我提高生产力。
如果有任何lisp例程,请识别其边界颜色以填充实体。这对我的日常工作非常有帮助。
非常感谢。

SLW210 发表于 2022-7-5 22:31:01

我把你的帖子转移到AutoLISP、Visual LISP和DCL论坛中的一个新线程。

7o7 发表于 2022-7-5 22:33:16

你能用dwg文件更清楚地解释一下吗?

BIGAL 发表于 2022-7-5 22:37:22

两个例子。易于添加层等。
 

(defun C:hatchcol1 ( / obj hatcol)
(vl-load-com)
(setq obj (car (entsel)))
(setq hatcol (vlax-get-property (vlax-Ename->Vla-Object obj) 'color))
(setvar "HPNAME" "Solid") ;set hatch pattern
(command "-Hatch" "S" obj "" "CO" hatcol "" "")
)

;内部对象

(defun C:hatchcol2 ( / obj hatcol pt)
(vl-load-com)
(princ "\nPlease pick object for color")
(setq obj (car (entsel)))
(setq hatcol (vlax-get-property (vlax-Ename->Vla-Object obj) 'color))
(setq pt (getpoint "\nPlease pick inside objects"))
(setvar "HPNAME" "Solid") ;set hatch pattern
(command "-Hatch" pt "" "CO" hatcol "" "")
)

Barry_47 发表于 2022-7-5 22:39:47

谢谢你,比格尔
它工作得很好,但它无法识别其边界颜色。因为所有的封闭边界颜色都是不同的。
如果它认识到了这一点,那么它将使我的生产力提高200%。
再次感谢你。我不知道如何加载样本图纸。

Barry_47 发表于 2022-7-5 22:43:43

比加尔
它一个接一个,我想用它的边界颜色一次全局填充
谢谢

Tharwat 发表于 2022-7-5 22:47:12

试试这个,巴里,让我知道
 
注意:如果不希望用户选择对象,只需在以下代码中将模式字符串“_:L”更改为“_X”。
 

(defun c:Test (/ *error* v l ss doc)
;;    Tharwat 20. Aug. 2014                        ;;
;; Hatching closed objects with Solid pattern      ;;
;; with respect to the color of the objects      ;;
(defun *error* (x)
   (if v
   (mapcar 'setvar '(HPNAME CMDECHO) v)
   )
   (if (wcmatch (strcase x) "*BREAK*,*CANCEL*,*EXIT*")
   (princ (strcat "\n** Error: " x " **"))
   )
)
(setq l (entlast)
       v (mapcar 'getvar '(HPNAME CMDECHO))
)
(if (setq ss (ssget "_:L" '((0 . "SPLINE"))))
   (progn (mapcar 'setvar '(HPNAME CMDECHO) '("SOLID" 0))
          (setq l (entlast))
          (vla-startUndomark (setq doc (vla-get-ActiveDocument (vlax-get-acad-object))))
          ((lambda (i / sn c o)
             (while (setq sn (ssname ss (setq i (1+ i))))
               (command "_.-hatch" "S" sn "" "")
               (if (not (eq l (setq o (entlast))))
               (if (setq c (assoc 62 (entget sn)))
                   (entmod (append (entget o) (list (cons 62 (cdr c)))))
                   (entmod (append (entget o) '((62 . 256))))
               )
               )
               (setq l o)
             )
         )
            -1
          )
          (vla-Endundomark doc)
   )
)
(*error* nil)
)(vl-load-com)

Barry_47 发表于 2022-7-5 22:49:32

尊敬的tharwat:
我试着用这段代码,它的工作,但与当前层颜色填充。我想让它认出它的边界颜色。
因为边界颜色不同。它应该填充边界颜色。
我感谢你的帮助。
巴里

Tharwat 发表于 2022-7-5 22:53:01

 
很抱歉,我在发布之前没有尝试代码,我修改了它,您可以再试一次。

Barry_47 发表于 2022-7-5 22:55:34

亲爱的Tharwat,
非常感谢你。它适用于普通圆、矩形。但不是形状轮廓。请告诉我如何给你发一张合适的图纸,这样你就可以
亲自检查问题所在。我怎样才能把我的样品图纸发给你。让我知道。
它适用于任何颜色的bou现在与我的封闭形状。
谢谢你
页: [1] 2
查看完整版本: dr的实心阴影闭合区域