L'Air du Bois est une plateforme Open Source de partage collaboratif ouverte à tous les amoureux du travail du bois. (En savoir plus)

Rejoindre l'Air du Bois Se connecter

22 commentaires
lecreole

Il ressemble à quoi ton code qui écrit le TCN ?

Pour l'instant, pour aller plus vite, j'ai crée des modèles de fichier TCN type pour les caissons basics, les perçages et les autres usinages sont déjà fait et configurer en paramétrique dans les fichier ( s'adapte avec les dimensions du panneau )
Example pour un caisson bas :
MBT01_Base.tcn
MBT01_CôtéDroit.tcn
MBT01_CôtéGauche.tcn
MBT01_Raidisseur.tcn
MBT01_Étagère.tcn
Etc..
Dans Sketchup les composants ont le même nom et j'ouvre le fichier corespondant et modifie juste leur dimensions à l'aide de tag :

modified_content = file_content.gsub("#width#", data.length.to_s)
Pour les composants non reconnu, j'utilise le fichier default.tcn.

Tu peux regarder sur mon Github
le fichier ab_design_create.rb et les modèles

Voilà, je suis en peu long à répondre, je travaille de nuit, je suis à l'atelier que l'après midi ( pas assez d'heures dans une journée 😁 )

lecreole

Pour l'instant oui, j'ai commencé simplement à coder ma propre extension, mais je souhaite allez plus loin, c'est pour cela que OCL est un bon point de départ 😊

lecreole
( Modifié )

OK, mais j'essai de comprendre, chaque composant se représente dans une boite englobante qui par définition est un parallélépipède à 6 faces, non ?
La projection de ces 6 faces est commune à toutes les pièces.
Cela m'aidera à comprendre pour la suite de mon projet 😜
Merci.

lecreole

Coucou.

Besoin d'aide 😜
Dans le fichier part_drawing_helper.rb
Comment définir les autres vues ?

PART_DRAWING_TYPE_2D_RIGHT = ?
PART_DRAWING_TYPE_2D_LEFT = ?
PART_DRAWING_TYPE_2D_FRONT = ?
PART_DRAWING_TYPE_2D_BEHIND = ?

if part_drawing_type == PART_DRAWING_TYPE_2D_BOTTOM
local_x_axis = local_x_axis.reverse
local_z_axis = local_z_axis.reverse
elseif part_drawing_type == PART_DRAWING_TYPE_2D_RIGHT
?
?
[...]
end

Merci d'avance 👍

lecreole

Super! 😜, trop cool, c'est exactement ce que je cherchais, encore bravo pour le travail 😁👍

lecreole

Salut, j'ai bien avancé, demain je ferais une petite vidéo 😜

bonne soirée.

lecreole

Lien vers vidéo 😜
Video rapide pour montrer l'avance du projet, je commenterais plus tard, là je vais me coucher.😴

lecreole

Ca semble très prometteur 👍
Merci 😜

Et ça semble bien intégré au reste. Hâte de voir le code :)

Oui, j'ai au maximum évité de modifier les codes originaux, j'ai dupliqué les workers et modifié pour mon export, ajout d'une fenêtre spécifique pour les paramètres d'export.
Les post-processeurs seront chargés dynamiquement pour éviter de mettre à jour OCL lors d'ajout d'un nouveau post-processeur ou mise à jour.
Je finalise le code, il reste encore pas mal de taf ( màj fichier traduction, enregistrement du preset par défaut, export tracé en SETUP d'usinage, détection des perçage traversant ou borgne etc...
!!! ATTENTION fichiers de développement à utiliser à vos risques !!! sur mon github ladb_opencutlist_2024_07_11.zip et le fichier sketchup testOpen.skp pour le test.
Les post-processeurs "default.rb" et "grbl.rb" ne sont pas fonctionnels pour l'instant 😜
les fichiers ajoutés ont process dans leur noms, et les modifications des fichiers existants fait une recherche sur le mot "Lecreole" les code modifiés sont dessous.
Si ce n'est pas claire, je reste dispo 👍

lecreole
( Modifié )

Avec OCL, j'ai gagné beaucoup de temps de développement a mon projet d'origine, je termine le phase de débogage pour avoir une version utilisable.
Cela pourrais faire gagner à l'atelier plus d'une semaine ( avec Sketchup + vms_up pour assemblage + OCL pour liste des débits et export et bien sûr la machine numérique Vitap ) sur des gros projets 😁.
Si par la suite c'est intégré à OCL ce sera un plus je pense pour la communautée.
Pour example sur le projet "banquette" de la vidéo, il a fallut plus de 7h00 pour sortir les plans de chaque pièce et les traduire dans l'application TpaCad, alors que là, une fois que le plan 3D est terminé en quelques secondes les fichiers sont prêt à être envoyer à la machine 😎
Merci pour ton aide 👍

lecreole

Bonjour,
j'ai un petit problème sur l'orientation de certaines faces :

2 des 4 champs sont mal orientés, il y a t-il une solution ?
Merci d'avance.

lecreole
( Modifié )

Petite vidéo sur l'avancement de mon projet avec l'export des tracés 🙂

Boris Beaulant : Peut-on détecter les tracés qui sont périphérique à la pièce 😅 ?

lecreole

voici une image

lecreole

Salut, ce sont les tracés de la face / contre-face qui correspondent au contour de Face ( voir image en rouge )

lecreole

Merci pour ta réponse, j'utilise déjà les calques pour optimiser le traitement des percements, sinon doublon avec le calque 0 😜, c'est vrai je n'est pas vérifier pour les polygones et polylines.
Je suis enfin en vacances 😁
je vais pouvoir finir d'optimiser le code et le mettre à disposition pour ceux à qui cela intéresse.
je laisse une image des tracés voulus dans mon exemple ( en vert découpe sur l'épaisseur total de la pièce ).
Bon week-end.

lecreole
( Modifié )
Je suis d'accord

J'utilise la version gratuite de VMS_UP et elle est très intéressante, avec la possibilité de créer ses propres quincailleries si on se débrouille un peu sur Sketchup 😜

lecreole

Merci pour ta réponse.
Bravo pour l'extension OpenCutList, c'est vraiment génial, rapidité et une interface bien pensé.
J'ai déjà utilisé l'exportation en DXF, mais si je me trompe pas, cela export que la face ou la contre-face et pas les champs ( pour les trous des tourillons ).
Je vais approfondir la doc de OpenCutList et son code, pour ne pas réinventer la roue si cela existe déjà :)

lecreole

Voici un Example de fichier TCN : piece_example_200x100x20.tcn
Dans ce fichier une pièce de 200mm x 100mm x 20mm, sur chaque face au centre un perçage de 8mm de diamètre traversant, sur la face 1 un deuxième trou de 8mm, de 10mm de profondeur en X=150mm, Y=50mm.
Ce qui donne dessiné dans SketchUp : fichier à récupérer : piece_example_200x100x20.skp
J'ai un code qui me trouve les trous et les diamètres, mais si la pièce est déplacée ou pris un angle, les coordonnées des trous sont plus bonnes.
En exportant en DXF avec OpenCutList, je n'ai que les trous de la face 1 d'exportés.
Le format DXF me convient aussi, mais s'il est exporté avec toutes les faces :).
Voici un fichier DXF qui ouvert dans TpaCad, on a bien les trous sur plusieurs faces.
Sur le dernier projet, plus de 48 pièces, trop long à exporter face par face.
Merci de prendre le temps pour m'orienté, je continu à parcourir la doc.

lecreole
( Modifié )

Oui, cela me parait bien compliquer tout ça 😅, Mon approche pour le fichier TCN c'est de créer un fichier modèle et de remplacer par des tags les valeurs à modifier.
exemple :

TPA\ALBATROS\EDICAD\02.00:1665:r0w0s1
::SIDE=0;
::ATTR=hide;varv
::UNm DL={{width}} DH={{heigth}} DS={{depth}}
'tcn version=2.9.20
'code=ansi [...]

SIDE#1{
{{side1}}
}SIDE

pour un trou :

W#81{ ::WTp WS={{count}} #8015=0 #1={{posx}} #2={{posy}} #3={{posz}} #1002={{dia}} #201=1 #203=1 #1001={{borgne}} #9505={{borgne}} }W

Puis je remplace les tags dans le fichier 😁.
C'est simplifié l'example, mais c'est juste que tu as une idée.

lecreole
( Modifié )

Est-ce qu'un fichier TCN symbolise qu'une seule pièce ?

Oui

Est-ce qu'une pièce part forcément d'un parallélépipède rectangle (UNm ...) [...]?

Oui, il y a la possibilité de créer des faces fictives, mais au départ c'est bien un parallélépipède à 6 faces.
A savoir, la face 2 ne peut pas être usiner ( au premier passage ), il faut retourner la pièce.

A quoi correspond le WS={{count}} pour un trou ?

C'est juste le numéro d'usinage qui s'incrémente à chaque ajout d'usinage.

Voilà 😁

Pour info, sur OCL, lorsque j'exporte en DXF avec l'option "Lisser les cercles et arcs (Expérimental)", il converti bien en trou de perçage les cercles, sans l'option, il crée un setup pour la fraise.

lecreole

Mais les usinages sur cette face peuvent être définis quand même ?

Non, il faut un autre fichier.

Donc il faut déjà lui faire faire un usinage de coupe pour créer cette face fictive ?

C'est cela 👍

Et sinon, les "cavités" ou "feuillures" seraient définies comment dans le fichier TCN ?

Il crée un setup avec fraise qui suit le traçé de la cavité ou feuillure.

Example dans une pièce de 500m x 200mm x 20mm, une rainure de 8.7mm sur la longueur ( 500mm ) au centre de la pièce :

W#89{ ::WTs WS=131 #8015=0 #1=0 #2=100 #3=-10 #201=1 #203=1 #205=1021 #1001=100 #9502=0 #9503=0 #9505=0 #9506=0 #9504=0 #8101=0 #8096=0 #8095=0 #37=0 #40=0 #39=0 #46=0 #8135=0 #8136=0 #38=0 #8180=0 #8181=0 #8185=0 #8186=0 }W
W#2201{ ::WTl #8015=1 #1=500 #42=0 #49=0 }W
W#2201{ ::WTl #8015=1 #2=-0.7 #42=0 #49=0 }W
W#2201{ ::WTl #8015=1 #1=-500 #42=0 #49=0 }W

W#89 - Setup fraisage
#1=0 - position départ en X
#2=100 - position départ en Y
#3=-10 - position départ en Z ( profondeur )
#205=1021 - Id de l'outil ( 1021 - fraise de 8mm, pour ma machine )
W#2201 - points suivants ( en relatif dans l'exemple ).

A mon avis il faut juste prendre en compte que les perçages et les tracés, sinon trop de paramètres à gérer.

L'application du setup au tracé, ce sera fait manuellement.

Après plusieurs projets réalisés, c'est les perçages des trous de tourillons qui demande le plus de travail et surtout puisque que l'on travail pièce par pièce que les trous sont placés à l'identique de la pièce qui la reçois.

lecreole

Boris Beaulant
Oui, c'est vrai, je souhaite juste m'inspirer de OCL que je trouve excellent 👍.
Dernière petite question, est t-il possible d'une extension personnel de faire appel à des fonctions de OCL.
Par exemple "getAllGenerateComponentsFromOCL()" 😁
Return un object avec leurs dimensions et attributs ?

lecreole

Boris Beaulant Merci, je continu à me documenter sur OCL et l'api Sketchup, je verrais quel orientation je prendrais pour arriver à mon objectif.
Je me répète peut-être, mais OCL est une pépite pour les artisans du bois 😜, un gain de temps énorme et je découvre encore des fonctionnalités intéressantes.
à très bientôt 🙂