Option Explicit Const swDocPART = 1 Const swDocASSEMBLY = 2 Sub Macro1() Dim swApp As SldWorks.SldWorks Dim Part As SldWorks.ModelDoc2 Dim boolstatus As Boolean Dim MyPath As String 'Putanja do direktorijuma gde se nalazi sklop MyPath = "C:\Primer\" 'Pokrece SolidWorks Set swApp = CreateObject("Sldworks.application") 'Prikazuje SolidWorks, da je nema radio bi u pozadini. swApp.Visible = True 'Ucitava sklop Set Part = swApp.OpenDoc(MyPath + "Sklop.sldasm", swDocASSEMBLY) 'Proverava da li je ucitan sklop If Part Is Nothing Then Exit Sub Else Set Part = swApp.ActivateDoc("Sklop.sldasm") End If 'menjas dimenzije delova 'Kocka 'Menjamo sirinu kocke Part.Parameter("D1@Sketch1@Kocka.Part").SystemValue = Excel.Range("B3") / 1000 ' Naziv dimenzije je D1@Sketch1@Kocka.Part ' D1@Sketch1 naziv dimenzije u partu ' Kocka dodajemo jer radimo u sklopu i govorimo u kom je partu dimenzija koju menjamo ' Part jer se radi o Part-u. ' Excel.Range("B3") uzimamo iz Excel tabele vrednost za sirinu ' Zasto delimo sa 1000? Zato jer, interno, SolidWorks radi samo sa metrima pa milimetre moramo pretvoriti u metre (postoji mogucnost i da mu kazemo koje jedinice koristimo ali to je druga prica). Part.Parameter("D2@Sketch1@Kocka.Part").SystemValue = Excel.Range("B4") / 1000 Part.Parameter("D1@Boss-Extrude1@Kocka.Part").SystemValue = Excel.Range("B5") / 1000 Part.Parameter("D1@Sketch2@Kocka.Part").SystemValue = Excel.Range("B6") / 1000 'Cilindar Part.Parameter("D1@Sketch1@Cilindar.Part").SystemValue = Excel.Range("B8") / 1000 Part.Parameter("D1@Boss-Extrude1@Cilindar.Part").SystemValue = Excel.Range("B9") / 1000 'menja distance mate Part.Parameter("D1@Distance1").SystemValue = Excel.Range("B11") / 1000 'Rebild boolstatus = Part.EditRebuild3() Set Part = Nothing Set swApp = Nothing End Sub