• Ce forum est la traduction générée par la machine de www.cad3d.it/forum1 - la communauté italienne du design. Plusieurs termes ne sont pas traduits correctement.

Problèmes de macros dans la sélection et la réalisation des raccords dans un modèle Solidworks

OSCAR$

Guest
Bonjour à tous,
J'ai fait une série d'éléments, 32, sur une plaque et je dois les recueillir dans la zone de contact avec cela.
Pour ce faire, j'ai fait une macro simple, car le nombre d'éléments peut être variable et j'ai utilisé un cycle pour.
tous les accessoires ne sont pas fabriqués, mais seulement 6.
les bords à connecter sont sélectionnés par la commande Sélectionner, comme je connais leurs coordonnées et je pense que c'est la seule fonction disponible qui utilise cette méthode, pour moi nécessaire.
recherche sur le net j'ai trouvé que la méthode de sélection a des "problèmes", l'image doit être suffisamment zoomé et comprendre tous les éléments à relier, ce que j'ai fait.
J'ai essayé d'utiliser la fonction Caractéristiques3 à l'intérieur et à l'extérieur du cycle, dans le premier cas la macro ne crée que le premier 6, tandis que dans le second elle combine quelques éléments.
raggio variabile - Copia.JPGraggio variabile - Copia.JPGdi seguito il programma in vba, sto usando solidworks 2015.

option explicite
dim échange comme sldworks. Soldworks
dim partie comme sldworks.modeldoc2
dim boolstatus en tant que booléen
dim longstatus aussi longtemps, longs avertissements
dim swmodview comme sldworks.modelview

Sous-main()

définir swapp = application. Soldworks

set part = swapp.activedoc
set swmodview = part.activeview
Dim passo, je suis double
dim delta_y, x_0, z comme double
x_0 = 159.26 / 1000
z = -1 / 1000
dim x_angle, y_angle double
x_angle = -45
_angle_y = 0

pour i = 0 à 7
Passo = (3.16 / 1000)
delta_y = (-5,5 / 1000) + (i * passo)
boolstatus = part.extension.selectbyid2(", "edge", x_0, delta_y, z, true, 1, rien, 0)
suivant

dim radiarray0 comme variante
dim radis0 double
dim dist2array0 comme variante
dim dists20 comme double
dim conicrhosarray0 comme variante
dim conirhos0 double
dim difbackarray0 comme variante
dim revers0 comme double
dim pointarray0 comme variante
dim points0 comme double
Dim pointdist2array0 comme variante
dim pointsdist20 comme double
dim pointrhoarray0 comme variante
dim pointsrhos0 double
radiiarray0 = radiis0
dist2array0 = dist20
conicrhosarray0 = conirhos0
échec = revers 0
pointarray0 = points0
pointdist2array0 = pointdist20
pointrhoarray0 = pointrhos0
Dim myfeature comme sldworks. Caractéristique
définir myfeature = part.featuremanager.featurefilet3(195, 0.001, 0#, 0, 0, 0, (radiarray0), (dist2array0), (conicrhosarray0), (setbackarray0), (pointarray0), (pointdist2array0), (pointrhoarray0))

fin sous
 
Salut, je me suis heurté à la sélection plusieurs fois, le problème de zoom est réel, et il y a la solution, car avec les coordonnées correctes vous ne devriez pas avoir de problèmes, c'est la meilleure façon de choisir.
avant d'entrer selectbyid
partie.setpickmode()

devrait éviter de sélectionner des entités proches des coordonnées de votre bord
 
Salut, je me suis heurté à la sélection plusieurs fois, le problème de zoom est réel, et il y a la solution, car avec les coordonnées correctes vous ne devriez pas avoir de problèmes, c'est la meilleure façon de choisir.
avant d'entrer selectbyid
partie.setpickmode()

devrait éviter de sélectionner des entités proches des coordonnées de votre bord
Bonjour, merci pour votre aide.
continuer à ne pas travailler:
  • contre Caractéristiques3 à l'intérieur du cycle combine certains éléments
  • contre Caractéristiques3 dehors, cela ne fonctionne pas parce que certains éléments ne peuvent même pas les connecter en utilisant la commande manuelle, de sorte qu'il ne fait pas un, il ne peut même pas faire les autres.
  • par Caractéristiques3 od interne étendu au cycle de changement dû parametri de commandement Sélectionner
selectbyid2(", "edge", x_0, delta_y, z, false, 1, rien, 1)
selectbyid2(", "edge", x_0, delta_y, z, true, 1, rien, 0)
  • Par. Mode Setpick est toujours dans le cycle
  • pendant l'exécution du programme la fenêtre macro est ouverte et parfois couvre le modèle, pouvez-vous changer quelque chose?
raggio variabile - 2.JPGComme vous pouvez le voir, l'élément 7 n'est pas connecté et les deux précédents, réunis ensemble.
 
rien ne change si la zone graphique est couverte.
vous devriez également tourner le modèle avec la macro pour tester
 
le rayon maximal applicable pour ces bords est de 0,7 mm, 1 mm ne tourne pas le rayon à partir du troisième bord.
 
Vous ne pouvez pas faire ça ?
vous pouvez sélectionner tous les bords de la plaque inférieure, à partir de la barre / homme qui vous apparaît dès que vous cliquez sur l'un d'eux:
 

Pièces jointes

  • RACCORDA TUTTI.jpg
    RACCORDA TUTTI.jpg
    102 KB · Affichages: 12
Vous ne pouvez pas faire ça ?
vous pouvez sélectionner tous les bords de la plaque inférieure, à partir de la barre / homme qui vous apparaît dès que vous cliquez sur l'un d'eux:
Bonjour, merci d'avoir répondu.
J'ai essayé, mais ça ne marche pas, il sélectionne aussi d'autres qui ne frappent rien.
plus que tout autre chose que je suis intéressé à l'exécuter à travers macro pour avoir besoin de varier le nombre d'articles.
 
Bonjour, merci d'avoir répondu.
J'ai essayé, mais ça ne marche pas, il sélectionne aussi d'autres qui ne frappent rien.
plus que tout autre chose que je suis intéressé à l'exécuter à travers macro pour avoir besoin de varier le nombre d'articles.
très probable, comme ils l'ont déjà écrit ci-dessus, que le problème est le rayon trop large qui se croise excessivement avec les adjacents (par curiosité, essayez de le réduire à une valeur qui est acceptée).
cette fonction recueille tous les bords trouvés entre les extrusions verticales et le bas; Si vous n'avez pas besoin de quelqu'un, vous pouvez les décocher individuellement en cliquant sur la "ligne fantôme" de ce bord.

Mais je répète, vous ne pouvez pas forcer le système avec des rayons incompatibles. pas dans la même fonction, au moins
 

Statistiques du forum

Sujets
58 521
Messages
499 056
Membres
104 110
Dernier membre
ChristianR

Membres en ligne

Aucun membre en ligne actuellement.
Retour
Haut