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.