Pagina 3 di 3 PrimaPrima 123
Risultati da 21 a 24 di 24
  1. #21
    Moderatore L'avatar di Onda
    Iscritto dal
    2009
    Messaggi
    1035
    Professione
    Ingegnere Meccanico settore Navale
    Regione
    Italia
    Software
    SolidWorks 2015, Rhino v5, Autocad 2008, Patran 2014, Nastran 2014

    Predefinito

    Di seguito la macro completa. tieni presente che potrebbe essere fatta meglio, sopratutto dove viene letta la riga di testo, ma non lavoro tutti i giorni in VB.


    Il file di testo che deve essere chiamato deve terminare in *.txt e deve essere formattato in CSV con i valori in METRI! deve anche avere una virgola finale, cosa inusuale
    esempio di alcune righe: le puoi copiare e incollare in un file di testo. evita di avere linee vuote prima o dopo, non ho fatto alcun sistema di controllo


    0.1,0.2,0.3,
    0.4,0.5,0.6,
    1,2,3,
    5,6,7,
    0.11111,3.22,1.1,



    QUESTA LA MACRO:

    '_______________________________
    Dim swApp As Object
    Dim Part As Object
    Dim boolstatus As Boolean
    Dim longstatus As Long, longwarnings As Long

    Sub main()
    Set swApp = Application.SldWorks
    Set Part = swApp.ActiveDoc
    '
    Dim myModelView As Object
    Dim Line_length As Integer
    Dim i As Integer
    Dim Flag As Integer
    Dim Punt As Integer
    Dim fileOptions As Long
    Dim X As Double
    Dim Y As Double
    Dim Radius As Double
    Dim FileToOpen As String
    Dim MyLine As String
    Dim Filter As String
    Dim fileName As String
    Dim fileConfig As String
    Dim fileDispName As String
    Dim Str As String
    ' Seguenti linee per aprire il file di testo
    Filter = "TXT files (*.txt)|*.txt"
    FileToOpen = swApp.GetOpenFileName("Immettere il file con le coordinate dei centri(*.txt)", "", Filter, fileOptions, fileConfig, fileDispName)
    Open FileToOpen For Input As #11
    ' Seguenti linee per creare lo scketch
    Set myModelView = Part.ActiveView
    myModelView.FrameState = swWindowState_e.swWindowMaximized
    boolstatus = Part.Extension.SelectByID2("Frontale_YZ", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
    Part.SketchManager.InsertSketch True
    Part.ClearSelection2 True
    Dim skSegment As Object

    ''Ciclo di DO per leggere tutte le righe del file di testo
    Do Until EOF(11)
    Line Input #11, MyLine
    Line_length = Len(MyLine)
    Flag = 0
    Punt = 0
    'Ciclo FOR per determinare i tre elementi di ogni riga
    For i = 1 To Line_length
    If Mid(MyLine, i, 1) = "," Then

    Str = Mid(MyLine, Punt + 1, (i - Punt))
    Select Case (Flag)
    Case 0
    X = Val(Str)
    Case 1
    Y = Val(Str)
    Case 2
    Radius = Val(Str)
    End Select
    Flag = Flag + 1
    Punt = i
    End If
    Next i

    'Debug.Print "X=", X, "Y = "; Y, "R="; Radius
    ' Creo lo sketch
    Set skSegment = Part.SketchManager.CreateCircle(X, Y, 0#, (Radius + X), Y, 0#)
    Part.SketchAddConstraints "sgFIXED"
    Part.ClearSelection2 True

    Loop
    Part.SketchManager.InsertSketch True
    Close #11
    End Sub
    '_______________________________
    "I problemi non possono essere risolti dallo stesso atteggiamento mentale che li ha creati"
    A. Einstein

  2. #22
    Utente Junior
    Iscritto dal
    2012
    Messaggi
    50
    Professione
    Ingegnere
    Regione
    campania
    Software
    ansys13 solidworks2012 autocad2011 matlabr2012a mathematica8.0

    Predefinito

    @Onda
    Grazie Infinite !!!!!!

  3. #23
    Moderatore L'avatar di Onda
    Iscritto dal
    2009
    Messaggi
    1035
    Professione
    Ingegnere Meccanico settore Navale
    Regione
    Italia
    Software
    SolidWorks 2015, Rhino v5, Autocad 2008, Patran 2014, Nastran 2014

    Predefinito

    Mi sembra che la macro funzioni bene, ti consiglio in ogni caso di verificare quello che ottieni, non uso le macro in SW spesso, per cui potrebbe esserci qualche funzionamento oscuro.
    in ogni caso ho scritto in excel una sfilza di numeri, copiati incollati su notepad, eliminati i tab inutili con trova->sostituisci e dato il file in pasto alla macro.
    mi ha creato 50 cerchi nelle coordinate prescelte.
    dovrebbe essere adatta al tuo scopo, sempre che tu abbia bisogno di variare il diametro dei cerchi, altrimenti quanto suggerito da marcof è senza dubbio la soluzione migliore
    "I problemi non possono essere risolti dallo stesso atteggiamento mentale che li ha creati"
    A. Einstein

  4. #24
    Utente Junior
    Iscritto dal
    2012
    Messaggi
    50
    Professione
    Ingegnere
    Regione
    campania
    Software
    ansys13 solidworks2012 autocad2011 matlabr2012a mathematica8.0

    Predefinito

    Si ho verificato funziona correttamente!
    Ho provato entrambi i modi per realizzare i fori.
    Ho la necessità di fare delle analisi sia con i fori aventi tutti lo stesso
    diametro che con i fori aventi diametri differenti.
    Grazie mille per l'aiuto !!!


  • Pagina 3 di 3 PrimaPrima 123

    Discussioni Simili

    1. NUVOLA DI PUNTI
      Di andreagzz nel forum Reverse Engineering
      Risposte: 15
      Ultimo Messaggio: 15-05-2017, 16: 15
    2. da nuvola di punti a superfice
      Di LoSte nel forum Creo Parametric - Modellazione di parti e Lamiera
      Risposte: 4
      Ultimo Messaggio: 04-12-2009, 16: 16
    3. importazione nuvola di punti .asc in pro-e
      Di jackorion nel forum Creo Parametric (ex Pro/E)
      Risposte: 17
      Ultimo Messaggio: 27-01-2009, 19: 51
    4. Gestire nuvola di punti
      Di cccicccio nel forum Reverse Engineering
      Risposte: 1
      Ultimo Messaggio: 10-10-2008, 22: 00
    5. Importare nuvola di punti
      Di peppo82 nel forum Solidworks
      Risposte: 0
      Ultimo Messaggio: 07-07-2008, 11: 39

    Segnalibri

    Segnalibri

    Permessi di Scrittura

    • Tu non puoi inviare nuove discussioni
    • Tu non puoi inviare risposte
    • Tu non puoi inviare allegati
    • Tu non puoi modificare i tuoi messaggi
    •  





    CAD3D.it - la community dei progettisti