明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1230|回复: 7

[提问] 关于填充今天发现了一个不错的插件,请教修改!

[复制链接]
发表于 2022-11-9 11:08:01 | 显示全部楼层 |阅读模式
本帖最后由 cheefeel 于 2022-11-10 13:13 编辑

原帖地址:
http://bbs.mjtd.com/thread-95805-1-1.html

应该已经联系不上作者了,下面举例了一段预设代码,
请教将填充预设为注释性,应该加一行怎样的代码?
  1. (defun tianchong1 ()
  2. (prompt "\n当前样式: ①玻璃 比例400\n")
  3. (prompt "\n请选择对象,跳过则为拾取内部点:\n")
  4. (command "color" "8")
  5. (command "bhatch" "p" "AR-RROOF" "400" "45" "")
  6. )




发表于 2022-11-9 11:41:13 | 显示全部楼层
(vl-cmdf "_.hatch" "an" "y" "p" "AR-RROOF" "400" "45" "")

点评

非常感谢!!!  发表于 2022-11-9 13:08

评分

参与人数 1明经币 +1 金钱 +5 收起 理由
cheefeel + 1 + 5 很给力!

查看全部评分

 楼主| 发表于 2022-11-9 13:14:21 | 显示全部楼层

(vl-cmdf "_.hatch" "an" "y" "p" "AR-RROOF" "400" "45" "" "LA" "填充图层")
这样子是不是就把填充放到名为 填充图层 的图层里去了?如果不存在次图层的话,是报错还是创建这个层呢?
 楼主| 发表于 2022-11-9 13:20:01 | 显示全部楼层
e2002 发表于 2022-11-9 11:41
(vl-cmdf "_.hatch" "an" "y" "p" "AR-RROOF" "400" "45" "")

另外我问一下为什么是 (vl-cmdf "_.hatch"
而不是 (command "_hatch"
发表于 2022-11-9 13:55:12 | 显示全部楼层
cheefeel 发表于 2022-11-9 13:20
另外我问一下为什么是 (vl-cmdf "_.hatch"
而不是 (command "_hatch"

应该都可以。前者返回T。
发表于 2022-11-9 14:55:05 | 显示全部楼层
你可以查阅一下 vl-cmdf 函数的说明文档,了解其与传统的 command 函数的差异。
 楼主| 发表于 2022-11-10 13:06:21 | 显示全部楼层
本帖最后由 cheefeel 于 2022-11-11 20:44 编辑
e2002 发表于 2022-11-9 11:41
(vl-cmdf "_.hatch" "an" "y" "p" "AR-RROOF" "400" "45" "")

又来求助大佬了,他这套代码中,别的填充都没问题。
但如果填充是SOLID的话,有的时候未选择任何对象的情况下选择填充样式编号后回车,就会立刻填充一个对象,这个对象往往是鼠标范围附近的。

  1. (defun c:DefaultHatch (/ opt )
  2. (setvar "measurement" 1)     ; 设置公制单位
  3. (setvar "cmdecho" 0)         ; 关闭命令响应
  4. (setq oldcolor (getvar "cecolor"))
  5. (if *num_HType*
  6.   (setq num_HType (getint (strcat "\n选择填充样式  ①实体 ②钢砼 ③斜线 ④玻璃 ⑤毛面 ⑥60板 ⑦木纹 ⑧填柱 ⑨填墙: <" (rtos *num_HType* 2 0) ">")))
  7.   (setq num_HType (getint "\n选择填充样式  ①实体 ②钢砼 ③斜线 ④玻璃 ⑤毛面 ⑥60板 ⑦木纹 ⑧填柱 ⑨填墙: " ))
  8. )
  9. (if (not num_HType)
  10.   (setq num_HType *num_HType*)
  11.   (setq *num_HType* num_HType)
  12. )
  13. (setq opt num_HType)

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

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

  22. (command "color" oldcolor)
  23. (princ)
  24. )
  25. (defun tianchong1 ()
  26. (prompt "\n当前样式: ①实体\n")
  27. (prompt "\n请选择对象,跳过则为拾取内部点:\n")
  28. (command "bhatch" "an" "y" "p" "SOLID" "1" "0" "")
  29. )
  30. (defun tianchong2 ()
  31. (prompt "\n当前样式: ②钢砼\n")
  32. (prompt "\n请选择对象,跳过则为拾取内部点:\n")
  33. (command "bhatch" "an" "y" "p" "★钢砼" "0.5" "0" "")
  34. )



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

本版积分规则

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

GMT+8, 2024-11-16 02:33 , Processed in 0.160552 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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