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.

di 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
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.


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