Pagina 2 di 2 PrimaPrima 12
Risultati da 11 a 20 di 20
  1. #11
    Utente Standard L'avatar di jenuary
    Iscritto dal
    2007
    Messaggi
    385
    Professione
    Progettista e Programmatore VB.Net
    Regione
    Veneto
    Software
    Solidworks

    Icon7 Soluzione

    Ciao, ho testato nuovamente la tua macro, l'ho modificata e credo che ora non ti darà più problemi (almeno spero).
    Qui sotto, ti riporto le varianti fatte e il loro perchè, che potrà magari diventare argomento di confronto.
    Inanzitutto ho portato Pigreco(Pi) come costante nelle dichiarazioni.

    Le variabili :

    Dim R As Double
    Dim Ri As Double
    Dim Re As Double
    Dim Rho As Double
    Dim alpha_rad As Double

    che avevi dichiarato nell'evento Sub CmdParametri_Click(), si distruggono automaticamente all'uscita di questa Sub,
    e per questo le ho spostare nell'evento Sub CmdDisegna_Click(), oppure potresti spostarle nelle dichiarazioni.

    A parte questo, il problema più grosso sta nella scala della vista del template di parte; (spero di non creare confusione in questo concetto) , ma ho notato che, durante la creazione di cerchi con diametro molto simile, e piu la distanza della vista del disegno aumenta, automaticamnete Solidworks "vede" una coincidenza tra i cerchi, generando il secondo tangente al primo (il tuo file aveva due cechi tangenti).
    Per questo nel codice ho inserito dopo il primo cerchio l'ottimizzazione della vista, e una cancellazione delle selezioni.
    E' un po quello che succede quando fai la stessa cosa manualmente, e da distante non riesci a dare precisione, toccando l'altro cerchio.

    Ps.: Tornando alle varibili descritte sopra, ti trovavi che nella fase di disegno le variabili non erano dimensionate.
    Vba, a differenza di VB.net e VB6 dimensiona automaticamente le variabili, ma quasi sempre da problemi.
    Se vuoi essere piu sicuro scrivi nella parte delle dichiarazioni, come prima riga:
    Option Explicit
    così Vba richiede che tutto sia "dichiarato".

    Fammi sapere se abbiamo risolto.
    Ciao
    Jenuary
    File Allegati File Allegati

  2. #12
    Utente Junior
    Iscritto dal
    2008
    Messaggi
    12
    Professione
    Studente
    Regione
    Emilia Romagna
    Software
    SolidWorks 2013

    Predefinito

    Buongiorno!
    Grazie ancora per l'aiuto, ma il risultato della macro è uno schizzo totalmente bianco, senza traccia di alcuna circonferenza.
    Secondo me ho problemi di installazione... Ultima spiaggia!

  3. #13
    Utente Standard L'avatar di jenuary
    Iscritto dal
    2007
    Messaggi
    385
    Professione
    Progettista e Programmatore VB.Net
    Regione
    Veneto
    Software
    Solidworks

    Predefinito

    Ciao, prova a verificare le impostazioni internazionali del sistema, dal pannello di controllo ->Paese e lingua -> Impostazioni aggiuntive -> Separatore decimale
    Verifica che sia impostato sul "." e fai una prova.

  4. #14
    Utente Junior
    Iscritto dal
    2008
    Messaggi
    12
    Professione
    Studente
    Regione
    Emilia Romagna
    Software
    SolidWorks 2013

    Predefinito

    Ciao Jenuary, come al solito non mi arrendo facilmente!
    Ho verificato che nelle impostazioni Paese e Lingua avevo la virgola come separatore decimale. Dunque ho impostato il punto "." ed ho avviato la macro. Sempre e solo il risultato di prima, quindi il problema persiste.
    Inoltre ho provato a scrivere una macro il cui obiettivo è tracciare 4 circonferenze sul piano frontale i cui raggi sono semplicemente numeri e non funzioni. Il risultato funziona alla perfezione, quindi SolidWorks vede bene le differenze (anche minime) tra i raggi di due circonferenze.
    Mi spiego meglio: il mio obiettivo è tracciare le 4 circonferenze caratterizzate da 4 raggi tra lori diversi:

    1) R = 0.016
    2) Ri = 0.0135
    3) Re = 0.018
    4) rho = 0.01503508193

    Se inserisco questi valori di raggi all'interno del codice VBA, la macro riesce a disegnare alla perfezione queste circonferenze.
    Se i raggi fossero funzioni di altri parametri ridondanti, la circonferenza "rho" non viene tracciata bene e vorrei capirne il motivo.

    La definizione delle circonferenze mi suggerisce che ci sia qualche problema di fondo nelle funzioni composte perché la circonferenza che risulta essere più complessa è (guarda caso) rho.
    Infatti:

    R = m * z * 0.5
    Re = R + m
    Ri = R - 1.25 * m
    rho = R * Cos(Alpha_deg * Pi / 180)

    Ho fatto un ulteriore esperimento: se definissi il raggio rho come segue, SolidWorks disegna bene questa circonferenza:

    rho' = R + Cos(Alpha_deg * Pi / 180)

    Praticamente la somma di due funzioni le "riconosce bene", il prodotto tra due funzioni invece no!
    Stessa cosa dicasi se intendo rho nel seguente modo:

    rho'' = R - Cos(Alpha_deg * Pi / 180)

    Per disegnare una ruota dentata ci sarebbero da disegnare un bel po' di funzioni, ma se fin dall'inizio non riesco a disegnare 4 cerchi distinti.... Chissà che problemi incontrerò!

    Saluti a tutti!

  5. #15
    Utente Standard L'avatar di jenuary
    Iscritto dal
    2007
    Messaggi
    385
    Professione
    Progettista e Programmatore VB.Net
    Regione
    Veneto
    Software
    Solidworks

    Icon14 Alternativa

    Sinceramente non riesco a caoire dove risieda il problema, a me funziona, ma volevo comunque proporti un'alternativa, che secondo eviterebbe un sacco di problemi nella fase di disegno mediante programmazione.
    Io disegnerei all'interno di un file di template, dove al suo interno c'è e il mio schizzo della ruota dentata.
    Per schizzo intendo i 4 cerchi e il dente, tutto gia quotato e parametrizzato e legato da equazioni.
    Questo dente è poi ripetuto a seconda del mio numero di denti, mediante ripetizione circolare dello schizzo.
    La tua macro, in realtà deve eseguire solo i calcoli, e modificare le quote che tra l'altro hanno un nome noto e quindi facilmente identificabile e modificabile.
    Al cambio di ogni valore delle quote, non bisogna aggiornare, ma si aggiorna solo alla fine.
    Ecco che così dovresti riuscire a creare tutte le ruote dentate a catalogo.
    ancora meglio potresti crearti un file tabulato o on file Excel dove metti in ogni riga i valori di ogni ruota.
    Nel tuo form crei una datagrid o ona listview importando i dati, al click della riga scelta scateni l'aggiornamento delle quote.
    Io lo faccio già con viti, spine, normalizzati vari, ecc; è un po il concetto delle configurazioni.
    Credimi che è molto facile da fare.
    Ciao Roberto

  6. #16
    Utente Junior
    Iscritto dal
    2008
    Messaggi
    12
    Professione
    Studente
    Regione
    Emilia Romagna
    Software
    SolidWorks 2013

    Predefinito

    Ciao Roberto,
    Il tuo concetto è ottimo ma adesso provo a spiegarti il perché della mia preferenza di adottare il metodo della macro.
    Ho già un foglio di calcolo Excel che in base ad i soliti 4 parametri mi disegna le 4 circonferenze ed un dente di ruota dentata. Il vero problema è l'impossibilità "immediata" di scegliere quanti punti a piacere si vogliono per tracciare l'arco di evolvente. Quello che disegno non è e non sarà una ruota dentata approssimata ma si tratta di un disegno abbastanza realistico, per tale motivo anche Excel richiederebbe una macro dove al suo interno stabilisci il valore di step o incremento per tracciare la funzione evolvente.
    Inoltre, tutto ciò che ha generato Excel io l'ho sempre importato per punti in SolidWorks ed ho tracciato una curva con coordinate XYZ. Stabilire a priori i punti fitti a puacere sarebbe una cosa molto interessante.
    Questo è il motivo principale, cioè la necessità di scrivere una macro o in Excel o in Solidworks.
    Il secondo motivo è ancora più semplice: faccio tutti i calcoli su Excel, importo curve e dati da Excel per poi buttare tutto dentro in SolidWorks. Ha senso? Direi di no perché anche SolidWorks riesce a gestire bene i dati attraverso una macro. Tanto vale iniziare tutto in un programma unico e flessibile.
    Ormai sono in preda all'ultimo esame della triennale, ma dopo giorno 15 starò praticamente 24h su 24h attaccato al pc solo per poter individuare l'errore.
    Più che altro, a prescindere dall'esattezza del codice VBA, potresti dirmi come effettuare una installazione sicuramente funzionante di SolidWorks 2013? Probabilmente mi manca uno o più componenti che fanno crashare la macro in esecuzione (perchè quando eseguo la tua macro non va in modalità debug, cioè non si blocca).
    Grazie ancora, tanta stima per te e per l'aiuto che mi stai dando.
    Saluti,

    Kalo

  7. #17
    Utente Standard L'avatar di jenuary
    Iscritto dal
    2007
    Messaggi
    385
    Professione
    Progettista e Programmatore VB.Net
    Regione
    Veneto
    Software
    Solidworks

    Predefinito

    Ciao Kalo,
    prima di installare Sw2013, io disinstallerei l'attuale installazione.
    Dalla rel.2012 (mi sembra non dalla 2011), puoi disinstallare solidworks con l'opzione di eliminare anche le chiavi di registro.
    Questa bella cosa ripulisce abbastanza bene il disco dalla vecchia installazione e la nuova installa tutto nuovamente.
    Ho avuto di recente un problema in fase di programmazione, dove alla riga
    GetSelectedObject5
    mi dave errore, come se la libreria non esistesse o fosse danneggiata.
    Talvolta puo essere sufficiente fare un rispristino di Solidworks, ma per quanto mi riguarda fa ben poco, ma questa è una mia opinione.
    Ti consiglio appunto di disinstallare con l'opzione di cancellazione delle chiavi di registro e tutte le cartelle, e poi installare nuovamente.
    Ciao
    Jenuary

  8. #18
    Utente Junior
    Iscritto dal
    2008
    Messaggi
    12
    Professione
    Studente
    Regione
    Emilia Romagna
    Software
    SolidWorks 2013

    Predefinito

    Ciao Roberto,
    Questo tentativo l'ho già fatto ma senza successo.
    Ieri stavo pensando se il problema fosse causato da Net Framework 4.5.
    Sono molto tentato a fare un bel format C: ed installare tutto da capo.
    Ho installato SolidWorks almeno 6 volte, cambiando di volta in volta la versione.
    Saluti!

  9. #19
    Utente Junior
    Iscritto dal
    2008
    Messaggi
    12
    Professione
    Studente
    Regione
    Emilia Romagna
    Software
    SolidWorks 2013

    Predefinito

    Ciao! Ci sono delle "news" scottanti!
    Oggi pomeriggio ho formattato il mio laptop e prima di procedere all'installazione degli aggiornamenti di Windows 7 Professional x64 ho subito installato i driver NVidia e SolidWorks 2013 SP 3.0 x64. Una volta installato SolidWorks, apro la macro, la eseguo e con stupore vedo 4 circonferenze, quindi si può finalmente dire che il problema risiede su qualche file di sistema che si era corrotto.
    Procedendo con gli aggiornamenti ed installazione di altri programmi che uso quotidianamente, ho riavviato (come richiesto da Windows Update) e vado subito a lanciare la macro: risultato sconvolgente perché ci sono di nuovo 3 circonferenze e la quarta è sovrapposta a quella più interna.
    Dunque mollo ogni tentativo di riscrivere la macro in altro modo (a dir la verità la settimana scorsa ho provato a scrivere 2 macro diverse in C# ed in VB.NET con il medesimo risultato di 3 circonferenze) e più in avanti magari dedicherò una partizione del mio hardisk alla sezione CAD3D.

    A questo punto mi è doveroso porti una domanda: che sistema operativo gira sulla tua macchina dove esegui SolidWorks? Probabilmente con Windows 8 si potrebbero risolvere parecchi problemi ma quell'interfaccia Metro senza un Desktop funzionale non mi è per niente semplice e familiare... Preferisco attendere Windows 8.1.
    Saluti!

  10. #20
    Utente Standard L'avatar di jenuary
    Iscritto dal
    2007
    Messaggi
    385
    Professione
    Progettista e Programmatore VB.Net
    Regione
    Veneto
    Software
    Solidworks

    Predefinito

    Ciao Kalo,
    io lavoro in Windows 7 a 64bit, e sinceramente mi trovo bene.
    Per Windows 8 preferisco apettare almeno un altro anno.
    VB.net gira bene e non ho problemi.
    Sono contento che hai risolto il problema.
    Saluti


  • Pagina 2 di 2 PrimaPrima 12

    Discussioni Simili

    1. Macro interessanti per SolidWorks
      Di cubalibre00 nel forum Solidworks
      Risposte: 103
      Ultimo Messaggio: 13-09-2017, 16: 12
    2. Impostare un equazione con Solidworks 2013
      Di JJLegends nel forum Solidworks
      Risposte: 5
      Ultimo Messaggio: 17-08-2013, 20: 32
    3. Solidworks 2013
      Di Besson nel forum Solidworks
      Risposte: 24
      Ultimo Messaggio: 16-04-2013, 10: 07
    4. cambiare lingua solidworks 2013
      Di mirko08 nel forum Solidworks
      Risposte: 7
      Ultimo Messaggio: 20-03-2013, 16: 58
    5. Macro solidworks
      Di matty nel forum Solidworks
      Risposte: 16
      Ultimo Messaggio: 03-02-2012, 11: 51

    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