SDK

Fonctions

int SPI_CAL_speed (int iFlag, double diam, double *vc, double *vr)
 Calcule la vitesse de coupe ou rotation.
 
int SPI_CAL_feedrate (int iFlag, int nbTeeth, double vr, double *vteeth, double *vfeed)
 Calcule la vitesse de coupe ou rotation.
 
double SPI_CAL_read_length_accuracy ()
 Lit la valeur de tolérance de longueur utilisée par GO2cam.
 
double SPI_CAL_angle (double x, double y)
 Calcule l'angle du triangle dont le cote adjacent vaut x et
le cote oppose vaut y.
 
double SPI_CAL_dist_2pts (double *pt1, double *pt2)
 Calcule la distance entre deux points.
 
void SPI_CAL_step_and_number (int flagEven, double length, double *lengthBegin, double *lengthEnd, double *step, int *number)
 Calcule le nombre et la raison / hauteur totale (Suite)
 
double SPI_CAL_read_facet_accuracy ()
 Lit la tolérance de la courbe (pour la décomposition en segments)
 
double SPI_CAL_read_unit_ratio ()
 Lit le rapport entre mm/unité utilisateur (ex inch :1/INCHCOEF)
 
double SPI_CAL_read_dimension_ratio ()
 Lit le rapport entre mm/unité utilisateur (ex inch :1/INCHCOEF)
 
double SPI_CAL_acosinus (double x)
 Calcule l'arcosinus d'un angle.
 
void SPI_CAL_angle_arc (double *elt, double *radius, double *angBeg, double *angEnd, double *dAngle)
 Calcule les angles de départ, d'arrivée et le rayon d'un cercle.
 
int SPI_CAL_fillet_2lines (double *line1, int side1, double *line2, int side2, double radius, double *fillet)
 Calcule un congé entre 2 droites.
 
void SPI_CAL_mat_coo (double *mat, double *pt, double *ps)
 Calcule les coordonnées d'un point transformé par une matrice.
 
void SPI_CAL_mat_pro (double *mat1, double *mat2, double *mat)
 calcule le produit de 2 matrices 3X3
 
void SPI_CAL_mat_inv (double *mat1, double *mat2)
 calcule la matrice inversée
 
void SPI_CAL_mat_vnorm (double *vec, double *mat)
 calcule la matrice du plan qui a ce vecteur normal
 
int SPI_CAL_intersection_elt (int type1, double *param1, int type2, double *param2, int *nbInter, double *pt1, double *pt2)
 calcule l'intersection entre 2 élements géometrique
 
int SPI_CAL_intersection (int ind1, int ind2, int unlimit, int *nbInter, int *indloc)
 calcule l'intersection entre 2 élements géometrique
 
int SPI_CAL_facet_arc (int way, double *eltParam, double toler, int *indloc)
 Facétise un arc / toler en une liste de segments.
 
void SPI_CAL_change_reference_elt (int refPlane, int ptPlane, int nbPt, double *listPt)
 Change le repère du tableau de points.
 
void SPI_CAL_change_reference_point (int refPlane, int ptPlane, double *ptIn, double *ptOut)
 Calcule les coordonnées du point dans un autre plan.
 
int SPI_CAL_pt_stock_lathe (int iFlag, double *ptRef, double angle, double *ptStock)
 Calcule l'intersection entre le brut et une droite passant par un
point suivant une direction.
 
int SPI_CAL_max_stock_lathe (double *ptMin, double *ptMax)
 Calcule les maxi du brut courant ( brut de tournage )
Ptmax.
 

Description détaillée

Base

Documentation des fonctions

◆ SPI_CAL_acosinus()

double SPI_CAL_acosinus ( double x)

Calcule l'arcosinus d'un angle.

Renvoie
angle (radian) correspondant à l'arcosinus de x
angle := RCALL(SPI_CAL_acosinus,0.7);
double SPI_CAL_acosinus(double x)
Calcule l'arcosinus d'un angle.
Definition sp_cal01.c:376

◆ SPI_CAL_angle()

double SPI_CAL_angle ( double x,
double y )

Calcule l'angle du triangle dont le cote adjacent vaut x et
le cote oppose vaut y.

Paramètres
[in]xCôté adjacent
[in]yCôté opposé
Renvoie
Valeur de l angle
Remarques
L'angle retourné est toujours compris entre 0 et 2*pi en Radian
angle := RCALL(SPI_CAL_angle,10,20);
double SPI_CAL_angle(double x, double y)
Calcule l'angle du triangle dont le cote adjacent vaut x et le cote oppose vaut y.
Definition sp_cal01.c:172

◆ SPI_CAL_angle_arc()

void SPI_CAL_angle_arc ( double * elt,
double * radius,
double * angBeg,
double * angEnd,
double * dAngle )

Calcule les angles de départ, d'arrivée et le rayon d'un cercle.

Paramètres
[in]eltcaractéristiques du cercle point de depart, point d'arrivée et centre (TR9)
[out]radiusrayon du cercle ou de l'arc
[out]angBegangle de d'part en radian entre 0 et 2Pi
[out]angEndangle de fin en radian entre 0 et 2Pi
[out]dAngledifférence angulaire
PCALL(SPI_CAL_angle_arc,tab9,radius,ang_begin,ang_end,dang);
void SPI_CAL_angle_arc(double *elt, double *radius, double *angBeg, double *angEnd, double *dAngle)
Calcule les angles de départ, d'arrivée et le rayon d'un cercle.
Definition sp_cal01.c:399

◆ SPI_CAL_change_reference_elt()

void SPI_CAL_change_reference_elt ( int refPlane,
int ptPlane,
int nbPt,
double * listPt )

Change le repère du tableau de points.

Paramètres
[in]refPlaneplan de référence
[in]ptPlaneplan des points
[in]nbPtnombre de points a traiter (CBddTRIPLET)
[in,out]listPtliste de point à traiter (nbpt*TR3)
Remarques
Pour projeter un point SPI_CAL_change_reference_elt(0,5,1,TR3)
Pour projeter un arc SPI_CAL_change_reference_elt(0,5,3,TR9)
PCALL(SPI_CAL_change_reference_elt,1,3,10,list_pt);
void SPI_CAL_change_reference_elt(int refPlane, int ptPlane, int nbPt, double *listPt)
Change le repère du tableau de points.
Definition sp_cal01.c:831

◆ SPI_CAL_change_reference_point()

void SPI_CAL_change_reference_point ( int refPlane,
int ptPlane,
double * ptIn,
double * ptOut )

Calcule les coordonnées du point dans un autre plan.

Version
5.8
Paramètres
[in]refPlaneplan de référence
[in]ptPlaneplan du point
[in]ptIncoordonnées du point dans son plan de référence
[in,out]ptOutcoordonnées du point dans le plan ciblé
PCALL(SPI_CAL_change_reference_point,1,3,pt_in,pt_out);
void SPI_CAL_change_reference_point(int refPlane, int ptPlane, double *ptIn, double *ptOut)
Calcule les coordonnées du point dans un autre plan.
Definition sp_cal01.c:876

◆ SPI_CAL_dist_2pts()

double SPI_CAL_dist_2pts ( double * pt1,
double * pt2 )

Calcule la distance entre deux points.

Version
6.04
Paramètres
[in]pt1premier point (TR3)
[in]pt2deuxième point (TR3)
Renvoie
Distance
dist := RCALL(SPI_CAL_dist_2pts,pt1,pt2);
double SPI_CAL_dist_2pts(double *pt1, double *pt2)
Calcule la distance entre deux points.
Definition sp_cal01.c:211

◆ SPI_CAL_facet_arc()

int SPI_CAL_facet_arc ( int way,
double * eltParam,
double toler,
int * indloc )

Facétise un arc / toler en une liste de segments.

Paramètres
[in]waysens de l'arc 1 Trigo | 0 Horaire
[in]eltParamforme canonique de l'arc (Point de départ, point d'arrivée, point de centre)
[in]tolertolérance de decoupe de l'arc
[out]indlocindice du tableau alloué contenant la liste des points
Renvoie
SPI_YES si Ok | SPI_NO si erreur
Remarques
Utiliser les fonctions d'allocation avec un SPI_LOC_TYPTR3
ier := ICALL(SPI_CAL_facet_arc,1,tab9,0.001,indloc);
int SPI_CAL_facet_arc(int way, double *eltParam, double toler, int *indloc)
Facétise un arc / toler en une liste de segments.
Definition sp_cal01.c:771
Voir également
SPI_LOC_find_first_array,
SPI_LOC_alloc_array, SPI_LOC_free_array,
SPI_LOC_write_one_in_array, SPI_LOC_read_one_in_array

◆ SPI_CAL_feedrate()

int SPI_CAL_feedrate ( int iFlag,
int nbTeeth,
double vr,
double * vteeth,
double * vfeed )

Calcule la vitesse de coupe ou rotation.

Version
5.1

param[in] iFlag 0 vfeed = vr * vteeth * nbteeth ,
1 vteeth = vfeed / vr / nbteeth param[in] nbTeeth Nombre de dent param[in] vr vitesse rotation

param[in,out] vteeth avance / dent param[in,out] vfeed vitesse d'avance

Renvoie
SPI_YES / SPI_NO

◆ SPI_CAL_fillet_2lines()

int SPI_CAL_fillet_2lines ( double * line1,
int side1,
double * line2,
int side2,
double radius,
double * fillet )

Calcule un congé entre 2 droites.

Version
6.08
Paramètres
[in]line1première droite (TR9)
[in]side1premier coté / tangence (-1, +1)
[in]line2deuxième droite (TR9)
[in]side2deuxième coté / tangence (-1, +1)
[in]radiusrayon du congé
[out]filletcongé
Renvoie
error
ierr := ICALL(SPI_CAL_fillet_2lines,line1,1,line2,1,10.0,fillet);
int SPI_CAL_fillet_2lines(double *line1, int side1, double *line2, int side2, double radius, double *fillet)
Calcule un congé entre 2 droites.
Definition sp_cal01.c:434

◆ SPI_CAL_intersection()

int SPI_CAL_intersection ( int ind1,
int ind2,
int unlimit,
int * nbInter,
int * indloc )

calcule l'intersection entre 2 élements géometrique

Paramètres
[in]ind1indice dans la base de donnée de la 1ère entité géométrique
[in]ind2indice dans la base de donnée de la 2ème entité géométrique
[in]unlimitsi 1, considère les entités limitées comme illimitées
[out]nbInternombre d'intersections entre les 2 éléments
[out]indlocindice du tableau alloué contenant la liste des points
Renvoie
0 : OK intersection trouvée
51 : Lignes parallèles séparées
52 : Lignes parallèles égales
53 : Cercle et ligne tangents
54 : Cercle et ligne sans intersection
55 : Cercles tangents (extérieur)
56 : Cercles tangents (intérieur)
57 : Cercles externes séparés
58 : Cercles internes séparés
59 : Cercles confus
60 : Cercles concentriques
66 : Autre érreur

◆ SPI_CAL_intersection_elt()

int SPI_CAL_intersection_elt ( int type1,
double * param1,
int type2,
double * param2,
int * nbInter,
double * pt1,
double * pt2 )

calcule l'intersection entre 2 élements géometrique

Paramètres
[in]type1type élement 1 (SPI_ELTTYPE_SEGMENT, SPI_ELTTYPE_ARC)
[in]param1paramètre définissant l'élément 1 (TR9)
[in]type2type élément 2 (SPI_ELTTYPE_SEGMENT, SPI_ELTTYPE_ARC)
[in]param2paramètre définissant l'élément 2 (TR9)
[out]nbInternombre d'intersections entre les 2 éléments (2 MAXI)
[out]pt11er point d'intersection (TR3)
[out]pt22ème point d'intersection (TR3)
Renvoie
0 : OK intersection trouvée
51 : Lignes parallèles séparées
52 : Lignes parallèles égales
53 : Cercle et ligne tangents
54 : Cercle et ligne sans intersection
55 : Cercles tangents (extérieur)
56 : Cercles tangents (intérieur)
57 : Cercles externes séparés
58 : Cercles internes séparés
59 : Cercles confus
60 : Cercles concentriques
66 : Autre érreur
ier := ICALL(SPI_CAL_intersection_elt,SPI_ELTTYPE_SEGMENT,tab9_1,
SPI_ELTTYPE_SEGMENT,tab9_2,nbinter,pt1,pt2);
int SPI_CAL_intersection_elt(int type1, double *param1, int type2, double *param2, int *nbInter, double *pt1, double *pt2)
calcule l'intersection entre 2 élements géometrique
Definition sp_cal01.c:623

◆ SPI_CAL_mat_coo()

void SPI_CAL_mat_coo ( double * mat,
double * pt,
double * ps )

Calcule les coordonnées d'un point transformé par une matrice.

Paramètres
[in]matmatrice de transformation (TR9)
[in]ptpoint à transformer (TR3)
[out]pspoint issu de la transformmation.
Remarques
pt et ps peuvent être les mêmes
PCALL(SPI_CAL_mat_coo,mat,pt_in,pt_out);
void SPI_CAL_mat_coo(double *mat, double *pt, double *ps)
Calcule les coordonnées d'un point transformé par une matrice.
Definition sp_cal01.c:474

◆ SPI_CAL_mat_inv()

void SPI_CAL_mat_inv ( double * mat1,
double * mat2 )

calcule la matrice inversée

Paramètres
[in]mat1matrice réference
[out]mat2matrice inversée
PCALL(SPI_CAL_mat_inv,mat_int,mat_out);
void SPI_CAL_mat_inv(double *mat1, double *mat2)
calcule la matrice inversée
Definition sp_cal01.c:555

◆ SPI_CAL_mat_pro()

void SPI_CAL_mat_pro ( double * mat1,
double * mat2,
double * mat )

calcule le produit de 2 matrices 3X3

Paramètres
[in]mat1,mat2matrices 3X3
[out]matmatrice calculeée
Remarques
mat peut être une des 2 matrices d entrée
PCALL(SPI_CAL_mat_pro,mat1,mat2,mat_out);
void SPI_CAL_mat_pro(double *mat1, double *mat2, double *mat)
calcule le produit de 2 matrices 3X3
Definition sp_cal01.c:515

◆ SPI_CAL_mat_vnorm()

void SPI_CAL_mat_vnorm ( double * vec,
double * mat )

calcule la matrice du plan qui a ce vecteur normal

Paramètres
[in]vecvecteur normal
[out]matmatrice calculée
PCALL(SPI_CAL_mat_vnorm,vec,mat);
void SPI_CAL_mat_vnorm(double *vec, double *mat)
calcule la matrice du plan qui a ce vecteur normal
Definition sp_cal01.c:589

◆ SPI_CAL_max_stock_lathe()

int SPI_CAL_max_stock_lathe ( double * ptMin,
double * ptMax )

Calcule les maxi du brut courant ( brut de tournage )
Ptmax.

Version
4.5
Paramètres
[out]ptMinPoint mini du brut
[out]ptMaxPoint maxi du brut
Renvoie
SPI_YES / SPI_NO : pas de brut présent
ier := ICALL(SPI_CAL_max_stock_lathe,ptmin,ptmax);
int SPI_CAL_max_stock_lathe(double *ptMin, double *ptMax)
Calcule les maxi du brut courant ( brut de tournage ) Ptmax.
Definition sp_cal01.c:991

◆ SPI_CAL_pt_stock_lathe()

int SPI_CAL_pt_stock_lathe ( int iFlag,
double * ptRef,
double angle,
double * ptStock )

Calcule l'intersection entre le brut et une droite passant par un
point suivant une direction.

Version
4.5
Paramètres
[in]iFlag0 point le plus près , 1 point le plus loin
[in]ptRefdirection de recherche
[in]angle(angle en Degrés)
[out]ptStockpoint calculé
Renvoie
SPI_YES / SPI_NO : pas de brut présent ou calcul impossible
ier := ICALL(SPI_CAL_pt_stock_lathe,0,ptref,180,ptbrut);
int SPI_CAL_pt_stock_lathe(int iFlag, double *ptRef, double angle, double *ptStock)
Calcule l'intersection entre le brut et une droite passant par un point suivant une direction.
Definition sp_cal01.c:922

◆ SPI_CAL_read_dimension_ratio()

double SPI_CAL_read_dimension_ratio ( )

Lit le rapport entre mm/unité utilisateur (ex inch :1/INCHCOEF)

Renvoie
Valeur du rapport pour la cotation d entités
double SPI_CAL_read_dimension_ratio()
Lit le rapport entre mm/unité utilisateur (ex inch :1/INCHCOEF)
Definition sp_cal01.c:353

◆ SPI_CAL_read_facet_accuracy()

double SPI_CAL_read_facet_accuracy ( )

Lit la tolérance de la courbe (pour la décomposition en segments)

Renvoie
Valeur de la tolérance
double SPI_CAL_read_facet_accuracy()
Lit la tolérance de la courbe (pour la décomposition en segments)
Definition sp_cal01.c:307

◆ SPI_CAL_read_length_accuracy()

double SPI_CAL_read_length_accuracy ( )

Lit la valeur de tolérance de longueur utilisée par GO2cam.

Renvoie
Valeur de la tolérance
double SPI_CAL_read_length_accuracy()
Lit la valeur de tolérance de longueur utilisée par GO2cam.
Definition sp_cal01.c:149

◆ SPI_CAL_read_unit_ratio()

double SPI_CAL_read_unit_ratio ( )

Lit le rapport entre mm/unité utilisateur (ex inch :1/INCHCOEF)

Renvoie
Valeur du rapport pour la création d'entité
rate := RCALL(SPI_CAL_read_unit_ratio);
double SPI_CAL_read_unit_ratio()
Lit le rapport entre mm/unité utilisateur (ex inch :1/INCHCOEF)
Definition sp_cal01.c:330

◆ SPI_CAL_speed()

int SPI_CAL_speed ( int iFlag,
double diam,
double * vc,
double * vr )

Calcule la vitesse de coupe ou rotation.

Version
5.1

param[in] iFlag 0 vr = 1000*vc/pi/diam , 1 vc = vr*pi*diam/1000 fraisage
10 vr = 1000*vc/pi/diam ,11 vc = vr*pi*diam/1000 tour param[in] diam diametre outil

param[in,out] vc vitesse de coupe param[in,out] vr vitesse de rotation

Renvoie
SPI_YES / SPI_NO

◆ SPI_CAL_step_and_number()

void SPI_CAL_step_and_number ( int flagEven,
double length,
double * lengthBegin,
double * lengthEnd,
double * step,
int * number )

Calcule le nombre et la raison / hauteur totale (Suite)

Paramètres
[in]flagEven0 Nombre Quelconque | 1 Nombre pair seulement
[in]lengthlongueur totale a décomposer
[in,out]lengthBeginlongueur de départ
[in,out]lengthEndlongueur de fin
[out]stepraison du calcul de décomposition
[out]numbernombre de décomposition (pas)
Remarques
Si length_begin = length_end ==> décomposition avec un pas
Sinon ==> calcul la raison arithmetique
pour avoir une longueur départ et fin
length_begin := 2;
length_end := 5;
PCALL(SPI_CAL_step_and_number,0,50,length_begin,length_end,step,nb);
void SPI_CAL_step_and_number(int flagEven, double length, double *lengthBegin, double *lengthEnd, double *step, int *number)
Calcule le nombre et la raison / hauteur totale (Suite)
Definition sp_cal01.c:244