明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2154|回复: 7

多个 闭合 多段线 的 填充 求余 循环

[复制链接]
发表于 2012-12-13 20:49:02 | 显示全部楼层 |阅读模式
图中有很多个 闭合的多段线 我给定了16个填充图案 我想到0~15个填充完成后又从0~15填充 用 rem 求余在循环 但是不会用 我写了一个 又臭有长的代码 新手 只能想到一些简单的东西去一个个的判断 求高手指点迷津

  1. (defun c:ttx()
  2.   (vl-load-com)
  3.   (setvar "cmdecho" 0)
  4.   (setvar "osmode" 0)
  5.   (setq b (getreal "\n输入线性比例<0.05>"))
  6.   (if (or (= b nil)(= b 0))
  7.     (setq b 0.05)
  8.   )
  9.   (setq s 0)
  10.   (if (setq ss (ssget '((0 . "*POLYLINE"))))
  11.     (progn
  12.       (setq i -1)
  13.       (command "layer"  "n" "填充" "c" 4   "填充" "s" "填充" "" )
  14.       (repeat (sslength ss)
  15.         (setq en (ssname ss (setq i (1+ i)))) ;_图元名
  16.         (setq ent (entget en))
  17.     (if (= i 0)
  18.             (command "_bhatch" "p" "TRIANG" b "0" "s" en "" "")
  19.     )
  20.     (if (= i 1)
  21.             (command "_bhatch" "p" "GRAVEL" b "0" "s" en "" "")
  22.     )
  23.     (if (= i 2)
  24.             (command "_bhatch" "p" "HEX" b "0" "s" en "" "")
  25.     )
  26.     (if (= i 3)
  27.             (command "_bhatch" "p" "HONEY" b "0" "s" en "" "")
  28.     )
  29.     (if (= i 4)
  30.             (command "_bhatch" "p" "MUDST" b "0" "s" en "" "")
  31.     )
  32.     (if (= i 5)
  33.             (command "_bhatch" "p" "PLAST" b "0" "s" en "" "")
  34.     )
  35.     (if (= i 6)
  36.             (command "_bhatch" "p" "SQUARE" b "0" "s" en "" "")
  37.     )
  38.     (if (= i 7)
  39.             (command "_bhatch" "p" "TRANS" b "0" "s" en "" "")
  40.     )
  41.     (if (= i 8)
  42.             (command "_bhatch" "p" "PLASTI" b "0" "s" en "" "")
  43.     )
  44.     (if (= i 9)
  45.             (command "_bhatch" "p" "NET" b "0" "s" en "" "")
  46.     )
  47.     (if (= i 10)
  48.             (command "_bhatch" "p" "ZIGZAG" b "0" "s" en "" "")
  49.     )
  50.     (if (= i 11)
  51.             (command "_bhatch" "p" "STEEL" b "0" "s" en "" "")
  52.     )
  53.     (if (= i 12)
  54.             (command "_bhatch" "p" "NET3" b "0" "s" en "" "")
  55.     )
  56.     (if (= i 13)
  57.             (command "_bhatch" "p" "BRICK" b "0" "s" en "" "")
  58.     )
  59.     (if (= i 14)
  60.             (command "_bhatch" "p" "BOX" b "0" "s" en "" "")
  61.     )
  62.     (if (= i 15)
  63.             (command "_bhatch" "p" "HOUND" b "0" "s" en "" "")
  64.     )
  65.         )
  66.       )
  67.     )
  68. )

本帖子中包含更多资源

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

x
发表于 2012-12-13 21:39:39 | 显示全部楼层
本帖最后由 Gu_xl 于 2012-12-13 22:01 编辑

将填充图案列成表
(setq l '( "TRIANG" "GRAVEL" ...)
(repeat (sslength ss)
...
(setq k (rem i 16))
(command "_bhatch" "p" (nth k l) b "0" "s" en "" "")
)
发表于 2012-12-13 21:48:39 | 显示全部楼层
本帖最后由 ZZXXQQ 于 2012-12-13 21:55 编辑

  1. ;循环填充 明经 zzmm 2012.12.13 ZZXXQQ 改
  2. (defun c:ttx()
  3. (vl-load-com)
  4. (setvar "cmdecho" 0)
  5. (setvar "osmode" 0)
  6. (setq b (getreal "\n输入线性比例<0.05>"))
  7. (if (or (= b nil)(= b 0)) (setq b 0.05))
  8. (setq s 0)
  9. (if (setq ss (ssget '((0 . "*POLYLINE")))) (progn
  10.   (setq i -1)
  11.   (command "layer" "M" "填充" "c" 4 "" "")
  12.   (setq hlst
  13.    '("TRIANG" "GRAVEL" "HEX" "HONEY" "MUDST" "PLAST" "SQUARE" "TRANS"
  14.    "PLASTI" "NET" "ZIGZAG" "STEEL" "NET3" "BRICK" "BOX" "HOUND"))
  15.   (repeat (sslength ss)
  16.    (setq en (ssname ss (setq i (1+ i)))) ;_图元名
  17. ;   (setq ent (entget en))
  18.    (setq hname (nth (rem i 16) hlst))
  19.    (command "_bhatch" "p" hname b "0" "s" en "" "")
  20.   )
  21. ))
  22. (princ)
  23. )
发表于 2012-12-13 23:29:16 | 显示全部楼层
选择集应该排个序吧。不然都看不出是按顺序填充的不同图案了。
发表于 2012-12-14 00:33:52 | 显示全部楼层
本帖最后由 xyp1964 于 2012-12-14 00:40 编辑

  1. (defun c:tt ()
  2. (setq lst '("TRIANG" "GRAVEL" "HEX" "HONEY" "MUDST" "PLAST" "SQUARE" "TRANS" "PLASTI" "NET" "ZIGZAG" "STEEL" "NET3" "BRICK" "BOX" "HOUND")
  3. i   -1
  4.   )
  5.   (xyp-MkLaCo "填充" 4)
  6.   (if (setq ss (ssget '((0 . "*POLYLINE"))))
  7.     (while (setq s1 (ssname ss (setq i (1+ i))))
  8.       (setq name (nth (rem i 16) lst))
  9.       (command "_bhatch" "p" name 1 0 "s" s1 "" "")
  10.     )
  11.   )
  12.   (princ)
  13. )

 楼主| 发表于 2012-12-14 09:48:13 | 显示全部楼层
填充 图案的填充比例是整体去统计的
问:图案填充比例能否根据整体调整的 也可以根据 dat 文件 单一的去改动 填充样式与填充比例吗?
      也就是说 首先设定 dat文件里的 样式 与 比例 在次运行程序时可以根据dat文件里面的样式比例来做到?

本帖子中包含更多资源

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

x
发表于 2012-12-14 10:11:57 | 显示全部楼层
本帖最后由 wowan1314 于 2012-12-14 10:15 编辑

(command "_.bhatch" "s" SS "" "P" "图案名称" "填充比例" "0" "")

自己调试看看(command "_.bhatch")然后看它的选项有哪些
发表于 2012-12-27 11:18:57 | 显示全部楼层
wowan1314 发表于 2012-12-14 10:11
(command "_.bhatch" "s" SS "" "P" "图案名称" "填充比例" "0" "")

自己调试看看(command "_.bhatch")然 ...

高手啊,,,我好郁闷啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-3 08:52 , Processed in 0.174972 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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