【MS V8i VBA】如何使2个EllipseElement求差集么?比如,画2个圆,然后做出一个圆环。

符老师

         我测试了ClosedElement.GetDifferenceShapes帮助文件里的例子,但是运行后没出现结果。

         请问符老师,这个命令怎么用啊?能不能提供一个简单的测试例子。

Parents
  • 我针对您的问题写过一个测试代码如下:

    Sub CreateGroupedHole()
        Dim oElem1 As ClosedElement, oElem2 As ClosedElement
        Set oElem1 = ActiveModelReference.GetElementByID(DLongFromLong(3169))
        Set oElem2 = ActiveModelReference.GetElementByID(DLongFromLong(3170))
        
        Dim ee As ElementEnumerator
        Set ee = oElem1.GetDifferenceShapes(oElem2)
        ee.MoveNext
        ActiveModelReference.AddElement ee.Current
    End Sub

    ElementID为3169的是外圆,3170的为内圆。最后生成一个圆环。请你绘制两个圆后用你的两个圆的ElementID替换我代码中的两个ID。或者临时创建两个圆oElem1和oElem2带入代码中即可。

    ClosedElement.GetDifferenceShapes返回一个元素枚举,需要拿到枚举中的第一个添加到模型中即可。



    Answer Verified By: 熊浩然 

Reply
  • 我针对您的问题写过一个测试代码如下:

    Sub CreateGroupedHole()
        Dim oElem1 As ClosedElement, oElem2 As ClosedElement
        Set oElem1 = ActiveModelReference.GetElementByID(DLongFromLong(3169))
        Set oElem2 = ActiveModelReference.GetElementByID(DLongFromLong(3170))
        
        Dim ee As ElementEnumerator
        Set ee = oElem1.GetDifferenceShapes(oElem2)
        ee.MoveNext
        ActiveModelReference.AddElement ee.Current
    End Sub

    ElementID为3169的是外圆,3170的为内圆。最后生成一个圆环。请你绘制两个圆后用你的两个圆的ElementID替换我代码中的两个ID。或者临时创建两个圆oElem1和oElem2带入代码中即可。

    ClosedElement.GetDifferenceShapes返回一个元素枚举,需要拿到枚举中的第一个添加到模型中即可。



    Answer Verified By: 熊浩然 

Children