Macroselectie van horizontaal geïmporteerde afmetingen

Hoi allemaal

Is het mogelijk om alle horizontale of vetische afmetingen van een vliegtuig macro te selecteren?

Alvast bedankt voor uw feedback.

Yannick


2020_07_03_11_36_45_window.png

De API heeft een IDisplayDimension-interface die een Type2-eigenschap heeft voor een Enum-SwDimensionType_e.

SwDimensionType_e.swHorLinearDimension of SwDimensionType_e.swVertLinearDimension zien er veelbelovend uit:)

 

http://help.solidworks.com/2012/english/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.IDisplayDimension_members.html

Hallo

Hiermee worden de verticale (of anderszins horizontale) afmetingen van elke bladweergave geselecteerd.

Option Explicit
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swDraw As SldWorks.DrawingDoc
Dim swView As SldWorks.View
Dim swDispDim As SldWorks.DisplayDimension
Dim DisplayData As SldWorks.DisplayData
Dim swAnn As SldWorks.Annotation
Dim ArrowHeadPos1 As Variant
Dim ArrowHeadPos2 As Variant
Dim Reponse As Integer
Reponse = MsgBox("Selectionner les dimensions verticales?", vbYesNo)
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
If swModel.GetType <> swDocDRAWING Then
    MsgBox "Veuillez ouvrir un dessin"
    Exit Sub
End If
Set swDraw = swModel
swModel.ClearSelection2 True
Set swView = swDraw.GetFirstView
While Not swView Is Nothing
    Set swDispDim = swView.GetFirstDisplayDimension5
    While Not swDispDim Is Nothing
        Set DisplayData = swDispDim.GetDisplayData
        If swDispDim.GetType = swDimensionType_e.swLinearDimension And DisplayData.GetArrowHeadCount = 2 Then
            ArrowHeadPos1 = DisplayData.GetArrowHeadAtIndex2(0)
            ArrowHeadPos2 = DisplayData.GetArrowHeadAtIndex2(1)
            If Reponse = vbYes And Abs(ArrowHeadPos1(0) - ArrowHeadPos2(0)) < 0.0001 Then
                Set swAnn = swDispDim.GetAnnotation
                swAnn.Select3 True, Nothing
            ElseIf Reponse <> vbYes And Abs(ArrowHeadPos1(1) - ArrowHeadPos2(1)) < 0.0001 Then
                Set swAnn = swDispDim.GetAnnotation
                swAnn.Select3 True, Nothing
            End If
        End If
        Set swDispDim = swDispDim.GetNext5
    Wend
    Set swView = swView.GetNextView
Wend
End Sub

 

1 like

Dank je Jerome, dat is wat ik nodig had. Kent u de opdrachtregel om breuklijnen te integreren

 

Wat bedoel je met "integreren"?

Controleer het tabblad Regels afbreken

Dat begreep ik. Maar niet wat je bedoelt met "integreren".

Ik heb me slecht uitgedrukt, het is het weekend dat ik een excuus heb ;0)

Bedoel je dat je de optie "pauze" toepast op elke geselecteerde verticale of horizontale dimensie?

Ja, dat is het

Helaas lijkt deze optie niet beschikbaar te zijn.