Problemi con macro nella selezione e realizzazione di raccordi in un modello Solidworks

OSCAR$

Utente poco attivo
Professione: studente
Software: solidworks
Regione: piemonte
Buongiorno a tutti,
ho realizzato una serie di elementi, 32, su una piastra ed ho la necessità di raccordarli nella zona di contatto con questa.
Per fare questo ho realizzato una semplice macro, poichè il numero degli elementi può essere variabile ed ho utilizzato un ciclo for.
Non vengono realizzati tutti i raccordi , ma solo 6.
I bordi da raccordare sono selezionati tramite il comando SelectById2, poichè conosco le loro coordinate e credo che sia l'unica funzione disponibile che utilizza questo metodo, per me necessario.
Cercando in rete ho scoperto che il metodo di selezione ha dei "problemi", l'immagine deve essere sufficientemente zoomata e comprendere tutti gli elementi da raccordare, cosa che ho fatto.
Ho provato ad usare la funzione FeatureFillet3 all'interno ed all'esterno del ciclo for, nel primo caso la macro crea solo i primi 6, mentre nel secondo unisce alcuni elementi.

raggio variabile - Copia.JPGraggio variabile - Copia.JPG

Di seguito il programma in vba, sto usando Solidworks 2015.

Option Explicit
Dim swApp As SldWorks.SldWorks
Dim Part As SldWorks.ModelDoc2
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim swModView As SldWorks.ModelView

Sub main()

Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc
Set swModView = Part.ActiveView
Dim passo, i As Double
Dim delta_y, x_0, z As Double
x_0 = 159.26 / 1000
z = -1 / 1000
Dim x_angle, y_angle As Double
x_angle = -45
y_angle = 0

For i = 0 To 7
passo = (3.16 / 1000)
delta_y = (-5.5 / 1000) + (i * passo)
boolstatus = Part.Extension.SelectByID2("", "EDGE", x_0, delta_y, z, True, 1, Nothing, 0)
Next

Dim radiiArray0 As Variant
Dim radiis0 As Double
Dim dist2Array0 As Variant
Dim dists20 As Double
Dim conicRhosArray0 As Variant
Dim coniRhos0 As Double
Dim setBackArray0 As Variant
Dim setBacks0 As Double
Dim pointArray0 As Variant
Dim points0 As Double
Dim pointDist2Array0 As Variant
Dim pointsDist20 As Double
Dim pointRhoArray0 As Variant
Dim pointsRhos0 As Double
radiiArray0 = radiis0
dist2Array0 = dists20
conicRhosArray0 = coniRhos0
setBackArray0 = setBacks0
pointArray0 = points0
pointDist2Array0 = pointsDist20
pointRhoArray0 = pointsRhos0
Dim myFeature As SldWorks.Feature
Set myFeature = Part.FeatureManager.FeatureFillet3(195, 0.001, 0#, 0, 0, 0, 0, (radiiArray0), (dist2Array0), (conicRhosArray0), (setBackArray0), (pointArray0), (pointDist2Array0), (pointRhoArray0))

End Sub
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
Ciao, mi sono scontrato con la selezione parecchie volte, il problema dello zoom è reale, ed esiste la soluzione, perchè con le coordinate corrette non dovresti avere problemi, è il modo più sicuro per selezionare.
Prima del selectbyID inserisci
Part.SetPickMode()

Dovrebbe evitare di selezionare entità vicine alle coordinate del tuo bordo
 

OSCAR$

Utente poco attivo
Professione: studente
Software: solidworks
Regione: piemonte
Ciao, mi sono scontrato con la selezione parecchie volte, il problema dello zoom è reale, ed esiste la soluzione, perchè con le coordinate corrette non dovresti avere problemi, è il modo più sicuro per selezionare.
Prima del selectbyID inserisci
Part.SetPickMode()

Dovrebbe evitare di selezionare entità vicine alle coordinate del tuo bordo
Ciao, grazie per l'aiuto.
Continua a non funzionare:
  • con FeatureFillet3 all'interno del ciclo unisce alcuni elementi
  • con FeatureFillet3 all'esterno, non funziona perchè alcuni elementi non riesco a raccordarli neanche usando il comando manualente, quindi non realizzandone uno, non riesce a fare neanche gli altri.
  • mettendo FeatureFillet3 internamente od esternamente al ciclo cambio due parametri del comando SelectByID2
SelectByID2("", "EDGE", x_0, delta_y, z, False, 1, Nothing, 1)
SelectByID2("", "EDGE", x_0, delta_y, z, True, 1, Nothing, 0)
  • Part.SetPickMode è sempre all'interno del ciclo
  • Durante l'esecuzione del programma la finestra della macro è aperta ed alle volte copre il modello, può fare cambiare qualcosa?
raggio variabile - 2.JPG

Come si vede, elemento 7 non viene raccordato ed i due precedenti, uniti tra loro.
 

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
Non cambia niente se l'area grafica è coperta.
Dovresti girare anche il modello assieme alla macro per poter testare
 

OSCAR$

Utente poco attivo
Professione: studente
Software: solidworks
Regione: piemonte
Allegato
 

Allegati

  • raggio variabile - Copia.rar
    2 MB · Views : 2

jenuary

Utente Standard
Professione: Progettista e Programmatore VB.Net
Software: Solidworks
Regione: Veneto
Il raggio massimo applicabile per quei bordi è 0.7 mm, con 1 mm non gira il raggio dal terzo bordo in poi.
 

sampom

Moderatore SWX, Navale
Staff Forum
Professione: Progettazione/Costruzione macchine e impianti
Software: SolidWorks 2021 SP5.1, AutoCAD (poco)
Regione: Piemonte (CN)
semplicemente dalla funzione "Raccordo", non riesci a farlo?
Puoi selezionare tutti gli spigoli sul fondo piastra, dalla barra/menù che ti appare appena clicchi su uno di essi:
 

Allegati

  • RACCORDA TUTTI.jpg
    RACCORDA TUTTI.jpg
    102 KB · Views : 12

OSCAR$

Utente poco attivo
Professione: studente
Software: solidworks
Regione: piemonte
Ecco il raccordo anomalo
 

Allegati

  • raccordo anomalo.jpg
    raccordo anomalo.jpg
    119.1 KB · Views : 5

OSCAR$

Utente poco attivo
Professione: studente
Software: solidworks
Regione: piemonte
semplicemente dalla funzione "Raccordo", non riesci a farlo?
Puoi selezionare tutti gli spigoli sul fondo piastra, dalla barra/menù che ti appare appena clicchi su uno di essi:
ciao, grazie per aver risposto.
Ho provato, ma non funziona, inoltre ne seleziona altri che non centrano nulla.
Più che altro mi interessa farlo funzionare tramite macro per necessità di poter variare il numero di elementi.
 

sampom

Moderatore SWX, Navale
Staff Forum
Professione: Progettazione/Costruzione macchine e impianti
Software: SolidWorks 2021 SP5.1, AutoCAD (poco)
Regione: Piemonte (CN)
ciao, grazie per aver risposto.
Ho provato, ma non funziona, inoltre ne seleziona altri che non centrano nulla.
Più che altro mi interessa farlo funzionare tramite macro per necessità di poter variare il numero di elementi.
molto probabile, come già hanno scritto sopra, che il problema sia il raggio troppo ampio che interseca eccessivamente con quelli attigui (per curiosità, prova a ridurlo fino ad un valore che venga accettato).
Quella funzione raccorda tutti gli spigoli che trova tra le estrusioni verticali ed il fondo; se qualcuno non ti serve, puoi deselezionarli singolarmente cliccando a schermo sulla "linea fantasma" di quello spigolo.

Ma ripeto, non puoi forzare il sistema con raggi incompatibili. Non nella stessa funzione, almeno
 

Statistiche forum

Discussioni
57,934
Messaggi
493,596
Utenti registrati
102,354
Ultimo utente registrato
Massimo p

Utenti online

Nessun utente è online al momento.

Top