Copie arbre de création texte

Bonjour,
Est-il possible de récupérer l’arbre de création de sw2023 sou forme de fichier texte ? En vous remerciant pour vos réponses.

1 « J'aime »

bonjour,

Pas à ma connaissance, mais surement que d’autres auront des astuces.
Parcontre, par curiosité, pourrais je t’en demander la raison ?

L’arbre de création d’une pièce?
D’un assemblage (nomenclature?)
Merci de précisez demande si possible.

ca m’intéresse également, j’aurais besoins de partager des fichiers natifs mais avec des version SW différentes

si quelqu’un sait comment automatiser soit la transcription en texte de l’arbre ou la copie d’écran des fonctions par étapes

Bonjour;
Quelques pistes à creuser ici: (JAVA Script)

ou ici (mais elles datent un petit peu:

Cordialement

2 « J'aime »

Bonjour,
Effectivement, c’est l’arbre de création d’un assemblage. En vous remerciant.

Bonjour,
Essayez ce code en C# pour extraite le nom des fonctions de l’arbre dans un assemblage :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Forms;

using SolidWorks.Interop.sldworks;
using SolidWorks.Interop.swconst;
using System.IO;

namespace Lecture_Arbre_Assemblage
{
    public partial class SolidWorksMacro
    {
        public void Main()
        {
            ModelDoc2 swDoc = null;
            Feature swFeat = null;
            swDoc = ((ModelDoc2)(swApp.ActiveDoc));
            swFeat = (Feature)swDoc.FirstFeature();
            string path = @"C:\Users\tm\Documents\tree.txt";
            File.Delete(path);
            string featType;
            string featName = swFeat.GetNameForSelection(out featType);
            while (swFeat != null)
            {
                featName = swFeat.GetNameForSelection(out featType);
                if(featType == "SKETCH")
                    File.AppendAllText(path, "\t" + featName + "\r");
                else
                File.AppendAllText(path, featName + "\r");
                swFeat = (Feature)swFeat.GetNextFeature();
            }
        }
        // The SldWorks swApp variable is pre-assigned for you.
        public SldWorks swApp;
    }
}

Il faut modifier cette ligne de code pour spécifier l’emplacement du fichier :
string path = @« C:\Users\tm\Documents\tree.txt »;

En pièce jointe le fichier qui a été sorti. Ce n’est qu’une ébauche, il y a beaucoup de possibilités selon les besoins.
tree.txt (377 Octets)

Cordialement,

Bonjour,
Merci pour votre réponse. Pour ma part j’ai fini par utiliser cet utilitaire :

C’est lent, mais cela répond à mon besoin.

Bonjour @mw1free ,
Réponse tardive…
Bien que très ancienne, la macro indiquée plus haut par @Maclane fonctionne parfaitement sur une pièce ou un assemblage. Son seul inconvénient est de ne proposer aucun filtre à l’importation, ce qui génère un document très complet, mais très confus.
L’évolution proposée intègre 3 filtres:

  • une profondeur d’exploration de l’arbre;
  • une liste de cases à cocher pour définir les objets de l’arbre à ignorer;
  • une liste de cases à cocher pour définir les propriétés de composants à afficher (assemblages).

Cordialement.
CopyFeatureTree.swp (141,5 Ko)
CopyFeatureTree.pdf (196,4 Ko)

2 « J'aime »

Cool !!!
Merci pour ces évolutions bienvenues @m.blt … et avec une jolie notice en prime, classe! :+1: :+1: :+1: