明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2020|回复: 9

[源码] 快速填充!特别快的那种!唯一要处理的是边界的问题!

  [复制链接]
发表于 2021-9-14 15:38 | 显示全部楼层 |阅读模式

复制代码
  1. ;;快速按名称填充
  2. (defun C:hh(/ new)
  3.   (if (null (setq new (getstring "\n请输入填充名称:<上一次填充图案>")))
  4.   (princ)      
  5.   (command "-bhatch" "p" new "1" "0"  )        
  6.       ))


  7. ;;绘制边界填充 实色
  8. (defun c:1 (/ p0 p1 p2 p3 ent Pls)
  9.     (try-osmode0);取消捕捉
  10.   (if (setq p1 (getpoint (strcat "\n 指定封闭填充区域>>>填充图案为>>" "SOLID")))   
  11.     (command "-bhatch" "properties" "SOLID" p1 "")
  12.     (progn
  13.     (c:zz);恢复捕捉      
  14.     (if (setq p2 (getpoint (strcat "\n指定填充区域第一点>>>填充图案为>>>"  "SOLID" )))
  15.   (progn   
  16.    (setq p0 P2)
  17.    (setq ent (entlast))   
  18.      (while (setq p3 (getpoint p0 "\n指定第二点"))
  19.       (command "PLINE" p2 p3 "")
  20.       ( SETQ P2 P3)
  21.      )  
  22.     (command "PLINE" p2 p0 "")
  23.     (COMMAND "pedit" "m" (last_ent  ent) ""  "j" 0.5 "")  )
  24.     (progn   
  25.      (setq p2 (getpoint (strcat "\n绘制矩形区域>>>填充图案>>>"  "SOLID" )))      
  26.     (setq p3 (getcorner p2 "\n第二点"))
  27.     (command "RECTANG" p2 p3)   
  28.     )  
  29.     )
  30.     (SETQ Pls (entlast))
  31.     (command "-bhatch" "p" "SOLID"  "s" Pls "" "")
  32.     (command "CHPROP" (entlast) ""  "C" 251 "")
  33.     (entdel Pls)      
  34.   ))
  35.   (try-osmode1);恢复捕捉
  36. )



  37. (defun c:2 ()(SETQ NAME  "ANSI37"  hbl 15 hjd 0)(Mc:hatch name hbl hjd)(princ))
  38. (defun c:3 ()(SETQ NAME  "ANSI31"  hbl 10 hjd 0)(Mc:hatch name hbl hjd)(princ))
  39. (defun c:4 ()(SETQ NAME  "ANSI34"  hbl 3 hjd 0)(Mc:hatch name hbl hjd)(princ))
  40. (defun c:4a ()(SETQ NAME  "ANSI34"  hbl 0.3 hjd 0)(Mc:hatch name hbl hjd)(princ))
  41. (defun c:5 ()(SETQ NAME  "AR-RROOF"  hbl 15 hjd 45)(Mc:hatch name hbl hjd)(princ))
  42. (defun c:6 ()(SETQ NAME  "AR-CONC"  hbl 1 hjd 0)(Mc:hatch name hbl hjd)(princ))
  43. (defun c:7 ()(SETQ NAME  "CROSS"  hbl 10 hjd 0)(Mc:hatch name hbl hjd)(princ))
  44. (defun c:8 ()(SETQ NAME  "GRASS"  hbl 5 hjd 0)(Mc:hatch name hbl hjd)(princ))
  45. (defun c:9 ()(SETQ NAME  "AR-SAND"  hbl 1 hjd 0)(Mc:hatch name hbl hjd)(princ))
  46. (defun c:10 ()(SETQ NAME  "木纹面5"  hbl 200 hjd 45)(Mc:hatch name hbl hjd)(princ))
  47. (defun c:10a ()(SETQ NAME  "木纹面5"  hbl 50 hjd 45)(Mc:hatch name hbl hjd)(princ))
  48. (defun c:11 ()(SETQ NAME  "dolmit"  hbl 20 hjd 90)(Mc:hatch name hbl hjd)(princ))
  49. (defun c:12 ()(SETQ NAME  "ANSI33"  hbl 1 hjd 0)(Mc:hatch name hbl hjd)(princ))
  50. (defun c:13 ()(SETQ NAME  "钢筋混凝土"  hbl 8 hjd 0)(Mc:hatch name hbl hjd)(princ))
  51. (defun c:14 ()(SETQ NAME  "DOTS"  hbl 2 hjd 0)(Mc:hatch name hbl hjd)(princ))
  52. (defun c:15 ()(SETQ NAME  "大理石2"  hbl 1 hjd 45)(Mc:hatch name hbl hjd)(princ))
  53. (defun c:16 ()(SETQ NAME  "CORK"  hbl 2 hjd 0)(Mc:hatch name hbl hjd)(princ))
  54. (defun c:17 ()(SETQ NAME  "轻钢1:1"  hbl 70 hjd 0)(Mc:hatch name hbl hjd)(princ))
  55. (defun c:36z ()(SETQ NAME  "300-600z"  hbl 1 hjd 0)(Mc:hatch name hbl hjd)(princ))
  56. (defun c:48z ()(SETQ NAME  "400-800"  hbl 1 hjd 0)(Mc:hatch name hbl hjd)(princ))
  57. (defun c:300z ()(SETQ NAME  "600z"  hbl 0.5 hjd 0)(Mc:hatch name hbl hjd)(princ))
  58. (defun c:400z ()(SETQ NAME  "800Z"  hbl 0.5 hjd 0)(Mc:hatch name hbl hjd)(princ))
  59. (defun c:600z ()(SETQ NAME  "600z"  hbl 1 hjd 0)(Mc:hatch name hbl hjd)(princ))
  60. (defun c:800z ()(SETQ NAME  "800Z"  hbl 1 hjd 0)(Mc:hatch name hbl hjd)(princ))
  61. (defun c:cz ()(SETQ NAME  "100"  hbl 1 hjd 0)(Mc:hatch name hbl hjd)(princ))


  62. ;;绘制边界填充
  63. (defun Mc:hatch (HNAME BL JD / p0 p1 p2 p3 ent Pls)
  64.     (try-osmode0);取消捕捉
  65.   (if (setq p1 (getpoint (strcat "\n 指定封闭填充区域>>>填充图案为>>" HNAME)))   
  66.     (command "-bhatch" "properties" HNAME  BL JD p1 "")
  67.     (progn
  68.     (c:zz);恢复捕捉
  69.   (if (setq p2 (getpoint (strcat "\n指定填充区域第一点>>>填充图案为>>>"  HNAME )))  
  70.   (progn
  71.   (setq p0 P2)
  72.    (setq ent (entlast))   
  73.      (while (setq p3 (getpoint p0 "\n指定第二点"))
  74.       (command "PLINE" p2 p3 "")
  75.       ( SETQ P2 P3)
  76.      )  
  77.     (command "PLINE" p2 p0 "")
  78.     (COMMAND "pedit" "m" (last_ent  ent) ""  "j" 0.5 ""))
  79.     (progn
  80.     (setq p2 (getpoint (strcat "\n绘制矩形区域>>>填充图案>>>"  HNAME )))      
  81.     (setq p3 (getcorner p2 "\n第二点"))
  82.     (command "RECTANG" p2 p3)  
  83.   )  
  84.   )
  85.     (SETQ Pls (entlast))
  86.     (command "-bhatch" "p" HNAME  BL JD "s" Pls "" "")
  87.     (command "CHPROP" (entlast) ""  "C" 251 "")
  88.     (entdel Pls)      
  89.   ))
  90.   (try-osmode1);恢复捕捉
  91. )


  92. ;;; 快速填充  
  93. (defun ljx-hatch (pt name jd sca / mspace e hatchobj outlst objlst )
  94.   (vl-load-com)
  95.   (setq mspace (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object))))
  96.   (setq e (bpoly pt))
  97.   (vl-cmdf)
  98.   (if (not (vlax-ename->vla-object e))
  99.     (progn
  100.       (bpoly pt)
  101.       (vl-cmdf "")
  102.       (setq e (entlast))
  103.     )
  104.   )
  105.   (setq objlst (list (vlax-ename->vla-object e))
  106.         hatchobj (vla-AddHatch mspace 0 name :vlax-true)
  107.         outlst (vlax-make-safearray vlax-vbobject (cons 0 (1- (length objlst))))
  108.   )
  109.   (vlax-safearray-fill  outlst objlst)
  110.   (vla-appendouterloop hatchobj outlst)
  111.   (vla-evaluate hatchobj)
  112.   (vla-put-PatternScale hatchobj sca);;图案比例
  113.   (vla-put-PatternAngle hatchobj (* jd (/ pi 180.0)));;图案旋转角度
  114.   (vla-delete (vlax-ename->vla-object e))
  115. )

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2021-9-14 19:22 | 显示全部楼层
感谢大佬分享~~~~
发表于 2021-9-15 12:35 | 显示全部楼层
谢谢大佬,很有用
发表于 2021-9-16 22:54 | 显示全部楼层
自从用动态块做填充后,填充命令基本不用
发表于 2021-9-17 11:41 | 显示全部楼层
alexmai 发表于 2021-9-16 22:54
自从用动态块做填充后,填充命令基本不用

分享一下,哈哈
发表于 2021-9-17 21:50 | 显示全部楼层
gaics 发表于 2021-9-17 11:41
分享一下,哈哈

不同的填充,利用可见性分类,立面及大样图都大量使用
发表于 2021-9-21 11:22 | 显示全部楼层
感谢大佬分享~~~~
发表于 2022-4-13 00:39 | 显示全部楼层
谢谢大佬的无私分享
发表于 2022-4-13 09:59 | 显示全部楼层
命令: 1 ; 错误: no function definition: TRY-OSMODE0
发表于 2022-5-9 19:05 | 显示全部楼层
command调用就是比CAD的H要快很多
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-18 09:40 , Processed in 0.175623 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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