Projet : Feature
Dans l’exemple suivant, nous allons voir comment créer une variante de design avec script. À l’heure actuelle, cette fonction n’est pas encore disponible dans sa version complète.
La variante utilisée ici a pour origine deux rabats de tôle placés sur deux éléments de tôle. Un rabat doit être ajouté à chacun des deux éléments, de façon à ce que les deux rabats se rejoignent dans une surface pour y être ensuite boulonnés. Les deux rabats sont placés de façon à se retrouver dans la bissectrice entre les deux rabats d’origine.
Étape 1 : créer une scène
(cf. Exemple d’une variante de design pour usinage de tôle)
Créez une tôle de base comme origine de la variante.
Raccourcissez la tôle selon une valeur quelconque.
Ajoutez les rabats en choisissant le paramètre Ajouter sans interruption.
Ajoutez un perçage standard.
Construisez le second élément à l’identique.
Ajoutez un élément vide en tant qu’élément secondaire aux éléments de tôles créés.
Faites de l’élément vide une base de variante à l’aide de la fonction Corps de base de la variante de design : Non (le texte Oui ou Non fait toujours référence à l’état actuel. Vous pouvez le modifier en cliquant sur l’une des deux options).
Étape 2 : paramétrer le 1er élément
Les paramètres de la variante de design doivent être définis comme variables du corps de base de la variante de design.
Créez les variables suivantes :
Activez la tôle de base et exécutez la fonction Formule pour l’élément usiné. Entrez la formule part_of_edge(arete1) ainsi que la formule part_of_edge(arete2) pour la 2e tôle de base.
Étape 3 : ajouter une nouvelle étape de Feature Exécution de script
Il est possible d’ajouter un Virtual Basic Script (VBS) à la liste de Feature dans lequel il est possible d'accéder aux variables de l’élément calculé, de calculer des valeurs dans HiCAD grâce aux outils Basic et une interface COM, et d'attribuer des variables. Ces variables sont ensuite utilisées dans les formules des prochains Features.
Le script sera ajouté avant le Feature dont le menu contextuel a été utilisé pour exécuter la fonction.
Script |
Description |
---|---|
set partVariables = CreateObject ("HicadNext.Variables") |
Dans un VBS, les objets mis à disposition par un serveur COM doivent être créés en utilisant la variable ‘CreateObject’
|
set variantVariables = CreateObject ("HicadNext.Variables") |
|
set c = CreateObject ("Hicad-Next.Const") |
|
partVariables.MakeCurrentVars() 'Variables de l’élément |
'MakeCurrentVars’ : accorde l’accès aux variables de l’élément venant d’être calculé. 'MakeVariantVars’ : une variante de design crée un Feature de variante de design pour tous les éléments usinés ou créés dans la scène. Ces Features fonctionnent avec un code de données commun auquel les variables de paramètre de la variante - et eux seuls - appartiennent. Les variables de variante vous permettent de mémoriser les informations pouvant être utilisées pour le recalcul d’autres éléments lors du recalcul d’un seul élément. |
variantVariables.MakeVariantVars() 'Variables locales de la variante |
|
ownIndex = "1" |
Les scripts des deux éléments sont uniquement différenciés par cette entrée. |
otherIndex = "2" |
|
'Arêtes devant être rabattues |
Crée les objets d’arête des deux arêtes paramétrées de la variante et leur assigne des valeurs de variable. |
set ownEdge = CreateObject ("HicadNext.Edge") |
|
call partVariables.GetEdgeVar ("arete"+ownIndex, ownEdge) |
|
'Arêtes de l’autre élément |
|
set otherEdge = CreateObject ("HicadNext.Edge") |
|
call partVariables.GetEdgeVar ("arete"+otherIndex, otherEdge) |
|
'Détermine la 1re facette depuis l’arête |
Détermine la facette supérieure du rabat de tôle rattachée à l’arête de l’élément actuel. |
set ownFace= CreateObject ("HicadNext.Face") |
|
'1er rabat de tôle |
|
set ownSheet = CreateObject ("HicadNext.Sheet") |
Un objet de type « Sheet » correspond à un rabat de tôle avec une facette marquée obtenue via l’arête indiquée à la création de l’objet. |
call ownSheet.Construct (ownEdge) |
|
'1re facette supérieure call ownSheet.GetFace(ownFace) |
|
'Détermine la 2e facette (depuis l’arête ou la facette marquée) |
Détermine la facette supérieure du rabat de tôle appartenant à l’arête de l’autre élément : Si l’autre élément a déjà été calculé, l’arête rabattue dans l’autre élément n’est plus disponible. La facette supérieure de l’autre rabat sera récupérée dans la variable de variante où elle a été enregistrée à l'exécution du script de l’autre élément. |
set otherFace= CreateObject ("HicadNext.Face") |
|
if (otherEdge.index = 0) then call variantVari-ables.GetFaceVar("facettedereference"+otherIndex, otherFace) 'msgbox "facettedereference"+otherIndex+" "+cstr(otherFace) |
|
else '2e rabat de tôle set otherSheet = CreateObject ("HicadNext.Sheet") call otherSheet.Construct (otherEdge) |
|
'2e facette supérieure call otherSheet.GetFace(otherFace) |
|
end if |
|
'L’angle entre les rabats
|
Il est désormais possible de calculer l’angle entre les facettes. |
sheetAngle = 180-ownFace.Angle (otherFace) |
|
'Raccourcissement de tôle thickness = ownSheet.GetThickness() radius = partVariables.GetRealVar ("rayondecourbure") |
Le raccourcissement est calculé à partir de l'épaisseur de tôle et du rayon de courbure, ainsi que de l'angle entre les tôles. Note : le VBS fonctionne avec des angles mesurés en radians. |
beta= sheetAngle/2 betaRad = beta*(c.Pi()/180) d = (thickness+radius) * tan betaRad/2) |
|
'Données requises pour le boulonnage edgeLength = ownEdge.GetLength() |
Calcule les données requises pour le boulonnage Le calcul doit avoir lieu avant l’ajout du rabat ; autrement, l’arête dont la longueur est requise ne sera plus disponible. |
outerDist = 30 maxDist = 40 |
|
dist1 = edgeLength-2*outerDist count = round (dist1/maxDist + 0.5) if (count <= 1) then dist = 0 |
|
else dist = dist1/(count-1) end if |
|
'Écrit les valeurs dans les variables d’HiCAD |
Définit les variables dans HiCAD. |
call partVariables.SetRealVar ("nombre", count) call partVariables.SetRealVar ("distance", dist) call partVariables.SetRealVar ("angle", sheetAngle/2) call partVariables.SetRealVar ("raccourcissement", d) call variantVariables.SetFaceVar ("facettedereference"+ownIndex, ownFace) |
Il est possible de simplement copier le script pour le deuxième élément et de remplacer le « 1 » placé au début de chaque ligne par un « 2 ».
En double-cliquant sur le Feature, vous pouvez modifier le script d’un Feature de script.
À ce stade, consultez les informations sur les variables d’élément et les variables d’historique.
Étape 4 : Ajouter la variante
Après avoir ajouté les variantes, les deux éléments de tôle possèdent chacun un Feature de variante de design.
© Copyright 1994-2021, ISD Software und Systeme GmbH |
Protection de la vie privée • Conditions générales de ventre • Cookies • Contact • Mentions légales