omar91
Utente poco attivo
professione: Ingegnere Meccanico
software: Solidworks
regione: Liguria
Salve a tutti, mi chiamo Omar e sono nuovo del forum. Sono uno studente di ingegneria meccanica (laureando) e ho appena iniziato ad utilizzare Solidworks.
Non avendo trovato un comando per importare una serie di punti, ho cercato su internet una macro che mi permettesse di farlo. Ne ho trovata una che sembrava funzionare e che riporto di seguito:
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
swApp.ActiveDoc.ActiveView.FrameState = 1
Dim skPoint As Object
Open "C:\Users\Omar\Desktop\materiale tesi\voluta\linee\prova.txt" For Input As #1
Part.SketchManager.Insert3DSketch True
Do While Not EOF(1)
Input #1, X, Y, Z
Set skPoint = Part.SketchManager.CreatePoint(X, Y, Z)
Loop
Close #1
End Sub
Dico sembrava perché i valori dei punti vengono distorti, es. 45.888 diventa 45888, 451.888444 diventa 451888.444, cioè tutti i numeri vengono maggiorati di un fattore 1000; inoltre per valori della terna "piccoli" (diciamo sotto la decina, anche se in realtà sembra abbastanza random), i numeri vengono letti direttamente come 0 (per "risolvere" avevo pensato di dare in input valori ridotti di un fattore 1000 o dividere per 1000 X,Y e Z nella macro).
Per le mie capacità tutto ciò appare come "misterioso", qualcuno mi sa dare delle spiegazioni? Grazie
Non avendo trovato un comando per importare una serie di punti, ho cercato su internet una macro che mi permettesse di farlo. Ne ho trovata una che sembrava funzionare e che riporto di seguito:
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
swApp.ActiveDoc.ActiveView.FrameState = 1
Dim skPoint As Object
Open "C:\Users\Omar\Desktop\materiale tesi\voluta\linee\prova.txt" For Input As #1
Part.SketchManager.Insert3DSketch True
Do While Not EOF(1)
Input #1, X, Y, Z
Set skPoint = Part.SketchManager.CreatePoint(X, Y, Z)
Loop
Close #1
End Sub
Dico sembrava perché i valori dei punti vengono distorti, es. 45.888 diventa 45888, 451.888444 diventa 451888.444, cioè tutti i numeri vengono maggiorati di un fattore 1000; inoltre per valori della terna "piccoli" (diciamo sotto la decina, anche se in realtà sembra abbastanza random), i numeri vengono letti direttamente come 0 (per "risolvere" avevo pensato di dare in input valori ridotti di un fattore 1000 o dividere per 1000 X,Y e Z nella macro).
Per le mie capacità tutto ciò appare come "misterioso", qualcuno mi sa dare delle spiegazioni? Grazie