明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 8805|回复: 25

[源码] 填充合并-找的

[复制链接]
发表于 2014-8-5 12:12:18 | 显示全部楼层 |阅读模式
本帖最后由 myjping 于 2014-8-6 14:02 编辑

;;; massoc (Jaysen Long)               ;;
;;; Minor Modification by Jvillarreal ;;
;;; Extracts info from list by key     ;;
(defun massoc (key alist / x nlist)
  (foreach x alist
    (if (eq key (car x))
      (setq nlist (cons x nlist))
    )
  )
  (reverse nlist)
)
;;; defun
(defun c:mh(/ hentinfo ss i ent ent# seedpt# entinfo entinfo2 ent# seedpt# seedpts MergedHatchList)
;  (while (/= (cdr (assoc 0 hentinfo)) "HATCH")
;    (setq hentinfo (car (entsel "\nSelect Hatch Pattern to use:")))
;    (If hentinfo
;      (setq hentinfo (entget hentinfo))
;      (princ "\nMissed. Try again.")
;    )
;  )
   (princ "\n选择多个要合并的填充样式,第一个对象将视为源对象:")
    (setq ss (ssget '((0 . "HATCH"))))
   
   (if (and  ss (>(sslength ss)1))
   
   (progn  
   ;(princ "\n?*********")
  (setq hentinfo (entget(ssname  ss 0)))
  
  (setq MergedHatchList (list (cons 0 "HATCH") (cons 100 "AcDbEntity") (assoc 8 hentinfo)(cons 100 "AcDbHatch")
                              (assoc 10 hentinfo) (assoc 210 hentinfo) (assoc 2 hentinfo) (assoc 70 hentinfo)
                              (assoc 71 hentinfo) (cons 91 (sslength ss))
                        )
        i -1
        seedpt# 0
        ent# 0
  )
(if (assoc 62 hentinfo) (setq MergedHatchList (append MergedHatchList (list(assoc 62 hentinfo)) )))
  (repeat (sslength ss)
    (setq n -1
          entinfo (entget (ssname ss (setq i (1+ i))))
          entinfo2 (member (assoc 92 entinfo) entinfo)
          entinfo2 (reverse (cdr (member (assoc 75 entinfo2) (reverse entinfo2))))
          ent# (+ ent# (cdr (assoc 91 entinfo)))
          seedpt# (+ seedpt# (cdr (assoc 98 entinfo)))
          seedpts (append
                    seedpts
                    (cdr (member (assoc 98 entinfo) entinfo))
                  )
          MergedHatchList (append
                            MergedHatchList
                            entinfo2
                          )
    )
    (entdel (ssname ss i))
  )
  (setq MergedHatchList (subst
                          (cons 91 ent#)
                          (assoc 91 MergedHatchList)
                          MergedHatchList
                        )
        MergedHatchList (append
                          MergedHatchList
                          (append
                            (reverse (cdr (member (assoc 98 hentinfo) (reverse (member (assoc 75 hentinfo) hentinfo)))))
                            (cons (cons 98 seedpt#) seedpts)
                          )
                        )
  )
  (if (= (cdr (assoc 71 hentinfo)) 1)
    (setq MergedHatchList (append
                            MergedHatchList
                            '((-3 ("ACAD" (1010 0.0 0.0 0.0))))
                          )
    )
  )
  (entmake MergedHatchList)
  (setq ent (entlast))
  (if (= (cdr (assoc 71 hentinfo)) 1)
    (mapcar
      '(lambda (x / entlist)
         (setq entlist (entget (cdr x)))
         (entmod (subst
                   (cons 330 ent)
                   (assoc 330 entlist)
                   entlist
                 )
         )
       )
      (massoc 330 MergedHatchList)
    )
  )
  
  )
  (princ "\n选择集为空或只有一个填充对象")
  
  
  )
(princ)
)

评分

参与人数 1明经币 +1 收起 理由
lidaxiu + 1

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2016-4-15 11:26:51 | 显示全部楼层
感谢楼上大神,我的困惑终于解决了,附上插件。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 0 反对 2

使用道具 举报

发表于 2021-6-7 17:07:20 | 显示全部楼层
感谢 myjping
回复 支持 0 反对 1

使用道具 举报

发表于 2022-8-25 17:38:39 | 显示全部楼层
chlshw 发表于 2016-4-15 11:26
感谢楼上大神,我的困惑终于解决了,附上插件。

你人品有问题,你的附件还是楼主的内容。骗子
发表于 2014-8-5 23:32:28 | 显示全部楼层
大师怎么使用的啊?我选了2区域个相同种类的填充图案。命令后图案全消失了。比较迷惑。

点评

俺也一样。  发表于 2024-9-13 10:08
发表于 2014-8-6 07:12:40 | 显示全部楼层
434939575 发表于 2014-8-5 23:32
大师怎么使用的啊?我选了2区域个相同种类的填充图案。命令后图案全消失了。比较迷惑。

看这里 http://autocadtips.wordpress.com ... tches-join-hatches/
发表于 2014-8-6 08:16:41 | 显示全部楼层
好的
发表于 2014-8-6 09:11:35 | 显示全部楼层
本帖最后由 spp_wall 于 2014-8-6 09:18 编辑

我选了2区域个相同种类的填充图案。命令后图案全消失了。比较迷惑。

LZ的链接打开也没东西!!!

点评

改好了,是我画蛇填足,加了个的选项,但一有颜色随层,就出错  发表于 2014-8-6 09:36
发表于 2014-8-6 11:39:10 | 显示全部楼层
本帖最后由 spp_wall 于 2014-8-6 11:47 编辑

好像理解错意思了
程序是 把一个填充刷成另一个填充  在把2个填充合并

我还以为是2个不同的填充图案合并成一个 填充图案
发表于 2014-8-6 12:09:17 | 显示全部楼层
非常不错,以前搞了好久这个程序,没有搞定,谢谢大师,这个很常用到的
发表于 2014-8-6 13:36:42 | 显示全部楼层
谢谢分享。
发表于 2014-8-7 09:02:25 | 显示全部楼层
感谢 myjping 分享程序!
发表于 2014-8-7 13:22:44 | 显示全部楼层
不能批量没用~~~~~~~~~~~~~也还是顶一个
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-17 06:26 , Processed in 0.209678 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表