明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 33006|回复: 110

[资源] 预设常用填充V1.2——用LISP来快速完成常用填充

    [复制链接]
发表于 2012-7-31 00:36 | 显示全部楼层 |阅读模式
本帖最后由 raimo 于 2013-5-8 10:05 编辑

经常在明经获得各位的帮助,现在把我自己研究的一个小工具拿出来分享,算是完成一直想回馈论坛的心愿吧
这次的版本我很满意了,应该是最终版,所以我重新整理发帖,方便大家阅读下载。

;;预设常用填充-------------------- TC
;;V1.2       明经raimo    2012.07.30
;;优化代码,去掉拼凑代码重新设计
;;增加记忆功能,提高填充的使用方便性
;;在V1.1的基础上实现点选,与对象选择并存,并且都可以多选。
;;非常感谢ZZXXQQ版主的指点与帮助!!
;;----------------------------------


附个演示动画


LISP源码下载包(内附源码及CAD扩展填充文件)



== 说  明 ==
这个工具为快速填充常用图案而设计,比如我们装饰行业制图常用的,玻璃,木地板,地砖,实心墙体。。。
其中一些设置我说明一下  
1. 使用命令是TC  ---填充的意思
2. 数字1-9选择9种常用填充图案,可以根据这个模式自行增减和调整
3. 木地板,木夹板,钢砼..几种填充必须使用我附件里的填充文件才可以用,CAD默认的文件里没有
    也可以自己修改源码,设置相应的填充图案
   (填充图案需要替换掉系统目录下CAD自带的 acad.pat,acadiso.pat,路径可自行搜索一下,在C盘的)


以前帖子链接:
预设常用填充V1.1——用LISP来快速完成常用填充
http://bbs.mjtd.com/thread-93852-1-1.html

本帖子中包含更多资源

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

x

评分

参与人数 3明经币 +3 收起 理由
tigcat + 1 很给力!
革天明 + 1 谢谢楼主分享
caoliu023 + 1 感谢分享,下来学习

查看全部评分

本帖被以下淘专辑推荐:

发表于 2023-11-17 11:23 | 显示全部楼层
  1. ;;预设常用 -------------------- TC
  2. ;;V1.2      
  3. ;;优化代码,去掉拼凑代码重新设计
  4. ;;增加记忆功能,提高填充的使用方便性
  5. ;;在V1.1的基础上实现点选,与对象选择并存,并且都可以多选。

  6. ;;----------------------------------
  7. (defun c:TC (/ opt oldcolor num_HType *num_HType* ss )
  8. (setvar "measurement" 1)     ; 设置公制单位
  9. (setvar "cmdecho" 0)         ; 关闭命令响应
  10. (setq oldcolor (getvar "cecolor"))
  11. (command "_layer"   "m"   "4BD-METAL"    "c" "201" ""    "l" "c" ""   "")
  12. (setvar "clayer" "4BD-METAL")
  13. (if *num_HType*
  14.   (setq num_HType (getint (strcat "\n选择填充样式  ①BD玻璃实体 ②BD金属实体 ③拉丝80 ④地砖300 ⑤地砖800 ⑥木地板 ⑦木夹板 ⑧木纹 ⑨钢砼: <" (rtos *num_HType* 2 0) ">")))
  15.   (setq num_HType (getint "\n选择填充样式  ①BD玻璃实体 ②BD金属实体 ③拉丝80 ④地砖300 ⑤地砖800 ⑥木地板 ⑦木夹板 ⑧木纹 ⑨钢砼: " ))
  16. )
  17. (if (not num_HType)
  18.   (setq num_HType *num_HType*)
  19.   (setq *num_HType* num_HType)
  20. )
  21. (setq opt num_HType)

  22. (if (< 0 opt 10) (eval (read(strcat "(tianchong" (itoa opt) ")"))));根据选项参数执行填充样式

  23. (if (setq ss (ssget))
  24.   (command "bhatch" "s" ss "" "") ;如果选择集不为空,则执行对象填充
  25. (progn  ;如果选择集为空,则执行点选命令
  26.   (prompt "\n请拾取填充内部点:\n")
  27.   (command "bhatch" pause)
  28.   (while (> (getvar "CMDACTIVE") 0) (command PAUSE))
  29. ))

  30. (command "color" oldcolor)
  31. (princ)
  32. )


  33. (defun tianchong1 ()
  34. (prompt "\n当前样式: ①BD玻璃实体填充\n")
  35. (prompt "\n请选择对象,跳过则为拾取内部点:\n")
  36. (command "color" "131")
  37.   (command "bhatch" "p" "solid" "")
  38. )
  39. (defun tianchong2 (/ ss)
  40. (command "_layer"   "m"   "4BD-METAL"    "c" "201" ""    "l" "c" ""   "")

  41. (prompt "\n当前样式: ②BD金属实体填充\n")
  42. (prompt "\n请选择对象,跳过则为拾取内部点:\n")
  43. (command "color" "201")
  44. (setvar "clayer" "4BD-METAL")
  45. (command "bhatch" "p" "solid" "")
  46. (setq ss (entlast))
  47. (COMMAND "CHANGE" SS "" "PROPERTIES" "la" "4BD-METAL" "")

  48. )
  49. (defun tianchong3 ()
  50. (prompt "\n当前样式: ③拉丝间距80\n")
  51. (prompt "\n请选择对象,跳过则为拾取内部点:\n")
  52. (command "color" "8")
  53. (command "bhatch" "p" "U" "0" "80" "N" "")
  54. )
  55. (defun tianchong4 ()
  56. (prompt "\n当前样式: ④300x300地砖\n")
  57. (prompt "\n请选择对象,跳过则为拾取内部点:\n")
  58. (command "color" "8")
  59. (command "bhatch" "p" "U" "0" "300" "Y" "")
  60. )
  61. (defun tianchong5 ()
  62. (prompt "\n当前样式: ⑤800x800地砖\n")
  63. (prompt "\n请选择对象,跳过则为拾取内部点:\n")
  64. (command "color" "8")
  65. (command "bhatch" "p" "U" "0" "800" "Y" "")
  66. )
  67. (defun tianchong6 ()
  68. (prompt "\n当前样式: ⑥灰色木地板\n")
  69. (prompt "\n请选择对象,跳过则为拾取内部点:\n")
  70. (command "color" "8")
  71. (command "bhatch" "p" "木地板" "80" "0" "")
  72. )
  73. (defun tianchong7 ()
  74. (prompt "\n当前样式: ⑦暗色木夹板\n")
  75. (prompt "\n请选择对象,跳过则为拾取内部点:\n")
  76. (command "color" "250")
  77. (command "bhatch" "p" "木夹板" "1" "0" "")
  78. )
  79. (defun tianchong8 ()
  80. (prompt "\n当前样式: ⑧暗色木纹\n")
  81. (prompt "\n请选择对象,跳过则为拾取内部点:\n")
  82. (command "color" "250")
  83. (command "bhatch" "p" "木纹01" "10" "0" "")
  84. )
  85. (defun tianchong9 ()
  86. (prompt "\n当前样式:  ⑨暗色钢砼\n")
  87. (prompt "\n请选择对象,跳过则为拾取内部点:\n")
  88. (command "color" "250")
  89. (command "bhatch" "p" "钢筋混凝土" "20" "0" "")
  90. )


本帖子中包含更多资源

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

x
发表于 2017-10-27 20:50 | 显示全部楼层
我的目的是先点选物体,没有点选物体就执行选择物体

改了这两行代码,

但就为什么不行?

(if (setq ss (ssget))
  (prompt "\n请拾取填充内部点:\n")
  (command "bhatch" pause)
  (while (> (getvar "CMDACTIVE") 0) (command PAUSE))
  (progn  ;如果选择集为空,则执行点选命令
  (command "bhatch" "s" ss "" "") ;如果选择集不为空,则执行对象填充
))


发表于 2023-11-16 22:10 | 显示全部楼层
小毛草 发表于 2020-7-1 11:30
用我改的那一版本基本可以达到了!有20个常用材质!

图层一直改不过来?一直是t填充?

本帖子中包含更多资源

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

x
 楼主| 发表于 2012-7-31 00:40 | 显示全部楼层
本帖最后由 raimo 于 2012-7-31 00:42 编辑

感谢ZZXXQQ版主的帮助!!是你解决了我一下午都没清除的BUG,还帮我优化了选择代码

也很感谢 dongya1235 ,是你的意见让我这次终于下决心去完善这个工具,
我是菜鸟,很多东西边学边做,连续填充的问题拖了好久,这次终于了结一个心事,真开心
发表于 2012-7-31 05:32 来自手机 | 显示全部楼层
强烈支持楼主。
发表于 2012-7-31 06:55 | 显示全部楼层
地板坐个,以表支持
发表于 2012-7-31 08:41 | 显示全部楼层
强烈支持楼主..... ....
发表于 2012-7-31 08:56 | 显示全部楼层
强烈支持
发表于 2012-7-31 09:43 | 显示全部楼层
也可以自己修改源码,设置相应的填充图案

怎么修改 增加相应的填充图案
 楼主| 发表于 2012-7-31 11:40 | 显示全部楼层
本帖最后由 raimo 于 2012-7-31 11:42 编辑
spp_wall 发表于 2012-7-31 09:43
也可以自己修改源码,设置相应的填充图案

怎么修改 增加相应的填充图案

源码都给你了,怎么改看看不就知道。。
本身程序就很简单,比较一下几个填充图案的变换语句,很容易明白的
发表于 2012-7-31 13:14 | 显示全部楼层
真的不错,一般墙体.玻璃.300x300,600x600,实体.梁.地板.木纹这类填充用得最多
发表于 2012-8-1 19:43 | 显示全部楼层
哈哈 我前段时间也写了个填充程序,不过是简单的,楼主这下弄的好全,哈哈 太好了 再接再厉,学习了~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-27 09:09 , Processed in 0.229463 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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