Wymiary pomieszczenia

Witam

Próbuję określić wymiary pomieszczenia w SW, powołując się na to, że używam VB.NET.

Czekam na Waszą pomoc i dziękuję.

Witam

Kiedyś stworzyłem małe narzędzie, które pozwoliło mi zrobić coś podobnego, zobacz TUTAJ.

Pozdrowienia

1 polubienie

Oto kolejny model, który, jak wspomniano, "bez subskrypcji Privilege może być używany i testowany przez 1 miesiąc.", zobacz TUTAJ.

Pozdrowienia

1 polubienie

A oto wersja narzędzia, którą stworzyłem, ale z dodatkiem przycisku do obliczania śladu na części lub złożeniu już załadowanym w Solidworks.

Pozdrowienia


boundingbox-4.zip
3 polubienia

Witam i dziękuję za pomoc,

to nie do końca to, próbuję określić długość i szerokość (lub średnicę) części w SW za pomocą kodu VB.NET.

Witam

Prawdopodobny błąd w zrozumieniu z mojej strony, jeśli dobrze rozumiem, to co próbujesz zrobić, to napędzać VB.NET szanse?

Pozdrowienia

2 polubienia

Witam

to czego dokładnie szukam to określenie długości i średnicy w montażu na SW za pomocą VB.net, aby później z nich skorzystać.

Witam

Aby to zrobić, możesz skorzystać z konfiguracji. Tworzysz swoją i dla każdej długości lub średnicy wykonujesz dodatkową konfigurację.

Witam

Nie do końca rozumiem ostateczną potrzebę, ponieważ w przypadku, jak mówi ac cobra 427, istnieje możliwość skorzystania z konfiguracji, lub skorzystania z zestawu narzędzi. Teraz, jeśli ma to sterować wymiarami na części programowej, można to zrobić jak poniżej.

Jeśli weźmiemy pod uwagę, że część załadowana do SW składa się z funkcji "Boss.-Extru.1" wykonanej ze szkicu "Sketch1", w której znajdziemy wymiary "D1@Esquisse1" i "D2@Esquisse1" dla szerokości i długości, a wymiar grubości wyciągnięcia nazywa się "D1@Boss.-Extru.1", to możemy je kontrolować w następujący sposób:

Dim swApp As Object
Dim Part As Object
Dim myDimension As Object
Dim boolstatus As Boolean

Sub main()
    Set swApp = Application.SldWorks
    Set Part = swApp.ActiveDoc
    Set myDimension = Part.Parameter("D1@Esquisse1")
    myDimension.SystemValue = 0.11
    Set myDimension = Part.Parameter("D2@Esquisse1")
    myDimension.SystemValue = 0.05
    Set myDimension = Part.Parameter("D1@Boss.-Extru.1")
    myDimension.SystemValue = 0.002
    boolstatus = Part.ForceRebuild3(True)
    Part.ClearSelection2 True
End Sub

Pozdrowienia

1 polubienie

Witam i dziękuję za odpowiedź,

Problem polega na tym, że chcę określić wymiary standardowych elementów dodanych z bibliotek SW (, nakrętki itp.), więc nie mam dostępu do ich szkiców.

Witam

Co masz na myśli mówiąc o standardowych elementach dodawanych z biblioteki oprogramowania? Czy możesz zamieścić przykładową część do analizy?

Pozdrowienia

Witam

Przykład znajduje się w załączeniu.

Wypróbowałem więc ten algorytm, ale nie uzyskałem wyników:

        swModel = swApp.ActiveDoc

        swConfigMgr = swModel.ConfigurationManager

        swConfig = swConfigMgr.ActiveConfiguration
        Dim swDocExt As ModelDocExtension
        Dim boo Jako wartość logiczna
        swModel.ClearSelection2(Prawda)
        swDocExt = swModel.Extension()
        boo = swDocExt.SelectByID2("part@assembly", "KOMPONENT", 0, 0, 0, Prawda, 1, Nic, 0)
 
        Dim strCompModelname2 As String
        strCompModelname2 = "część.sldprt"
        swModel = swApp.ActiveDoc

        swDim = swModel.Parameter(strCompModelname2)

        vConfigNameArr = swModel.GetConfigurationNames

        Dla każdej nazwy vConfigName w vConfigNameArr

            sSpecConfigNameArr(0) = nazwa_vConfig

            vSpecConfigNameArr = sSpecConfigNameArr

            vDimValArr = swDim.GetValue3(swInConfigurationOpts_e.swSpecifyConfiguration, vSpecConfigNameArr)
            Debug.Assert(0 = UBound(vDimValArr))

            Dla każdego vDimVal w vDimValArr

                Debug.Print("      " & vConfigName & " -->" & vDimVal)

            Następny

        Następny


din-933.jpg

Witam

Mówiąc " Czy możesz zamieścić przykład części do analizy?", miałem na myśli jeden z twoich elementów w formacie sldprt, a nie obraz jpeg!!

Pozdrowienia

1 polubienie

Dobry wieczór

Oto przykład w formacie .sldprt


jaw_screw.sldprt

Witam

Tak podejrzewałem, są to części importowane, więc nie będziesz w stanie znaleźć żadnych ofert, ponieważ ich nie ma:

Pozdrowienia

Witam

Aby włączyć szkice w importowanej bryle, można użyć Featurworks , który rozpozna wszystkie funkcje części...

Jest taka możliwość, ale biorąc pod uwagę tę część, myślę, że lepiej jest ją całkowicie przebudować, będzie miała tę zaletę, że będzie miała całkowicie ograniczone szkice i nieco bardziej "inteligentne" funkcje.

Możesz też wziąć część z Przybornika, jeśli istnieje jej odpowiednik.

Dla featureWorks, należy najpierw usunąć funkcję ruchu "Body-Move", w przeciwnym razie FeatureWorks nie będzie można z niej korzystać:

Pozdrowienia

1 polubienie

Witam

Usunąłem "Body-Move", a następnie kliknąłem na featureworks - rozpoznaj funkcje ...

wyświetla się komunikat o błędzie "obraz", a gdy kliknę ok, oprogramowanie samo się zamyka.


image.png

Witam

Wygląda na to, że nie pochodzi to z Twojej strony (zabieg wykonany w SW 2017):

Sprawdź więc swoje ustawienia lub instalację oprogramowania (która wersja?)

Pozdrowienia

1 polubienie

Witam

Udało mi się obejrzeć szkic części.

Problem polega teraz na określeniu długości wybranej części za pomocą jej szkicu. 

Pokażę Ci przykład algorytmu, który przetestowałem, ale bez żadnych wyników:

1 /

    Dim vDimVal As Object (Obiekt Nie)
        Przyciemnij część jako ModelDoc2
        Część = swApp.ActiveDoc
Dim swDim jako wymiar
        swDim = Część.Parameter("D2@Esquisse1@part1@assembly")
       vDimVal = swDim.GetSystemValue3(swInConfigurationOpts_e.swThisConfiguration, Nic)
        vDimVal = swSelMgr.GetSelectedObject6(1, -1)
        MsgBox(vDimVal)

 

wynik = puste pole