hw8810 发表于 2024-4-25 00:25:36

如何用entmake填充带弧线的区域?

:'(试了好久都不成功,论坛上也没找到例子,理论上在群码10之间插入凸度42,不知道还有哪些要修改的,大佬们救救孩子,给个成功的例子也行:'(

自贡黄明儒 发表于 2024-4-25 07:05:08

你用entget查看一下,42是弓高比

liuhe 发表于 2024-4-25 08:41:37

本帖最后由 liuhe 于 2024-4-25 08:44 编辑

(vl-load-com)
(defun c:Example_AddHatch()
    ;; This example creates an associative gradient hatch in model space.
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))      
      
    ;; Define the hatch
    (setq patternName "CYLINDER")
    (setq patternType acPreDefinedGradient)
    (setq bAssociativity :vlax-true)
      
    ;; Create the associative Hatch object in model space
    (setq modelSpace (vla-get-ModelSpace doc))   
    (setq hatchObj (vla-AddHatch modelSpace patternType patternName bAssociativity acGradientObject))

    (setq col1 (vlax-create-object "AutoCAD.AcCmColor.19"))
    (setq col2 (vlax-create-object "AutoCAD.AcCmColor.19"))
    (vla-SetRGB col1 255 0 0)
    (vla-SetRGB col2 0 255 0)
    (vla-put-GradientColor1 hatchObj col1)
    (vla-put-GradientColor2 hatchObj col2)
      
    ;; Create the outer boundary for the hatch (a circle)
    (setq center (vlax-3d-point 3 3 0))
   
    (setq radius 1)
    (setq circle (vla-AddCircle modelSpace center radius))

    (setq outerLoop (vlax-make-safearray vlax-vbObject '(0 . 0)))
    (vlax-safearray-put-element outerLoop 0 circle)
      
    ;; Append the outerboundary to the hatch object, and display the hatch
    (vla-AppendOuterLoop hatchObj outerLoop)
    (vla-Evaluate hatchObj)
    (vla-Regen doc :vlax-true)

    (vlax-release-object col1)
    (vlax-release-object col2)
)


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

hw8810 发表于 2024-4-25 09:15:50

自贡黄明儒 发表于 2024-4-25 07:05
你用entget查看一下,42是弓高比

就是添加了42也没成功,不知道缺了什么

hw8810 发表于 2024-4-25 09:37:35

liuhe 发表于 2024-4-25 08:41
官方例子,用这个方法简单点,只需要自己创建边界就行了,最好用solid填充,因为其他方法填充在求解的 ...

这个可以,感谢大佬:D-
(做个笔记:AutoCAD.AcCmColor.19这句要改成对应版本的CAD,CAD2018对应是AutoCAD.AcCmColor.22)

hw8810 发表于 2024-4-25 09:39:33

liuhe 发表于 2024-4-25 08:41
官方例子,用这个方法简单点,只需要自己创建边界就行了,最好用solid填充,因为其他方法填充在求解的 ...

请问下这个文档在哪里查看的?

liuhe 发表于 2024-4-25 09:43:27

hw8810 发表于 2024-4-25 09:39
请问下这个文档在哪里查看的?

葵花宝典、vba参考啊,cad自带帮助应该也有,多去搜索cad自带的帮助

llsheng_73 发表于 2024-4-25 10:04:38

entmake做填充,需要认真理解它的边界数据以及各种类型的边界,如果说在已有的带弧的多段线内进行填充,那么需要获取这条多段线的DXF数据,提取其中的直线段,以及弧段,用不同的边界类型去表达它们

可以手动对一个带弧的多段线进行填充,然后通过entget得到这个填充的DXF数据,对照帮助文件的填充类图元的DXF数据来进行理解,注意区分图案数据和边界数据,着重理解各种不同边界

伊江痕 发表于 2024-4-25 10:05:55

自贡黄明儒 发表于 2024-4-25 07:05
你用entget查看一下,42是弓高比

厉害啊 我的儒哥                     

hw8810 发表于 2024-4-25 12:52:18

llsheng_73 发表于 2024-4-25 10:04
entmake做填充,需要认真理解它的边界数据以及各种类型的边界,如果说在已有的带弧的多段线内进行填充,那 ...

感谢大佬。我手动看了里面有很多文档也没解释的dxf码就不知道什么意思了,所以想问下大伙有没有成功的案例
页: [1] 2
查看完整版本: 如何用entmake填充带弧线的区域?