明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1904|回复: 10

[讨论] 如何用entmake填充带弧线的区域?

[复制链接]
发表于 2024-4-25 00:25:36 | 显示全部楼层 |阅读模式
试了好久都不成功,论坛上也没找到例子,理论上在群码10之间插入凸度42,不知道还有哪些要修改的,大佬们救救孩子,给个成功的例子也行

本帖子中包含更多资源

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

x
发表于 2024-4-25 07:05:08 | 显示全部楼层
你用entget查看一下,42是弓高比
发表于 2024-4-25 08:41:37 | 显示全部楼层
本帖最后由 liuhe 于 2024-4-25 08:44 编辑
  1. (vl-load-com)  
  2. (defun c:Example_AddHatch()  
  3.     ;; This example creates an associative gradient hatch in model space.  
  4.     (setq acadObj (vlax-get-acad-object))  
  5.     (setq doc (vla-get-ActiveDocument acadObj))      
  6.       
  7.     ;; Define the hatch  
  8.     (setq patternName "CYLINDER")  
  9.     (setq patternType acPreDefinedGradient)  
  10.     (setq bAssociativity :vlax-true)  
  11.       
  12.     ;; Create the associative Hatch object in model space  
  13.     (setq modelSpace (vla-get-ModelSpace doc))     
  14.     (setq hatchObj (vla-AddHatch modelSpace patternType patternName bAssociativity acGradientObject))  
  15.   
  16.     (setq col1 (vlax-create-object "AutoCAD.AcCmColor.19"))  
  17.     (setq col2 (vlax-create-object "AutoCAD.AcCmColor.19"))  
  18.     (vla-SetRGB col1 255 0 0)  
  19.     (vla-SetRGB col2 0 255 0)  
  20.     (vla-put-GradientColor1 hatchObj col1)  
  21.     (vla-put-GradientColor2 hatchObj col2)  
  22.       
  23.     ;; Create the outer boundary for the hatch (a circle)  
  24.     (setq center (vlax-3d-point 3 3 0))  
  25.      
  26.     (setq radius 1)  
  27.     (setq circle (vla-AddCircle modelSpace center radius))  
  28.   
  29.     (setq outerLoop (vlax-make-safearray vlax-vbObject '(0 . 0)))  
  30.     (vlax-safearray-put-element outerLoop 0 circle)  
  31.       
  32.     ;; Append the outerboundary to the hatch object, and display the hatch  
  33.     (vla-AppendOuterLoop hatchObj outerLoop)  
  34.     (vla-Evaluate hatchObj)  
  35.     (vla-Regen doc :vlax-true)  

  36.     (vlax-release-object col1)  
  37.     (vlax-release-object col2)  
  38. )  


官方例子,用这个方法简单点,只需要自己创建边界就行了,最好用solid填充,因为其他方法填充在求解的时候然后不更新。

本帖子中包含更多资源

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

x
 楼主| 发表于 2024-4-25 09:15:50 | 显示全部楼层
自贡黄明儒 发表于 2024-4-25 07:05
你用entget查看一下,42是弓高比

就是添加了42也没成功,不知道缺了什么
 楼主| 发表于 2024-4-25 09:37:35 | 显示全部楼层
liuhe 发表于 2024-4-25 08:41
官方例子,用这个方法简单点,只需要自己创建边界就行了,最好用solid填充,因为其他方法填充在求解的 ...

这个可以,感谢大佬
(做个笔记:AutoCAD.AcCmColor.19这句要改成对应版本的CAD,CAD2018对应是AutoCAD.AcCmColor.22)
 楼主| 发表于 2024-4-25 09:39:33 | 显示全部楼层
liuhe 发表于 2024-4-25 08:41
官方例子,用这个方法简单点,只需要自己创建边界就行了,最好用solid填充,因为其他方法填充在求解的 ...

请问下这个文档在哪里查看的?
发表于 2024-4-25 09:43:27 | 显示全部楼层
hw8810 发表于 2024-4-25 09:39
请问下这个文档在哪里查看的?

葵花宝典、vba参考啊,cad自带帮助应该也有,多去搜索cad自带的帮助
发表于 2024-4-25 10:04:38 | 显示全部楼层
entmake做填充,需要认真理解它的边界数据以及各种类型的边界,如果说在已有的带弧的多段线内进行填充,那么需要获取这条多段线的DXF数据,提取其中的直线段,以及弧段,用不同的边界类型去表达它们

可以手动对一个带弧的多段线进行填充,然后通过entget得到这个填充的DXF数据,对照帮助文件的填充类图元的DXF数据来进行理解,注意区分图案数据和边界数据,着重理解各种不同边界
发表于 2024-4-25 10:05:55 | 显示全部楼层
自贡黄明儒 发表于 2024-4-25 07:05
你用entget查看一下,42是弓高比

厉害啊 我的儒哥                     
 楼主| 发表于 2024-4-25 12:52:18 | 显示全部楼层
llsheng_73 发表于 2024-4-25 10:04
entmake做填充,需要认真理解它的边界数据以及各种类型的边界,如果说在已有的带弧的多段线内进行填充,那 ...

感谢大佬。我手动看了里面有很多文档也没解释的dxf码就不知道什么意思了,所以想问下大伙有没有成功的案例
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 19:32 , Processed in 0.207579 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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