明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1565|回复: 5

[已解答] 请求大大,这个填充是论坛里的改了一下,但是为什么捕捉老要变成这样?

[复制链接]
发表于 2014-10-16 11:24:42 | 显示全部楼层 |阅读模式
5明经币
;;预设常用填充H
;;V1.2      
;;增加记忆功能,提高填充的使用方便性
;;----------------------------------
(defun c:TC (/ opt oldcolor *error*)
(defun *error* (msg)
(setvar "cecolor""bylayer") ;_ 恢复颜色随层;
(princ "错误信息: ")
(princ msg)      ;_ 打印错误信息
(princ)         
)
(setvar "measurement" 0)     ; 设置公制单位
(setvar "cmdecho" 0)         ; 关闭命令响应
(setvar "hpassoc" 0)         ;设置填充时不关联
(setq oldcolor (getvar "cecolor"))

(if *num_HType*
  (setq num_HType (getint (strcat "\n选择填充样式  ①墙纸 ②混凝土 ③钢筋混凝土 ④玻璃 ⑤地砖300 ⑥地砖600 ⑦大理石 ⑧木纹 ⑨拉丝间距50 ⑩实体填充 ⑾水平板剖 ⑿垂直板剖⒀磨砂⒁木剖⒂石材剖⒃金属剖: <" (rtos *num_HType* 2 0) ">")))
  (setq num_HType (getint "\n选择填充样式   ①墙纸 ②混凝土 ③钢筋混凝土 ④玻璃 ⑤地砖300 ⑥地砖600 ⑦大理石 ⑧木纹 ⑨拉丝间距50 ⑩实体填充 ⑾水平板剖 ⑿垂直板剖⒀磨砂⒁木剖⒂石材剖⒃金属剖: " ))
)
(if (not num_HType)
  (setq num_HType *num_HType*)
  (setq *num_HType* num_HType)
)
(setq opt num_HType)

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

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

(command "color" oldcolor)   ;设置为原有颜色
;;(setvar "cecolor""bylayer")  ;设置颜色随层
(princ)
)
(defun tianchong1 ()
(prompt "\n当前样式: ①墙纸\n")
(prompt "\n请选择对象,跳过则为拾取内部点:\n")
(command "color" "250")
(command "bhatch" "p" "CROSS" "150" "0" "")
)
(defun tianchong2 ()
(prompt "\n当前样式: ②混凝土\n")
(prompt "\n请选择对象,跳过则为拾取内部点:\n")
(command "color" "250")
(command "bhatch" "p" "混凝土" "30" "0" "")
)
(defun tianchong3 ()
(prompt "\n当前样式: ③钢筋混凝土\n")
(prompt "\n请选择对象,跳过则为拾取内部点:\n")
(command "color" "250")
(command "bhatch" "p" "钢筋混凝土" "30" "0" "")
)
(defun tianchong4 ()
(prompt "\n当前样式: ④玻璃\n")
(prompt "\n请选择对象,跳过则为拾取内部点:\n")
(command "color" "250")
(command "bhatch" "p" "AR-RROOF" "350" "45" "")
)
(defun tianchong5 ()
(prompt "\n当前样式: ⑤300x300地砖\n")
(prompt "\n请选择对象,跳过则为拾取内部点:\n")
(command "color" "250")
(command "bhatch" "p" "U" "0" "300" "Y" "")
)
(defun tianchong6 ()
(prompt "\n当前样式: ⑥600x600地砖\n")
(prompt "\n请选择对象,跳过则为拾取内部点:\n")
(command "color" "250")
(command "bhatch" "p" "U" "0" "600" "Y" "")
)
(defun tianchong7 ()
(prompt "\n当前样式: ⑦大理石\n")
(prompt "\n请选择对象,跳过则为拾取内部点:\n")
(command "color" "250")
(command "bhatch" "p" "大理石" "100" "0" "")
)
(defun tianchong8 ()
(prompt "\n当前样式: ⑧木纹\n")
(prompt "\n请选择对象,跳过则为拾取内部点:\n")
(command "color" "250")
(command "bhatch" "p" "木纹02" "80" "90" "")
)
(defun tianchong9 ()
(prompt "\n当前样式: ⑨拉丝间距50\n")
(prompt "\n请选择对象,跳过则为拾取内部点:\n")
(command "color" "250")
(command "bhatch" "p" "U" "0" "50" "N" "")
)
(defun tianchong10 ()
(prompt "\n当前样式:  ⑩实体填充\n")
(prompt "\n请选择对象,跳过则为拾取内部点:\n")
(command "color" "250")
(command "bhatch" "p" "SOLID" "0" "0" "")
)
(defun tianchong11 ()
(prompt "\n当前样式: ⑾水平板剖\n")
(prompt "\n请选择对象,跳过则为拾取内部点:\n")
(command "color" "250")
(command "bhatch" "p" "cork" "4" "90" "")
)
(defun tianchong12 ()
(prompt "\n当前样式: ⑿垂直板剖\n")
(prompt "\n请选择对象,跳过则为拾取内部点:\n")
(command "color" "250")
(command "bhatch" "p" "cork" "4" "0" "")
)
(defun tianchong13 ()
(prompt "\n当前样式: ⒀磨砂\n")
(prompt "\n请选择对象,跳过则为拾取内部点:\n")
(command "color" "250")
(command "bhatch" "p" "DOTS" "500" "0" "")
)
(defun tianchong14 ()
(prompt "\n当前样式: ⒁砖剖\n")
(prompt "\n请选择对象,跳过则为拾取内部点:\n")
(command "color" "250")
(command "bhatch" "p" "ANSI31" "40" "0" "")
)
(defun tianchong15 ()
(prompt "\n当前样式: ⒂石材剖\n")
(prompt "\n请选择对象,跳过则为拾取内部点:\n")
(command "color" "250")
(command "bhatch" "p" "ANSI33" "40" "0" "")
)
(defun tianchong16 ()
(prompt "\n当前样式: ⒃金属剖\n")
(prompt "\n请选择对象,跳过则为拾取内部点:\n")
(command "color" "250")
(command "bhatch" "p" "ANSI32" "40" "0" "")
)



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

最佳答案

查看完整内容

事先保存捕捉设置
发表于 2014-10-16 11:24:43 | 显示全部楼层
事先保存捕捉设置
  1. ;;预设常用填充H
  2. ;;V1.2      
  3. ;;增加记忆功能,提高填充的使用方便性
  4. ;;----------------------------------
  5. (defun c:TC (/ opt oldcolor *error*)
  6. (defun *error* (msg)
  7. (setvar "cecolor" "bylayer") ;_ 恢复颜色随层;
  8. (if oldos (setvar "OSMODE" oldos))
  9. (princ "错误信息: ")
  10. (princ msg)      ;_ 打印错误信息
  11. (princ)         
  12. )
  13. (setvar "measurement" 0)     ;设置公制单位
  14. (setvar "cmdecho" 0)         ;关闭命令响应
  15. (setvar "hpassoc" 0)         ;设置填充时不关联
  16. (setq oldcolor (getvar "cecolor"))
  17. (setq oldos (getvar "OSMODE"))
  18. (setq tcys "\n选择填充样式:1墙纸/2混凝土/3钢筋混凝土/4玻璃/5地砖300/6地砖600/7大理石/8木纹/9拉丝间距50/10实体填充/11水平板剖/12垂直板剖/13磨砂/14木剖/15石材剖/16金属剖: ")
  19. (if *num_HType*
  20. (setq num_HType (getint (strcat tcys "<" (rtos *num_HType* 2 0) ">")))
  21. (setq num_HType (getint tcys))
  22. )
  23. (if (not num_HType)
  24. (setq num_HType *num_HType*)
  25. (setq *num_HType* num_HType)
  26. )
  27. (setq opt num_HType)
  28. (command "color" "250")
  29. (if (< 0 opt 17) (eval(read(strcat "(tianchong" (itoa opt) ")"))));根据选项参数执行填充样式

  30. (if (setq ss (ssget))
  31. (command "bhatch" "s" ss "" "") ;如果选择集不为空,则执行对象填充
  32. (progn  ;如果选择集为空,则执行点选命令
  33. (prompt "\n请拾取填充内部点:\n")
  34. (command "bhatch" pause)
  35. (while (> (getvar "CMDACTIVE") 0) (command PAUSE))
  36. ))
  37. (command "color" oldcolor)   ;设置为原有颜色
  38. ;;(setvar "cecolor""bylayer")  ;设置颜色随层
  39. (setvar "OSMODE" oldos)
  40. (princ)
  41. )
  42. (defun tianchong1 ()
  43. (prompt "\n当前样式: ①墙纸\n请选择对象,跳过则为拾取内部点: ")
  44. (command "bhatch" "p" "CROSS" "150" "0" "")
  45. )
  46. (defun tianchong2 ()
  47. (prompt "\n当前样式: ②混凝土\n请选择对象,跳过则为拾取内部点:")
  48. (command "bhatch" "p" "混凝土" "30" "0" "")
  49. )
  50. (defun tianchong3 ()
  51. (prompt "\n当前样式: ③钢筋混凝土\n请选择对象,跳过则为拾取内部点:")
  52. (command "bhatch" "p" "钢筋混凝土" "30" "0" "")
  53. )
  54. (defun tianchong4 ()
  55. (prompt "\n当前样式: ④玻璃\n请选择对象,跳过则为拾取内部点:\n")
  56. (command "bhatch" "p" "AR-RROOF" "350" "45" "")
  57. )
  58. (defun tianchong5 ()
  59. (prompt "\n当前样式: ⑤300x300地砖\n请选择对象,跳过则为拾取内部点:")
  60. (command "bhatch" "p" "U" "0" "300" "Y" "")
  61. )
  62. (defun tianchong6 ()
  63. (prompt "\n当前样式: ⑥600x600地砖\n请选择对象,跳过则为拾取内部点:")
  64. (command "bhatch" "p" "U" "0" "600" "Y" "")
  65. )
  66. (defun tianchong7 ()
  67. (prompt "\n当前样式: ⑦大理石\n请选择对象,跳过则为拾取内部点:")
  68. (command "bhatch" "p" "大理石" "100" "0" "")
  69. )
  70. (defun tianchong8 ()
  71. (prompt "\n当前样式: ⑧木纹\n请选择对象,跳过则为拾取内部点:")
  72. (command "bhatch" "p" "木纹02" "80" "90" "")
  73. )
  74. (defun tianchong9 ()
  75. (prompt "\n当前样式: ⑨拉丝间距50\n请选择对象,跳过则为拾取内部点:")
  76. (command "bhatch" "p" "U" "0" "50" "N" "")
  77. )
  78. (defun tianchong10 ()
  79. (prompt "\n当前样式:  ⑩实体填充\n请选择对象,跳过则为拾取内部点:")
  80. (command "bhatch" "p" "SOLID" "0" "0" "")
  81. )
  82. (defun tianchong11 ()
  83. (prompt "\n当前样式: ⑾水平板剖\n请选择对象,跳过则为拾取内部点:")
  84. (command "bhatch" "p" "cork" "4" "90" "")
  85. )
  86. (defun tianchong12 ()
  87. (prompt "\n当前样式: ⑿垂直板剖\n请选择对象,跳过则为拾取内部点:")
  88. (command "bhatch" "p" "cork" "4" "0" "")
  89. )
  90. (defun tianchong13 ()
  91. (prompt "\n当前样式: ⒀磨砂\n请选择对象,跳过则为拾取内部点:")
  92. (command "bhatch" "p" "DOTS" "500" "0" "")
  93. )
  94. (defun tianchong14 ()
  95. (prompt "\n当前样式: ⒁砖剖\n请选择对象,跳过则为拾取内部点:")
  96. (command "bhatch" "p" "ANSI31" "40" "0" "")
  97. )
  98. (defun tianchong15 ()
  99. (prompt "\n当前样式: ⒂石材剖\n请选择对象,跳过则为拾取内部点:")
  100. (command "bhatch" "p" "ANSI33" "40" "0" "")
  101. )
  102. (defun tianchong16 ()
  103. (prompt "\n当前样式: ⒃金属剖\n请选择对象,跳过则为拾取内部点:")
  104. (command "bhatch" "p" "ANSI32" "40" "0" "")
  105. )
回复

使用道具 举报

发表于 2014-10-16 11:45:39 | 显示全部楼层
-bhatch会临时禁用捕捉,好像没办法改
回复

使用道具 举报

 楼主| 发表于 2014-10-16 16:26:35 | 显示全部楼层
唉。不知道哪里出错了,不光是这充填的问题了。现在好多VLX打包的命令都会锁定上面的捕捉,清也不清不了……。
回复

使用道具 举报

 楼主| 发表于 2014-10-19 18:06:07 | 显示全部楼层
谢谢ZZXXQQ 的再次帮忙 ,成分感谢,在出差,回去试试 !
回复

使用道具 举报

 楼主| 发表于 2014-10-25 11:19:20 | 显示全部楼层
谢谢版主大大,打包其它的LSP也检查出了问题.谢谢修正
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-24 01:28 , Processed in 0.170951 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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