Voici quelques codes générique que j'utilise dans tous mes développements et qui me servent régulièrement dans du calcul mathématique ou de traitement de chaine de caractères :
'---------------------------------------------------------------------------
' Point en 3D
'---------------------------------------------------------------------------
Public Type Point3
X As Double
Y As Double
Z As Double
End Type
'Longueur de vecteur
Function Longueur(ByRef P1 As Point3) As Double
Longueur = Sqr((P1.X ^ 2) + (P1.Y ^ 2) + (P1.Z ^ 2))
End Function
'Distance entre 2 points
Function Distance(ByRef P1 As Point3, ByRef P2 As Point3) As Double
Distance = Sqr((P2.X - P1.X) ^ 2 + (P2.Y - P1.Y) ^ 2 + (P2.Z - P1.Z) ^ 2)
End Function
'Addition de vecteur
Function VecAdd(ByRef P1 As Point3, ByRef P2 As Point3, Optional F As Double = 1) As Point3
VecAdd.X = P1.X + F * P2.X
VecAdd.Y = P1.Y + F * P2.Y
VecAdd.Z = P1.Z + F * P2.Z
End Function
'Produit Scalaire
Function Dot(ByRef p As Point3, ByRef Q As Point3) As Double
Dot = p.X * Q.X + p.Y * Q.Y + p.Z * Q.Z
End Function
'Soustraction de point
Function SubVect(ByRef P1 As Point3, ByRef P2 As Point3, ByRef F As Double) As Point3
SubVect.X = P1.X - P2.X * F
SubVect.Y = P1.Y - P2.Y * F
SubVect.Z = P1.Z - P2.Z * F
End Function
'Produit vectoriel
Function VecProd(ByRef P1 As Point3, ByRef P2 As Point3) As Point3
Dim P4 As Point3
P4.X = (P1.Y * P2.Z) - (P1.Z * P2.Y)
P4.Y = (P1.Z * P2.X) - (P1.X * P2.Z)
P4.Z = (P1.X * P2.Y) - (P1.Y * P2.X)
VecProd = P4
End Function
' Soustraction de vecteur
Function VecSub(ByRef P1 As Point3, ByRef P2 As Point3, Optional t As Double = 1) As Point3
VecSub.X = P1.X - t * P2.X
VecSub.Y = P1.Y - t * P2.Y
VecSub.Z = P1.Z - t * P2.Z
End Function
'Récupération du vecteur normal de 3 points
Function NormVec(ByRef P1 As Point3, ByRef P2 As Point3, ByRef P3 As Point3) As Point3
NormVec = VecteurUnitaire(VecProd(VecSub(P1, P2), VecSub(P3, P2)))
End Function
' Transforme un vecteur en vecteur unitaire
Function VecteurUnitaire(ByRef P1 As Point3) As Point3
Dim Norm As Double
Norm = Sqr(P1.X * P1.X + P1.Y * P1.Y + P1.Z * P1.Z)
If Norm = 0 Then
Exit Function
End If
VecteurUnitaire.X = P1.X / Norm
VecteurUnitaire.Y = P1.Y / Norm
VecteurUnitaire.Z = P1.Z / Norm
End Function
' Coordonnées du point Milieu
Function PointMilieu(ByRef P1 As Point3, ByRef P2 As Point3) As Point3
PointMilieu.X = 0.5 * (P1.X + P2.X)
PointMilieu.Y = 0.5 * (P1.Y + P2.Y)
PointMilieu.Z = 0.5 * (P1.Z + P2.Z)
End Function
'****************************************************************
' Name: Round
'
' Inputs:DP is the decimal place to round to (0 to 14) e.g
' Round (3.56376, 3) will give the result 3.564
' Round (3.56376, 1) will give the result 3.6
' Round (3.56376, 0) will give the result 4
' Round (3.56376, 2) will give the result 3.56
' Round (1.4999, 3) will give the result 1.5
' Round (1.4899, 2) will give the result 1.49
' Returns:None
' Assumes:None
' Side Effects:None
'
'****************************************************************
Function Round(X1 As Double, DP As Integer) As Double
Round = Int((X1 * 10 ^ DP) + 0.5) / 10 ^ DP
End Function
'****************************************************************
' Name: A 'strtok' function for VB
' Description:I wrote four functions to tokenize strings. He
' re they are...
'The functions work like this TokLeftLeft finds the leftmost token and
'then returns the left part of the string (empty if not there). You
'can figure out the rest. Note that if the token is more than 1 character
'then the function will always return "".
'****************************************************************
Public Function TokLeftLeft(ByRef Source As String, ByRef token As String) As String
Dim I As Integer
TokLeftLeft = Source
For I = 1 To Len(Source)
If Mid(Source, I, 1) = token Then
TokLeftLeft = Left(Source, I - 1)
Exit Function
End If
Next I
End Function
Public Function TokLeftRight(ByRef Source As String, ByRef token As String) As String
Dim I As Integer
TokLeftRight = Source
For I = 1 To Len(Source)
If Mid(Source, I, 1) = token Then
TokLeftRight = Right(Source, Len(Source) - I)
Exit Function
End If
Next I
End Function
Public Function TokRightLeft(ByRef Source As String, ByRef token As String) As String
Dim I As Integer
TokRightLeft = ""
For I = Len(Source) To 1 Step -1
If Mid(Source, I, 1) = token Then
TokRightLeft = Left(Source, I - 1)
Exit Function
End If
Next I
End Function
Public Function TokRightRight(ByRef Source As String, ByRef token As String) As String
Dim I As Integer
TokRightRight = ""
For I = Len(Source) To 1 Step -1
If Mid(Source, I, 1) = token Then
TokRightRight = Right(Source, Len(Source) - I)
Exit Function
End If
Next I
End Function
dimanche 18 décembre 2016
mercredi 9 novembre 2016
Réglage des options de relecture des données WorkNC dans Visu Outil
Dans les options de relecture des données WorkNC, la partie la plus complexe à appréhender, concerne les niveau de relecture. Les données définissants les conditions d'usinage de WorkNC ne contiennent pas l'information relative à la matière usinée, la matière de l'outil, le type d'opération ou la machine pour laquelle ces données sont adaptées. Mais traditionnellement les utilisateurs ont contourné cette limitation en structurant leurs données dans des dossiers qui reprennent cette information (figure 2) . Pour relire ces informations, Visu_Outil va donc analyser le nom des dossiers pour en extraire ces informations. Ce post permet donc de reprendre une information plus détaillé sur le réglage de ces options.
Figure 1 Options Import/Export WorkNC
· Niveau relecture
Les options concernant le niveau de relecture permettent via le chemin de relecture du fichier WKZ de compléter les infos pour VISU_OUTIL. Ce chiffre indique le niveau à partir duquel les noms des répertoires vont constituer une source d’information pour VISU_OUTIL :
Figure 2 Niveau de relecture
L’exemple ci-dessus permet d’illustrer les réglages des options de relecture. Les données sont organisées de manière à classifier les données d’usinage selon, la machine (DMU_80, HERMLE_C30), la matière (X38CrMoV5 49HRC, X38CrMoV5 54HRC etc.) et le type d’opération (01-Ebauche, 02-Finition, 03-Percage …). La relecture des infos permettant de renseigner dans les données des conditions d’usinage les informations non présentes dans les définitions d’outils de WorkNC mais qui sont généralement intégrés par les utilisateurs en structurant leurs données sous ce type d’archivage par dossier.
Figure 2 Relecture dans Visu_Outil
La figure ci-dessus permet d’illustrer la relecture de ces données dans le logiciel Visu_Outil et le traitement fait de ces données.
Dernière version de Visu_Outil 2.13.02 : http://5axes.free.fr/Outil/Visu_outil_213X.exe
jeudi 1 septembre 2016
Une de plus mais la premiere qui me parrait pertinente dans l'idée
Ces derniers mois, les offres en machine hybride se sont multipliées. Et Thermwood offre aujourd'hui une nouvelle solution. Une de plus à rajouter dans la série des machines Hybrides :
Thermwood LSAM system.
Mais cette fois la solution semble pertinente dans la mesure ou la
déposition d’un polymère permet un
volume de déposition assez important (68kg /h) en lien avec la taille de la machine. Cette application est en phase avec les produits
Thermwood qui sont très présent dans les composites et le thermoformage ( Comme
Normaprofil chez nous).
Tête de déposition 4 axes ( XYZ + Rotation tête dépose)
Cette activité
requière la réalisation de montage d’usinage généralement réalisé pour les
petites séries en contre-plaqué+ forme 3D en Lab pour grande pièce et lab +
support métallique pour les petites pièces . La prise de pièce étant assuré par des
venturis comme pour le placage des plaques dans le moule de formage.
vendredi 26 août 2016
Critères de classement des données d'usinage
Pour structurer les données d'usinage que ce soit dans votre base de données personnel ou dans le logiciel d'un CFAO, il
est nécessaire de faire le lien avec la réalité de l’atelier (moyens et procédés).
Dans ce cadre l'on doit dans un premier temps définir une structure de
classement qui va permettre de retrouver les bons outils avec les conditions de
coupe associées. Comme critères de structuration pour un outil donné* vous pouvez utiliser les
éléments ci-après :
Groupe Machines ou Machine
§ Machine Ugv
§ DMU50
§ …
On classera soit les outils pour un groupe de machines
comparables ou alors pour une machine dédiée pour une gestion plus fine (mais
plus complexe)
|
|
Groupe de matière / Matière usinée
On classera ensuite les données en prenant en compte la
matière usinée. soit sur un niveau macro avec un groupe de matière ou sur un niveau plus fin sur une référence matière.
|
|
Type opération
§ Ebauche
§ Finition
§ …
Le deuxième niveau doit permettre de classer les outils
et les conditions d'usinage par leur utilisation (Ebauche, Finition etc.)
|
|
Matière outil
Si pour un même outil géométrique (Fraise boule Ø10
par exemple) Il existe plusieurs revêtement ou type de plaquette on pourra
rajouter un critère lié à la matière de l’outil (type de revêtement) ou le
type de plaquette.
|
|
Phase
§ Avant trempe
§ Perçage
§ Taraudage/Alésage
§ …
Dernier critère de classement on pourra aussi intégrer la
notion de phase. Par exemple pour une reprise d’ébauche réalisée avant
traitement ou après traitement ou un perçage qui serait réalisé comme simple
perçage ou qui nécessiterai par la suite une opération complémentaire comme
un taraudage ou un alésage.
|
|
La notion de phase est de mon point de vue plus utilisée pour la définition de gamme opératoire. Les conditions d'usinage étant subordonnées à la matière il est possible de définir au travers d'un état matière des conditions différentes. Mais on peut aussi utiliser ce critères dans la définition des conditions par exemple en lien avec une qualité attendue : Si l'on est dans une Phase d'ébauche il n'est pas forcément nécessaire d'avoir un bon état de surface. Les conditions d'usinage peuvent donc être plus sévères.
*Par outil donné j'entend la notion de référence outil ou d'assemblage outil. Dans les deux cas la longueur totale de l'outil ou la longueur sortie aura une influence sur les données de coupe et implique souvent la nécessité de définir un nouvel enregistrement.
mercredi 24 août 2016
Classement CFAO, ou la règle de 3
A l’école nous avons tous appris la règle de 3 ou règle de proportionnalité, j’utilise la règle de 3 sous une autre forme. J’ai constaté que lors des discussions avec certains commerciaux ces derniers ont tendance à utiliser cette règle lors qu’il s’agit d’évoquer leur base installée. La société qui désire investir dans une nouvelle solution CFAO après les critères objectifs de prix ou de fonctionnalités, s’intéresse souvent à la popularité du système envisagé. Donc à son nombre de clients ou d’utilisateurs. Et c’est là que la règle de 3 arrive :
L’utilisateur :
Combien avez-vous de clients en France ?
Le commercial :
30 !
D'où la fameuse règle de 3. Sachant que plus cette base installée est faible et plus cette règle aura tendance à être surutilisé. Donc personnellement, j’ai toujours tendance à appliquer un coefficient correcteur de l’ordre de 3 pour avoir le nombre réel.
Attention ! Je ne dis pas là, que commercial rime avec menteur. Non mentir c’est mal et ça fini toujours pas vous retomber sur la gueule un jour où l’autre. Simplement leur méthode de comptabilité a tendance à différer de votre propre méthode. En effet votre interlocuteur aura pris en compte l’ensemble des clients de son système CRM, là où vous vous attendiez le nombre réel de licence ou de client actif, dans le chiffre annoncé sont inclus toutes les licences enregistrées depuis la création de la société. Donc sont inclus, les clients disparus depuis 15 ans, ceux dont les sociétés ont fusionnées pour ne faire plus qu’une, dans ce cas il applique le principe de la constance des masses 1+1 égale toujours 2. Et, je passe sur les licences de démo, de prêt, celles perdues etc.
Il est donc assez difficile d’avoir une idée de l’audience réel d’une solution chacun se proclamant Leader de quelque chose. De plus dans certains cas on s’aperçoit que le nombre de licence vendu n’a rien à voir avec la réelle utilisation du produit, particulièrement en FAO.
Il existe bien des sociétés spécialisées qui publient annuellement des rapports par secteur d’activité. Pour la CFAO le plus connu est l’américain CIMData (http://www.cimdata.com). Qui publie pour la modique somme de 2995$ son rapport anuel : http://www.cimdata.com/en/online-store/market-analysis-reports/product/161-2016-cam-market-analysis-report.
Et dont certains éditeurs s’empressent de relayer une partie de l’information, notamment quand leur nom apparait en première position sur une des analyses comme (Figure 1) :
Ou là :
Figure 1 Données CIMData
J’ai pour ma part toujours eu un peu de mal à vraiment faire confiance à ces chiffres et dans les deux exemples précédents on trouve pour les mêmes années des classements différents. Je suis assez proche de rejoindre ce qui est écrit dans ce post ou l’auteur reprenait les propos de l’ancien directeur d’AlphaCAM qui disait «Be aware that the CIMDATA report simply quotes figures for the number of customers given to them by the vendors«. Donc là aussi la règle de 3 doit s’appliquer.
Pour ma part j’ai essayé de faire mon petit classement en utilisant une autre source de données qui vaut ce qu’elle vaut mais qui est simple à vérifier. Aujourd’hui les médias sociaux sont devenus un incontournable de notre société et en terme de média professionnel LinkedIn (Figure 2) est devenu un des incontournables.
Figure 2 Réseau LinkedIN
La méthode d’analyse
J’ai donc repris pour les entreprises de la CFAO le nombre de personnes abonnées sur la page LinkedIn des sociétés. En partant du principe que l’utilisateur d’un système aura tendance à chercher à suivre l’activité de l’outil numérique qu’il utilise, notamment si il est satisfait de ce dernier. Les grincheux me diront que l’on va aussi trouver dans le total des abonnés, les concurrents inscrits pour faire de la veille. Ok, mais dans ce cas je considère que si l’on regarde ce que vous faites, c’est que vous êtes potentiellement intéressant. Mieux vaut être suivi que suiveur.
Les données sont donc issues du nombre d’abonnés à une entreprise sur le réseau LinkedIn au 24/08/2016 (Figure 3).
Figure 3 Abonnés LinkedIn
Il est à noter que j’avais déjà enregistré les mêmes chiffres en début d’année et que si le nombre d’abonnés a progressé pour chaque entreprise le classement n’a pas bougé en 6 mois.
Etant donné que pour certaines grosses entreprises, il est difficile de séparer l’activité FAO du PLM ou de la CAO j’ai donc fait trois catégories une partie CAO/PLM avec Autodesk, Dassault, PTC et Siemens. Un autre groupe avec des sociétés plus reconnus dans le domaine de la FAO mécanicienne (Les solutions FAO du travail de la tôle ne sont pas intégrées dans cette liste par exemple) . Et enfin un dernier groupe plus consacré à la partie Simulation.
CAO/PLM
Premiers groupe les solutions globales où il est difficile de pouvoir classer par activité la société (Figure 4).
Rank | Société | Followers CAO/PLM |
1 | Autodesk | 165885 |
2 | Dassault Systemes | 91619 |
3 | PTC | 79283 |
4 | SolidWorks | 68866 |
5 | Siemens PLM | 63459 |
Le classement semble assez logique en effet Autodesk avec la multitude de produits offerts couvre aussi bien la mécanique, que le génie civil, l’animation, le design. Il est probable que ce soit le numéro un même si je suis bien conscient que l’on compare ici un peu des choux et des carottes.
Figure 4 Classement CAO/PLM
La partie qui nous (qui m’intéresse le plus) (Figure 5). Là aussi ça semble assez logique, pour bien faire il faudrait pourvoir regrouper tous les produits de VERO (aujourd’hui chez Hexagone métrologie) et Delcam risque bientôt de disparaitre pour passer dans la nébuleuse Autodesk donc profitons en tant qu’il est encore temps. Je suis un peu surpris par la place d’OpenMind, mais étant donné une activité assez forte sur LinkedIn ceci peut faire monter le classement. Et je suis aussi étonné par la place de BobCad-CAM qui est un produit que l’on ne trouve pas sur le marché européen. Mais d’autres sondages (sujet à caution parait-il) vue récemment plaçaient ce produit en bonne position. C’est un produit d’entrée de gamme qui peut certainement trouver une audience auprès des petites structures.
Rank | Société | Followers FAO |
1 | Mastercam | 5318 |
2 | Delcam | 4990 |
3 | DP Technology | 2639 |
4 | BobCad-CAM | 2324 |
5 | GibbsCAM | 2292 |
6 | OpenMind | 1697 |
7 | Cimatron | 1638 |
8 | Vero Software | 1519 |
9 | Missler | 1310 |
10 | SolidCAM | 1104 |
11 | ZWSoft | 683 |
12 | Sescoi WorkNc | 589 |
13 | EdgeCam | 564 |
14 | Tebis | 307 |
15 | CamWorks | 245 |
16 | Alphacam | 243 |
17 | HSMWork | 195 |
18 | NCG CAM | 146 |
19 | MecSoft | 140 |
20 | SprutCAM | 101 |
21 | GO2CAM | 91 |
22 | ERCII (e-NC) | 22 |
Figure 5 Classement FAO
Un petit encouragement pour nos petits Français de queue de peloton. Et comme au jeu olympique on se consolera avec au moins un français dans les 10 premiers.
Simulation
Enfin pour la partie simulation (Figure 6), j’aurais personnellement pensé que SPRING se classerait avant ICAM, peut être que l’activité postprocesseur sur le marché nord-américain lui donne une meilleur notoriété.
Rank | Société | Followers Simulation |
1 | CGTECH | 1223 |
2 | ICAM | 1074 |
3 | Spring | 509 |
4 | IMS | 128 |
5 | Roboris LTD | 71 |
Figure 6 Classement Simulation
Conclusions
Voilà, pas de conclusions à ces chiffres, c’était juste une méthode comme une autre pour établir un classement sans débourser 3000$. Nous dirons que s’il ne préjuge en rien des capacités techniques des produits il permet de mesurer l’estime numérique des sociétés.
Inscription à :
Articles (Atom)