Hoi allemaal
Ik wil een macro maken waarmee ik een bepaald aantal punten erin op een heel specifieke manier met elkaar kan verbinden: ik maak 2D-plattegronden van trappen.
Ik importeer momenteel alle punten (die in een Excel*-bestand staan met x y z coördinaten) met behulp van een macro in een 2D-schets en verbind de punten vervolgens met de hand om de trap opnieuw te tekenen.
*excel bestand: 3 kolommen X Y Z
punt A met punt B
Punt C met punt D
Punt A met Punt C
Punt B met Punt D
Enz. om elke stap te tekenen.
als ik VBA niet of heel weinig onder de knie had, zouden sommige liefdadige zielen me te hulp komen?
Hoe ik het zie: ik denk dat je in een 1e keer moet beginnen om alle trapneuzen, d.w.z. een paar steken, met elkaar te verbinden:
a-b; c-d; E-F; enz
verbind vervolgens elke kant van de stap A-C; B-D enz
elke trap heeft een verschillend aantal treden, ik moet een waarde kunnen invoeren om de macro aan het einde van X stappen te stoppen.
Elke stap wordt gedefinieerd door 2 punten
De rest van de punten in het Excel-bestand worden gebruikt voor oriëntatiepunten buiten de stappen zelf, zoals hoeken of muurretouren , deze punten worden met de hand verbonden...
Het idee is om deze functie in mijn excel bestand te zetten na de functie die de punten exporteert naar solidworks
Ik vind het niet heel ingewikkeld, maar ik beheers het programmeren niet. Het is beter om er een te hebben die het weet dan 10 die kijken zoals de ander zei...
Hier! Als je vragen hebt, sta ik tot je beschikking!
Hier is de huidige code:
Privé Sub btnTest_Click()
Dim swApp als SldWorks.SldWorks
Dim deel als ModelDoc2
Dim i als geheel getal
Stel swApp = CreateObject("SldWorks.Application") in
Deel instellen = swApp.ActiveDoc
Als een deel niets is, dan
MsgBox "Activeer a.u.b. een deeldocument voordat u deze macro gebruikt."
Sub afsluiten
Einde als
Als Part.GetType <> 1 dan
MsgBox "Activeer a.u.b. een deeldocument voordat u deze macro gebruikt."
Sub afsluiten
Einde als
zo niet Part.GetActiveSketch2 is dan niets
MsgBox "Sluit de schets af voordat u deze macro uitvoert."
Sub afsluiten
Einde als
Deel.ClearSelection2 Waar
Deel.InsertSketch
Part.SetAddToDB Waar
i = 1
Terwijl Bereik ("A" & i). Waarde <> ""
Part.CreatePoint2 Bereik ("A" & i). Waarde / 100, bereik ("B" & i). Waarde / 100, 0
'Part.CreatePoint2 Range("A" & i). Waarde / 1000, Bereik ("B" & i). Waarde / 1000, Bereik ("C" & i). Waarde / 1000
i = ik + 1
Gaan
Part.SetAddToDB onwaar
Deel.ClearSelection
Deel.InsertSketch
Deel.ClearSelection2 Waar
Einde Sub
Hartelijk dank voor uw medewerking
Vallei