117 commentaires
Martin Müller
( Modifié )

Bonjour Dominique,

Rien n'empêche de donner le même nom d'instance à toutes les pièces d'une armoire, ainsi nom de la pièce + nom de l'instance définissent une pièce et l'appartenance une armoire spécifique.

Martin Müller

Attention, dimension nominale <> dimension actuelle!

Martin Müller
( Modifié )

A 0:31 tu copies le cylindre, mais lors de l'intersection tu ne sélectionnes que le cercle sur la face. Si tu sélectionnes le cylindre copié (double clic sur la face intérieure), l'intersection fonctionne correctement (on voit mieux ce qui est sélectionné lorsqu'on met le modèle en transparence).

il y a 1 an
Martin Müller

Ce fichier m'intéresse beaucoup!

OpenCutList n'implémente pas le meilleur algorithme du monde! Si quelqu'un propose un meilleur algorithme, je suis preneur.

Martin Müller
( Modifié )

Boris Beaulant, Satemorej

Arf! c'est pas facile à expliquer...

Le problème du calepinage est NP-complet. L'espace des solutions
augmente exponentiellement avec la taille des éléments à placer.
A défaut d'un algorithme exact garantissant l'optimalité, on
utilise des approximations ou des heuristiques. Cela veut dire
qu'aucun logiciel de calepinage ne garantit de trouver la meilleure
solution ou alors c'est du hasard.

On pourrait générer un grand nombre de permutations aléatoires
de toutes les pièces à placer, les placer et calculer le nombre
de panneaux nécessaires (c'est un peu ce que fait MaxCut).
De part la nature du programme, MaxCut est capable de stocker
la solution dans le fichier. OpenCutList doit pouvoir générer
à chaque calepinage, pour les mêmes pièces, exactement le même
calepinage. Que penserait l'utilisateur en imprimant à chaque
fois un calepinage différent?

L'outil de calepinage d'OpenCutList doit nous faire économiser
du temps, même si en y passant trois jours on pourrait trouver
une solution meilleure nous faisant économiser un panneau sur 10.

Ma réponse pour l'orientation des pièces est non! Ce n'est pas
impossible, mais ça n'apporte pratiquement rien au risque de rendre
l'interface et la manipulation bien plus lourd.

Martin Müller

Bonsoir,

Les matières d'OpenCutList sont des matières SketchUp. En principe, les matières dans la fenêtre d'OpenCutList sont les mêmes que celles que l'on voit sous Matières dans SketchUp. Si on ajoute une matière par le plugin, elle se retrouvera aussi à droite.

Martin Müller

Bonjour,

OpenCutList fait d'abord une Fiche de débit (Parts List) de toutes les instances de composant (pas les groupes) de la scène courante ou de la séléction d'objets. Ensuite il faut appliquer de la matière et la configurer. Ensuite, si le type de matière est Panneau ou Barre, on pourra utiliser le calepinage (Cutting Diagram) par le biais d'un bouton Calepinage qui se trouve dans la barre de titre de chaque groupe de la fiche de débit.

Martin Müller
( Modifié )

Merci à tous les contributeurs!
Nous pensons qu'une bonne documentation pour apprendre à mieux utiliser OpenCutList serait utile à tous les utilisateurs, débutants et pros.
Cette documentation est la prochaine montagne à gravir, pas raide, pas haute, mais avec une belle vue!

Martin Müller

Volunteering translators are always welcome and can join us on Transifex to help translate OpenCutList. Note that the OpenCutList localization is independant of the SketchUp language. A localization will only be added to OpenCutList if 100% of the terms are translated.

Martin Müller

Les attributs sont sur les instances dans la fiche de débit. Le type de matériel ne désigne qu'un groupe pouvant contenir plusieurs composants différents.

Martin Müller

Merci Dany (pour la traduction aussi!).

Martin Müller

Effectivement, il y a bug lorsqu'on utilise des chutes et qu'une des chutes ne peut contenir aucune pièce. Ce n'est peut être pas le même, si c'était possible de m'envoyer la fiche de débit en csv, avec les paramètres utilisés ?
Il y a un lien en bas à droite de la fenêtre "Signaler un bug".

Merci beaucoup!

Martin Müller

Merci!

Non, OpenCutList pourrait calculer des variantes, mais ça prendrait beaucoup plus de temps! Toutes les permutations possibles devraient être calculées. Le problème du calepinage est déjà NP-complet et il n'existe à l'heure actuelle aucun algorithme permettant de trouver la solution "optimale" dans tous les cas possibles.

Martin Müller

GregO au lieu de définir un panneau inutilisable, simplement ne rien définir.

Si le panneau fait la largeur de la pièce et que celle-ci ne peut être placée, c'est dû soit à la Marge définie dans Configuration du calepinage, soit parce que le panneau a été configuré avec fil, soit parce qu'il y a une surcote de largeur/longueur configurée sur le matériel. Si la pièce peut être positionnée dans la chute sans coupe (largeur et/ou longueur), OCL ne tiendra pas compte de l'épaisseur de la lame.

La stratégie d'OCL concernant l'utilisation de chutes est la suivante:

  • trier les chutes dans l'ordre croissant de la surface
  • essayer au mieux de placer des pièces afin d'obtenir un remplissage max
    Lorsqu'aucune pièce ne peut être placée, OCL utilisera le panneau standard pour créer de la place. Cette stratégie privilegie l'utilisation de chute, alors que parfois il y aurait encore de la place dans le panneau standard pour y placer toutes les pièces qui avait été placées dans les chutes. Pour des raisons d'homogenéité du matériel, j'efface alors mes chutes et n'utilise que le panneau standard.
par Boris Beaulant il y a 2 ans
Martin Müller

Pour différencier le chêne rouge des autres chênes, regarder si il y a des thylles dans les vaisseaux du bois de bout (ce sont ces petites membranes brillantes que l'on voit facilement à la loupe grossissante 10x).

Martin Müller
( Modifié )

Si ça existe chez Hager.

Pour faire ce genre de petites pièces, il y a le mandrin de Thomas Haeckel.

par YwoodY il y a 2 mois
Martin Müller
( Modifié )

Je pense que tu as sélectionné une pièce, dans ce cas elle sera seule dans la liste. Sans sélection, OpenCutList prendra toutes les pièces de la scène.

Martin Müller

Pour le calepinage 1D, on a utilisé deux algorithmes:

  • un algorithme de programmation dynamique qui résoud le problème de la somme des sous-ensembles lorsque le nombre de pièces est < 80 (valeur un peu arbitraire). Ce problème est assez similaire au Bin Packing 1D dans la mesure où on cherche à maximiser une somme de longueurs de pièces dans une barre de longueur donnée. Afin de ne pas être trop glouton, l'algorithme décide avoir trouvé une solution lorsqu'au moins 95% de la barre est pleine.
  • lorsque le nombre de pièces est >= 80 et/ou après 5 secondes de temps de calcul, on passe à une heuristique First Fit Decreasing - FFD (trié par ordre descendant de longueur, puis assigné à la première barre possible). C'est avec cette variante qu'on trouvera la solution [3, 3], [2, 2, 2], [2] au problème mentionné dans ma première réponse.

La performance des algorithmes dépend du nombre de pièces et du nombre de pièces différentes et bien sûr aucune garantie de trouver la solution optimale. On sait que si OPT(L) est le nombre optimal de barres FFD trouvera une solution utilsant au maximum 11/9*OPT(L) + 6/9 de barre. Vous me direz que si OPT(L) = 1, alors la solution trouvée par FFD sera peut être 2, ce que représente le double (ou 100%). Ben oui! mais c'est pas moi qui les ai fait ces problèmes, c'est le bon Dieu!

Pour le calepinage, nous n'avons pas implémenté de préférence du style "regrouper toutes les pièces de même longueur sur une même barre" pour ne pas pénaliser la recherche d'une bonne solution.

Martin Müller

Pour le calepinage 2D, on a utilisé plusieurs heuristiques pour résoudre un problème un peu plus restrictif que le calepinage 2D, car les coupes doivent être de type guillotine (de part en part d'une pièce, car pas de coupe à 90° au milieu d'un panneau possible avec une scie circulaire). Par rapport au programme disponible sur par ex. github, on a rajouté la possibilité d'utiliser des chutes et aussi de regrouper des pièces identiques en donnant la préférence à des coupes horizontales ou verticales (empiler les pièces). Il y a bien sûr aussi la notion de grain.

En choisissant un ordre de tri au départ, l'algorithme essaie de placer les pièces en commençant en haut à gauche et essayant une coupe horizontal d'abord, puis une verticale ou le contraire, ... en calculant 30 à 40 solutions possibles.

Une solution "optimale" est alors choisie parmi les solutions remplissant les critères suivants:

  • minimum de pièces non placées,
  • minimum de panneaux utilisés,
  • chute la plus longue,
  • chute la plus large,
  • et finalement, le plus petit nombre de chutes (indicateur pour une meilleure coupe).

La solution est "souvent" très bonne, parfois moins bonne.

Pour la version 2.0 d'OCL, l'algorithme va changer un peu, on aura plus besoin de choisir l'ordre des pièces. Il y aura deux options d'optimization moyen et avancé, ainsi que le choix d'empiler les pièces, c'est tout! On calculera plusieurs ordre de pièces pour un total de 48 à 1152 solutions. La sélection de la meilleure solution ce fait sur la base de deux critères:

  • une mesure de compacité (ou taux de remplissage), on cherche à éviter les trous dans le calepinage et à faire en sorte que les chutes se trouvent le plus à droite et le plus bas possible (si l'origine est en haut à gauche).
  • le nombre de chutes minimale (moins c'est mieux, même si la surface est plus grande - on préfère en général une chute de 1m^2 plutôt que 9 chutes de 0.1m^2.
Martin Müller

En imprimant les étiquettes depuis le calepinage (supposons commun aux deux projets pour l'example), ça nous posera le problème de devoir ajouter une fonction qui décide à quel projet une pièce appartient afin d'utiliser le bon format d'étiquette.

En utilisant des tags par projet, on pourra l'imprimer sur l'étiquette sans devoir distinguer entre deux formats.

Martin Müller

Merci, c'est l'encouragement de tous qui porte le projet.

Martin Müller

C'était certainement un très bon tour à l'époque. Aujourd'hui, sauf si tu es amateur de veilles machines !?

Martin Müller
( Modifié )

Ne pas oublier le backup de SketchUp (à régler dans Préférences -> Général), ce fameux fichier .skb qui contient généralement une version antérieure du dessin!
Simplement modifier l'extension de .skb -> .skp.

Martin Müller

Il ne faut pas oublier que OCL est un plugin dans SketchUp et pas le contraire. La vue du stock des panneaux est globale, plusieurs modèles SketchUp se partagent le même stock.

Martin Müller
( Modifié )

Merci eljub !!

Martin Müller

In a future version, labels will be renamed to tags, because of the risk to confound them with adhesive labels!