Références des exemplaires famille

Forum dédié à TopSolid'Design 7, la nouvelle génération de CAO TopSolid.

Modérateurs : D@vid, remi77

ATK
Caporal-chef
Caporal-chef
Messages : 42
Inscription : 19 mai 2016, 09:53
Version TopSolid : 7.12
Module TopSolid : TopSolid'Design

Re: Références des exemplaires famille

Message non lu par ATK » 15 nov. 2017, 19:31

Une dernière chose, selon toi, peut on réduire/choisir la longueur du hashcode ?
En effet, dans certains cas je me retrouve avec des références vraiment longues. ^^

-------
Sur un autre forum, j'ai trouvé ce code permettant de convertir une chaîne de caractères en un code hexadécimale.

Code : Tout sélectionner

Dim x As Long
Dim mask, i, j, nC, Crc, txt As Integer
Dim c, txt As String

txt = Concaténer

Crc = &HFFFF ' crc mit $ffff initalisieren

For nC = 1 To Len(txt) Step 2
    j = Val("&H" + Mid(txt, nC, 2)) 'im HEX-Format
    Crc = Crc Xor j
    For j = 1 To 8
        mask = 0
        If Crc / 2 <> Int(Crc / 2) Then mask = &HA001
        Crc = Int(Crc / 2) And &H7FFF: Crc = Crc Xor mask
    Next j
Next nC

txt = Hex$(Crc) 'Checksumme
Return Crc
Le résultat semble cohérent et le code généré est plus court que le hashcode, mais rien en me garanti qu'il n'y aura jamais de doublons...

Qu'en penses-tu ?

EDIT :
D'après ce lien dans lequel sont comparées différentes méthodes de hachage, la fonction citée au-dessus (CRC16) offre un "taux de collision" de 9%, que j'interprète comme 624 doublons sur 6895 chaines converties. Si c'est bien ça, alors c'est pas génial.

ATK
Caporal-chef
Caporal-chef
Messages : 42
Inscription : 19 mai 2016, 09:53
Version TopSolid : 7.12
Module TopSolid : TopSolid'Design

Re: Références des exemplaires famille

Message non lu par ATK » 15 nov. 2017, 20:27

Suite au post ci-dessus je me suis penché sur la méthode de hachage CRC16 Twice, qui consiste à :
- Couper en trois parties le texte à hacher
- Hacher séparément les trois parties
- Concaténer les trois parties hachées en une chaîne de 12 caractères.
J'ai ajouté à cela :
- Hacher cette dernière chaîne pour rester à 4 caractères.
La personne qui donne le code indique un taux de collision de 0 %. :mrgreen:

J'ai donc adapté le code à mon cas, et à TopSolid :

Code : Tout sélectionner

Dim x As Long
Dim l, l3, mask, i, j, nC, crc As Integer
Dim TextInput, InputHashed As String
TextInput = Concaténer
l = Len(TextInput)
l3 = Int(l / 3)
Dim s(4)
s(1) = Mid(TextInput, 1, l3) ' première partie
s(2) = Mid(TextInput, l3 + 1, l3) ' deuxième partie
s(3) = Mid(TextInput, 2 * l3 + 1) ' troisième partie
Dim sb(4)

'Hachage en boucle des trois parties
For i = 1 to 3
crc = &HFFFF
For nC = 1 To Len(s(i))
    j = Asc(Mid(s(i), nC))
    crc = crc Xor j
    For j = 1 To 8
        mask = 0
        If crc / 2 <> Int(crc / 2) Then mask = &HA001
        crc = Int(crc / 2) And &H7FFF: crc = crc Xor mask
    Next j
Next nC
sb(i) = Hex$(crc)
If Len(sb(i)) < 4 Then
  sb(i) = "0" & sb(i)
End If
Next i

'Hachage final
crc = &HFFFF
For nC = 1 To Len(sb(1) + sb(2) + sb(3))
    j = Asc(Mid(sb(1) + sb(2) + sb(3), nC))
    crc = crc Xor j
    For j = 1 To 8
        mask = 0
        If crc / 2 <> Int(crc / 2) Then mask = &HA001
        crc = Int(crc / 2) And &H7FFF: crc = crc Xor mask
    Next j
Next nC
InputHashed = Hex$(crc)
If Len(InputHashed) < 4 Then
  InputHashed = "0" & InputHashed
End If

Return InputHashed
Qu'en penses-tu ?

ATK
Caporal-chef
Caporal-chef
Messages : 42
Inscription : 19 mai 2016, 09:53
Version TopSolid : 7.12
Module TopSolid : TopSolid'Design

Re: Références des exemplaires famille

Message non lu par ATK » 16 nov. 2017, 08:22

Autre méthode :
- Générer un hashcode miscrosoft
- Le hacher en une seule fois, avec la technique ci-dessus

Code : Tout sélectionner

Dim x As Long
Dim InputHashed, l, l3, mask, i, j, nC, crc As Integer
Dim TextInput, InputHashed2, InputHashed3 As String
TextInput = Concaténer
'Création du hashcode microsoft
InputHashed = Abs(TextInput.GetHashCode())
'Hachage final
crc = &HFFFF
For nC = 1 To Len(InputHashed)
    j = Asc(Mid(InputHashed, nC))
    crc = crc Xor j
    For j = 1 To 8
        mask = 0
        If crc / 2 <> Int(crc / 2) Then mask = &HA001
        crc = Int(crc / 2) And &H7FFF: crc = crc Xor mask
    Next j
Next nC
InputHashed2 = Hex$(crc)

If Len(InputHashed2) = 1 Then
  InputHashed3 = "000" & InputHashed2
ElseIf Len(InputHashed2) = 2 Then
  InputHashed3 = "00" & InputHashed2
ElseIf Len(InputHashed2) = 3 Then
  InputHashed3 = "0" & InputHashed2
Else
  InputHashed3 = InputHashed2
End If

Return InputHashed3
Je pense utiliser cette dernière méthode qui est plus simple.

------------
EDIT :

Modification du code car dans certains cas, la chaîne résultante était inférieure à 4 caractères

Avatar de l’utilisateur
JuP
Général de brigade
Général de brigade
Messages : 3105
Inscription : 18 févr. 2013, 10:26
Version TopSolid : 7.12
Module TopSolid : TopSolid'Design
Localisation : Lyon (France)

Re: Références des exemplaires famille

Message non lu par JuP » 20 nov. 2017, 06:53

Bonjour ATK!
Sans vouloir vous jeter des fleurs, mais j'ai eu l'occasion de mettre en place pas mal de logiciels et niveau service / accompagnement vous êtes au top !
Merci :-) On prend conscience de plus en plus que ce que recherchent les industriels ce n'est pas juste un logiciel mais une vraie réponse à une problématique.
Une dernière chose, selon toi, peut on réduire/choisir la longueur du hashcode ?
En effet, dans certains cas je me retrouve avec des références vraiment longues. ^^
Comme tu l'as vu après tout dépend de la méthode de hashing retenue. Celle de windows n'est pas la meilleur mais elle est intégrée :twisted:

Par rapport au taux de collision il ne faut pas oublier que devant ta référence finale (si tu gardes une partie de ma méthode) tu auras ta référence article donc déjà à mon avis le risque de collision est quasi nul.
Je pense utiliser cette dernière méthode qui est plus simple.
Je vais tester pour voir ce que ça donne. Après je pense que coté résultat final il y a probablement un peu de mise en forme à faire ( créer des groupes de 3 caractères, mettre des séparateurs etc).

Je vais en discuter chez nous pour voir si on ne pourrait pas mettre quelque chose en place de standard ;-)

ATK
Caporal-chef
Caporal-chef
Messages : 42
Inscription : 19 mai 2016, 09:53
Version TopSolid : 7.12
Module TopSolid : TopSolid'Design

Re: Références des exemplaires famille

Message non lu par ATK » 20 nov. 2017, 08:49

Bonjour JuP,
ce n'est pas juste un logiciel mais une vraie réponse à une problématique.
Exactement, le choix des méthodes de travail et d'organisation des fichiers est aujourd'hui presque aussi important que les plans eux-mêmes.
il ne faut pas oublier que devant ta référence finale (si tu gardes une partie de ma méthode) tu auras ta référence article
C'est vrai, au final j'ai entièrement gardé ta méthode, sauf que j'ai ajouté une étape de hash supplémentaire me permettant de raccourcir le code généré.

J'ai aussi profité de tout cela pour simplifier mes références de bases générées par le PDM :
- Pièce = P00001 devient P1
- Assemblage Pièce = A00001 devient A1

Mes références d'exemplaires familles sont donc au format suivant :
- Pièce = P156.772A ou P291.F23B
- Assemblage Pièce = A5.37C9 ou A25.943C
Plus courtes, et donc plus simple.
Après je pense que coté résultat final il y a probablement un peu de mise en forme à faire
C'est vrai que c'est pas forcément évident à mettre en place.
Je vais en discuter chez nous pour voir si on ne pourrait pas mettre quelque chose en place de standard
:D

Très bonne journée à toi.

ATK
Caporal-chef
Caporal-chef
Messages : 42
Inscription : 19 mai 2016, 09:53
Version TopSolid : 7.12
Module TopSolid : TopSolid'Design

Re: Références des exemplaires famille

Message non lu par ATK » 24 avr. 2018, 16:45

Salut JuP,

Je déterre cette conversation pour savoir ou en était l'équipe TopSolid concernant la possibilité de référencer (de manière sûre) les éléments d'une famille ?

J'utilise toujours notre méthode de hachage (détaillée ci-dessus), mais suite à la découverte d'un doublon généré par le code je me retrouve coincé et dans le doute...

Merci d'avance.

Avatar de l’utilisateur
JuP
Général de brigade
Général de brigade
Messages : 3105
Inscription : 18 févr. 2013, 10:26
Version TopSolid : 7.12
Module TopSolid : TopSolid'Design
Localisation : Lyon (France)

Re: Références des exemplaires famille

Message non lu par JuP » 25 avr. 2018, 09:34

Bonjour ATK,

C'est en cours de dev chez nous, je n'ai malheureusement pas de date ni d'engagement à te donner car je ne le sais pas moi même. Dans le meilleur des cas ça sera en 2019 dans le pire l'année d'après... :cry: :?

Je suis surpris pas le doublon, c'est le hash qui est doublé ou la compression que tu fais ensuite?

ATK
Caporal-chef
Caporal-chef
Messages : 42
Inscription : 19 mai 2016, 09:53
Version TopSolid : 7.12
Module TopSolid : TopSolid'Design

Re: Références des exemplaires famille

Message non lu par ATK » 25 avr. 2018, 14:05

Ok, c'est une bonne nouvelle que vous soyez dessus !

A ce sujet, est-il possible d'avoir en avance le principe de référencement sur lequel vous travaillez ? Ceci de manière à pouvoir préparer au mieux nos familles en avance.

****************

En effet, le hash "microsoft" ne pose pas de problème, c'est bien la compression qui créé le doublon.
Ce qui semble inévitable en vu des résultats de collisions trouvés sur le net.

Une solution consiste à ajouter des caractères dans l'étape de compression, j'ai pu monter jusqu'à 12 pour un résultat optimal, mais cela rallonge et complexifie la référence finale...

Avatar de l’utilisateur
JuP
Général de brigade
Général de brigade
Messages : 3105
Inscription : 18 févr. 2013, 10:26
Version TopSolid : 7.12
Module TopSolid : TopSolid'Design
Localisation : Lyon (France)

Re: Références des exemplaires famille

Message non lu par JuP » 25 avr. 2018, 17:46

Ok, c'est une bonne nouvelle que vous soyez dessus !

A ce sujet, est-il possible d'avoir en avance le principe de référencement sur lequel vous travaillez ? Ceci de manière à pouvoir préparer au mieux nos familles en avance.
Ba justement le principe n'est pas final car il existe deux écoles sur la façon de faire. On coderait bien les deux mais je pense que ça va perturber beaucoup de monde.

L'idée que je défends c'est tout simplement de mettre la référence en pilote dans la famille. Lors du référencement automatique du projet via une nomenclature, si TopSolid détecte une famille, il appliquera la stratégie de référencement aux n niveaux de cette famille.

Le hic avec cette méthode c'est qu'on va créer une pièce/assemblage par projet alors que peut être elle sera identique à un projet passé.

L'autre possibilité j'en parle pas parce que tu vas nous prendre pour des malades :-D

Avatar de l’utilisateur
JuP
Général de brigade
Général de brigade
Messages : 3105
Inscription : 18 févr. 2013, 10:26
Version TopSolid : 7.12
Module TopSolid : TopSolid'Design
Localisation : Lyon (France)

Re: Références des exemplaires famille

Message non lu par JuP » 25 avr. 2018, 17:49

Je crois que malheureusement tu vas devoir te contenter du hashcode...

je discutais avec un chef d'entreprise pas plus tard qu'hier, ils ont abandonné depuis longtemps l'envie de faire des références courtes et lisibles au profit de quelque chose d'unique. Ils sont sur 9 digits mais avec une structure "logique". Par exemple les deux premiers digits c'est le type de pièce, les deux suivant la matière etc etc etc.
Dernière édition par JuP le 26 avr. 2018, 12:27, édité 1 fois.

ATK
Caporal-chef
Caporal-chef
Messages : 42
Inscription : 19 mai 2016, 09:53
Version TopSolid : 7.12
Module TopSolid : TopSolid'Design

Re: Références des exemplaires famille

Message non lu par ATK » 26 avr. 2018, 08:19

Ok ok, et bien on va attendre !

Pour éviter de stopper notre projet nous avons décidé de diviser les familles pour éviter de créer trop de pilotes.. (le comble)
Très frustrant car nos familles permettaient un travail hyper efficace et précis.

Stp, pourrais-tu me tenir informé des évolutions majeures de votre développement à ce sujet ?
Merci

Avatar de l’utilisateur
JuP
Général de brigade
Général de brigade
Messages : 3105
Inscription : 18 févr. 2013, 10:26
Version TopSolid : 7.12
Module TopSolid : TopSolid'Design
Localisation : Lyon (France)

Re: Références des exemplaires famille

Message non lu par JuP » 26 avr. 2018, 12:31

Ah oui le comble comme tu dis ! Ce n'était pas mieux de rester sur un hashcode sans contraction? Dommage de perdre en productivité pour un problème de référencement... même si de plus en plus tracer ces pièces fait partie intégrante du process de conception au grand damne des dessinateurs.
Stp, pourrais-tu me tenir informé des évolutions majeures de votre développement à ce sujet ?
Bien sur, je posterai ici le/les choix qui seront fait. On pourra même envisager la récupération de quelques compo et d'un projet et de faire des essais grandeur nature si ça t'intéresse.

ATK
Caporal-chef
Caporal-chef
Messages : 42
Inscription : 19 mai 2016, 09:53
Version TopSolid : 7.12
Module TopSolid : TopSolid'Design

Re: Références des exemplaires famille

Message non lu par ATK » 26 avr. 2018, 13:50

JuP a écrit :
26 avr. 2018, 12:31
Ce n'était pas mieux de rester sur un hashcode sans contraction?
Cela aurait généré des références au format suivant : 998P001.5198756543164131496
Trop complexe à gérer dans un magasin de pièces détachés ou encore pour organiser proprement un ERP et une industrialisation.

Je suis partant à 100%, n'hésites surtout pas car je compte bien garder dans un coin des familles complètes qui pourront servir une fois ce problème résolu.

Merci pour ton aide.

Avatar de l’utilisateur
JuP
Général de brigade
Général de brigade
Messages : 3105
Inscription : 18 févr. 2013, 10:26
Version TopSolid : 7.12
Module TopSolid : TopSolid'Design
Localisation : Lyon (France)

Re: Références des exemplaires famille

Message non lu par JuP » 26 avr. 2018, 14:01

Cela aurait généré des références au format suivant : 998P001.5198756543164131496
Trop complexe à gérer dans un magasin de pièces détachés ou encore pour organiser proprement un ERP et une industrialisation.
pas super simple à lire en effet. Bon l'ERP je pense que ça le gène pas trop mais taper la référence ça peut être chiant. Code barres et QR code ne pourraient-ils pas être des pistes?

Je suis partant à 100%, n'hésites surtout pas car je compte bien garder dans un coin des familles complètes qui pourront servir une fois ce problème résolu.
c'est noté :-)

ATK
Caporal-chef
Caporal-chef
Messages : 42
Inscription : 19 mai 2016, 09:53
Version TopSolid : 7.12
Module TopSolid : TopSolid'Design

Re: Références des exemplaires famille

Message non lu par ATK » 26 avr. 2018, 14:32

JuP a écrit :
26 avr. 2018, 14:01
Code barres et QR code ne pourraient-ils pas être des pistes?
Notre projet consiste à remplacer un logiciel de GPAO tournant sous MS-DOS 16 Bits, donc on a déjà du chemin à rattraper avant de parler de QR code ou code barre ! :mrgreen:

Mais ton idée pourrait nous aider...

Avatar de l’utilisateur
JuP
Général de brigade
Général de brigade
Messages : 3105
Inscription : 18 févr. 2013, 10:26
Version TopSolid : 7.12
Module TopSolid : TopSolid'Design
Localisation : Lyon (France)

Re: Références des exemplaires famille

Message non lu par JuP » 26 avr. 2018, 14:34

GPAO tournant sous MS-DOS 16 Bits
Oh merde je ne sais pas ce qui me fait le plus peur dans ta phrase, le logiciel, MS-DOS ou le pc qui fait tourner tout ça ! :mrgreen: :mrgreen:

ATK
Caporal-chef
Caporal-chef
Messages : 42
Inscription : 19 mai 2016, 09:53
Version TopSolid : 7.12
Module TopSolid : TopSolid'Design

Re: Références des exemplaires famille

Message non lu par ATK » 26 avr. 2018, 14:46

Hahaha, en effet c'est assez stressant ^^

Heureusement il existe des machines virtuelles pour faire tourner tout ça sur des PC modernes, mais quoiqu'il en soit, il est grand temps de moderniser tout ça. ^^

ATK
Caporal-chef
Caporal-chef
Messages : 42
Inscription : 19 mai 2016, 09:53
Version TopSolid : 7.12
Module TopSolid : TopSolid'Design

Re: Références des exemplaires famille

Message non lu par ATK » 27 avr. 2018, 09:00

Trop frustré de devoir dé-tricoter nos familles, nous avons finalement décidé de garder nos "grosses" familles, et de tirer un trait définitif sur la méthode de hachage.
Nos exemplaires familles ont donc une référence unique actuellement.

Nous comptons désormais sur votre prochaine méthode pour clôturer définitivement ce sujet.

Je suis également entré en contact avec le responsable de notre agence TopSolid pour que nous puissions nous rencontrer et échanger à ce sujet.
Il est probable qu'il rentre en contact avec toi.

Bonne journée à toi.

Avatar de l’utilisateur
JuP
Général de brigade
Général de brigade
Messages : 3105
Inscription : 18 févr. 2013, 10:26
Version TopSolid : 7.12
Module TopSolid : TopSolid'Design
Localisation : Lyon (France)

Re: Références des exemplaires famille

Message non lu par JuP » 26 juin 2018, 21:06

Bonsoir ATK,

En rentrant du travail j'ai eu une petite idée sympa que je viens de commencer à coder.

L'idée c'est de ne pas toucher à la référence (pour les familles c'est verrouillé de toute manière) ni de passer par un grattage de nomenclature qui est plus que limite mais d'utiliser les repères de nomenclature.

Il y a en effet une commande qui permet d'affecter le repère dans l'assemblage. Le gros avantage c'est que peu importe la nomenclature, le repère sera toujours le même.
Partant de là la structure du repère on peut faire un peu ce qu'on veut.

Alors il y a juste un gros point noir où je n'ai pas de solution pour le moment. Le repère de nomenclature est utilisable dans la mise en plan de l'assemblage et de la pièce via la nomenclature... mais pas dans la mise à plat. Du coup il n'y a aucun numéro qui lie la mise à plat et ce système de repérage.

Voici une vidéo qui montre l'idée générale:
https://wetransfer.com/downloads/b079df ... 430/bd7476
Il y a encore quelques petits ajustements mais c'est déjà un morceau de solution

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités