明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: fire9527

[已解答] 求一个快速填充的程序

  [复制链接]
发表于 2014-6-17 10:30 | 显示全部楼层
新建文件试试,应该原来的函数没有覆盖掉,我这没问题
回复

使用道具 举报

发表于 2014-6-19 09:18 | 显示全部楼层
非常好用,感谢edata大神~~~~~~
回复

使用道具 举报

 楼主| 发表于 2014-6-19 11:11 | 显示全部楼层
edata 发表于 2014-6-17 10:30
新建文件试试,应该原来的函数没有覆盖掉,我这没问题

可以了,很顺手、很方便的程序,非常感谢!
回复

使用道具 举报

发表于 2014-6-19 16:44 | 显示全部楼层
@edata,用完会改变以后所有的默认图层的颜色,跟线型,有没有办法改?
回复

使用道具 举报

发表于 2014-11-23 01:04 | 显示全部楼层
请问怎么删除填充边界啊???可以吗.大大们在吗?
回复

使用道具 举报

发表于 2014-12-21 22:18 | 显示全部楼层
hooboxu 发表于 2014-11-23 01:04
请问怎么删除填充边界啊???可以吗.大大们在吗?

2楼和10楼的都是好程序,10楼的本身就是可以删除边界的啊?
回复

使用道具 举报

发表于 2014-12-21 22:21 | 显示全部楼层
2#的加一句话就可以删除边界了。加完是这样子的:
回复

使用道具 举报

发表于 2014-12-21 22:22 | 显示全部楼层

RE: 求一个快速填充的程序

迹扬 发表于 2014-12-21 22:21
2#的加一句话就可以删除边界了。加完是这样子的:


;;快速填充command版本

;;code by edata@mjtd

;;2014-6-16

;;变函数参数

;;(sk_hatch_cmd sk_ha_name sk_ha_scale sk_ha_ang)

;;sk_ha_name 填充名字符串

;;sk_ha_scale 填充比例 数字或数字字符串

;;sk_ha_ang 填充角度 0-360度数字或数字字符串

;;例子(sk_hatch_cmd "earth" 100 0.0)

(defun sk_hatch_cmd( sk_ha_name sk_ha_scale sk_ha_ang / bak_clay bak_col bak_cmd en0 en1 en2 p1 p3)

  (or sk_ha_name (setq sk_ha_name "earth"))

  (or sk_ha_scale (setq sk_ha_scale 100))

  (or sk_ha_ang (setq sk_ha_ang 0.0))

  (setq bak_clay(getvar 'clayer)

        bak_col(getvar 'cecolor)

        bak_cmd(getvar 'cmdecho)

        )  

  (if(not(tblobjname "layer" "00-填充"))

    (entmake (list '(0 . "LAYER")

                   '(100 . "AcDbSymbolTableRecord")

                   '(100 . "AcDbLayerTableRecord")

                   '(70 . 0)

                   '(6 . "Continuous")

                   (cons 2 "00-填充")

                   (cons 62 5)

             )

    )

    )

  (setvar 'clayer "00-填充")

  (setvar 'cecolor "8")

  (setvar 'cmdecho 0)

  (while (and(setq p1(getpoint "\n指定第一点:"))

                 (setq p3(getcorner p1 "\n指定对角点:"))

                 )

    (progn

      (if(> (getvar 'cmdactive) 0)(command))

      (setq en0(entlast))

      (command "_.RECTANG" "_non" p1 "_non" p3)

      (setq en1(entlast))

      (command "-bhatch" "p" sk_ha_name sk_ha_scale sk_ha_ang "s" en1 "" "")
      
      (entdel en1)  ;这条是我加的,删除边界

      (if(> (getvar 'cmdactive) 0)(command))

      (setq en2(entlast))

      (if(sk_h5_eq en1 en2)

        (progn

        (alert "创建填充失败.")

        (if (not(sk_h5_eq en1 en0)) (entdel en1))

        )

        )

      )

    )  

  (and bak_clay(setvar 'clayer bak_clay))

  (and bak_col(setvar 'cecolor bak_col))

  (and bak_cmd(setvar 'cmdecho bak_cmd))  

  (princ)

  )

(defun sk_dxf(ent code)(cdr(assoc code (entget ent))))

(defun sk_h5_eq(ent1 ent2)

  (= (sk_dxf ent1 5)(sk_dxf ent2 5))

  )

(defun c:tt()

  (sk_hatch_cmd "earth" 100 0.0)

  (princ)

  )

(defun c:tt2()

  (sk_hatch_cmd "angle" 100 0.0)

  (princ)

  )
回复

使用道具 举报

发表于 2014-12-26 10:20 | 显示全部楼层
方便的填充程序  不错哦
回复

使用道具 举报

发表于 2015-1-19 17:25 | 显示全部楼层
收藏备用,好东西啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-20 12:42 , Processed in 0.714567 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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