Macro om virtueel te maken en het materiaal van alle onderdelen aan te passen. uit het STEP-bestand

Hallo.

Ik moet vaak 3D-bestanden herstellen (stap) van een industriële leverancier. Deze sturen me meestal step-bestanden die , wanneer ik ze via solidworks open, zijn samengesteld uit assemblages, samengesteld uit dezelfde assemblages en onderdelen. Kort...

Vandaag ben ik voor elk van deze bestanden gedwongen om de subassemblages in te voeren, alle onderdelen te openen om: 1- Verwijder hun uiterlijk. 2-Wijs een onderwerp toe 3-Neem het op. 4- Maak het virtueel.

Ten slotte, wanneer de kopassemblage open is, wil ik gewoon op een macro klikken die alle onderdelenbestanden onder de root transformeert, en alle andere die zijn opgenomen in subassemblages van alle lagere niveaus.

Ik denk dat het mogelijk is om via een macro al deze bewerkingen tegelijk en heel snel uit te voeren.

Helaas ken ik Solidworks-macro's helemaal niet en ben ik niet in staat om de juiste code te maken.

Heeft iemand ooit iets soortgelijks gedaan, en zou me kunnen helpen.

Bedankt.

Jérémy

Solidworks PDM 2015

Hallo Jérémy,

Om een ruimte virtueel te maken, is er de methode MakeVirtual2  (link).

Om een materiaal toe te passen is er de SetMaterialProperty methode (link). Maar hoe weet je welke je moet toepassen?

Ik wilde dit ook voor mijn werk doen, maar met de volgende variaties:

  • - Zonder materiaalbeheer;
  • - Met het verwijderen van subassemblages die slechts één subassemblage of onderdeel bevatten.

Dat is me nooit gelukt omdat de eerste stap voor mij was om de afhankelijkheid van het originele STEP-bestand te doorbreken. En voor zover ik weet is daar in de API geen functie voor (noch tijdens het importeren, noch daarna). Wanneer u dit handmatig doet tijdens het opnemen van een macro, wordt er niets in het bestand geplaatst.

M.

Hier is een ontwerp dat een stap converteert naar sldprt, het uiterlijk verwijdert, het materiaal "AISI 304" toewijst en opslaat in dezelfde map.

Option Explicit
Sub main()
    Dim FilePath As String
    FilePath = "C:\MyFiles\PartTest.step"
    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Set swApp = Application.SldWorks
    Set swModel = swApp.LoadFile4(FilePath, Empty, Nothing, Empty)
    swModel.SetMaterialPropertyName2 "Default", Empty, "AISI 304"
    swModel.Extension.RemoveMaterialProperty swInConfigurationOpts_e.swAllConfiguration, Nothing
    FilePath = Replace(FilePath, ".step", ".sldprt")
    swModel.Extension.SaveAs FilePath, swSaveAsVersion_e.swSaveAsCurrentVersion, swSaveAsOptions_e.swSaveAsOptions_Silent, Nothing, Empty, Empty
End Sub

 

2 likes

Ik vind het niet erg om de stap in solidworks te openen. En voor zover ik weet, houdt het sldasm-bestand geen link bij met de stap.

Het probleem is ook dat wanneer ik de stap in solidworks open, ik in het sldasm-bestand krijg dat er andere assemblages of onderdelen zijn. En dat als ik ze virtueel wil maken, ik ze van tevoren moet openen. Dit verspilt een aanzienlijke hoeveelheid tijd.

Is een macro in staat om het bestand te openen, het uiterlijk en het materiaal te wijzigen en het vervolgens te sluiten. Open vervolgens een ander bestand dat bij de hoofdeenheid hoort,  voer dezelfde bewerkingen opnieuw uit, enzovoort, tot het laatste bestand. En tot slot om alle tijdelijke bestanden te verwijderen die behoren tot het originele step-bestand dat is gegenereerd bij het openen van het bestand via solidworks, en ook om de step te verwijderen.

Dank u voor uw hulp.

Jérémy

Ja, het is mogelijk om daar een macro voor te maken

Hallo, ik heb een basismacro om de delen en subsets die al zijn virtual.in te hernoemen 1 2 3 enz 

in SW2018 zijn de sets van step al virtueel, dus ik heb deze step niet zoals in SW 2015 

 


renommer_virtuel.swp
2 likes

Er is een link die bewaard blijft met de originele RWZI, voor onderdelen of samenstellingen. Dit geldt echter vanaf Solidworks 2017:

http://help.solidworks.com/2019/french/SolidWorks/sldworks/t_break_link_from_original_file.htm

Het is echter misschien geen probleem voor uw bedrijf. Het enige risico is dat de RWZI twee verschillende onderdelen/samenstellingen in twee projecten aan elkaar zal koppelen en dat er kruiswijzigingen zullen zijn (ik had het geval).

Dank u voor uw antwoorden.

Ik ga voorlopig misschien niet verder. We zouden over een paar maanden naar Solidworks 2019 moeten verhuizen (Ja, ik weet dat we in 2020 zijn !!) en dus volgens wat G.casters zegt, zullen we niet langer het probleem hebben met betrekking tot de transformatie van onderdelen/tijdelijke assemblagebestanden naar virtuele bestanden.

Dan ga ik de paar regels code van Jerome.P en mgauroy halen om te proberen te sleutelen aan iets dat kan werken.