Faire une macro pour redimensionner les images d'esquisses

Mon nom : KT211.bmp

Si je prends KT211(.bmp)

Mon Nom_EsquisseAP est bien égale à KT211 (cf MsgBox)

Mais là est le problème, le nom d'esquisse ne se modifie pas

boolstatus = Part.Extension.SelectByID2("Esquisse1", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.SelectedFeatureProperties(0, 0, 0, 0, 0, 0, 0, 1, 0, Nom_EsquisseAP)

 

En revanche si je laisse le point KT211. alors ça marche, le nom d'esquisse est bien modifiée.

 

Les modif, c'est juste le double set part et le "fichiers" que tu remplaces directement par folder.files (au lieu de dossier.files ?) pour éviter de créer un set fichiers qui ne sert qu'une fois. J'en ai pas vu d'autre xD

Peux-tu m'envoyer le fichier pièce ainsi que le dossier contenant quelques images ?

Afin que je puisse tester

Alors ça, ça ne va pas être possible xD. Jsuis ingénieur au nucléaire.

 

Pour info tout est en état supprimé dans ma pièce, donc s'il n'y a aucune pièce c'est pareil.

Crée vite fait un dossier avec 3 images dedans et ça va fonctionner de la même manière.

1 « J'aime »

Effectivement cela fonctionne en créant un plan.

Cela fonctionne parfaitement chez moi. Le nom de l'esquisse est de la configuration n'ont pas le point.

 

Le code :

Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim SkPicture As Object
Dim Système As Scripting.FileSystemObject       'Système de fichiers
Dim Dossier As Folder                           'Répertoire
Dim Fichier As File                             'Fichier (élément de la collection Fichiers)
Dim Nom_Dossier As String                       'Nom du répertoire
Dim Nom_Fichier As String                       'Nom du fichier
Dim Nom_EsquisseAV As String                    'Nom d'esquisse avant
Dim Nom_EsquisseAP As String                    'Nom d'esquisse après

Sub main()
    Set swApp = Application.SldWorks
    Set Part = swApp.OpenDoc6("C:\Users\rmorel\Desktop\Pièce1.SLDPRT", 1, 0, "", longstatus, longwarnings)

    'Lecture du répertoire
    Nom_Dossier = "C:\Users\rmorel\Desktop\Test"
    Set Système = CreateObject("Scripting.FileSystemObject")
    Set Dossier = Système.GetFolder(Nom_Dossier)

    'Contrôler chaque fichier du répertoire
    k = 2
    For Each Fichier In Dossier.Files
        'Créer image d'esquisse et mettre à jour les dimensions
        Nom_Fichier = Nom_Dossier & "\" & Fichier.Name
        Nom_EsquisseAP = Left(Fichier.Name, Len(Fichier.Name) - 4)
        
        boolstatus = Part.Extension.SelectByID2("Plan à 4mm", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
        
        Part.SketchManager.InsertSketch True
        Set SkPicture = Part.SketchManager.InsertSketchPicture(Nom_Fichier)
        
        SkPicture.SetSize 50 / 1000, 60 / 1000, False
        SkPicture.SetOrigin -25 / 1000, -20 / 1000
        
        Part.ClearSelection2 True
        
        boolstatus = Part.Extension.SelectByID2("Esquisse1", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
        boolstatus = Part.SelectedFeatureProperties(0, 0, 0, 0, 0, 0, 0, 1, 0, Nom_EsquisseAP)
        
        boolstatus = Part.Extension.SelectByID2(Nom_EsquisseAP, "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
        Part.EditSuppress2
        
        boolstatus = Part.Extension.SelectByID2("AM_P01_HO", "CONFIGURATIONS", 0, 0, 0, False, 0, Nothing, 0)
        boolstatus = Part.AddConfiguration2("AM_" & Nom_EsquisseAP, "", "", False, False, False, True, 256)
        
        Part.ClearSelection2 True
        
    Next Fichier
End Sub

 

Tiens j'ai trouvé un bug au passage.

C'est lié à ma variable k pour passer à l'autre esquisse que j'ai levé car elle ne servait plus.

Le BUG

- Crée une esquisse

- Renomme la

- Crée une nouvelle esquisse => elle s'appellera esquisse2

 

- Crée une esquisse

- Renomme la

- Crée une configuration

- Crée une nouvelle esquisse => elle s'appellera esquisse1

 

Pour faire simple, la configuration permet une MAJ, donc pour un code sur esquisse il faudra prendre en compte le fait que l'on crée des configurations ou non.

Pour ma part sans j'avais besoin d'un incrément k et d'appeler les "esquisse" & k

Avec configuration j'ai juste à appeler l' "esquisse1"

 

xD

Azrod

Bonjour,

c'est un gros truc ça.. bonne chance à celui qui y arrivera :)

J'imagine que toutes les photos n'ont pas les mêmes dimensions?

 

\o/  \o/  \o/  \o/  \o/  \o/  \o/  \o/  \o/  \o/  \o/  \o/  \o/  \o/  \o/  \o/  \o/  

Résolu

1 « J'aime »

Comment et par quel moyen???

1 « J'aime »

Tu peux trouver tout le code dans les discussions...

Si c'est pour discuter d'un détail, n'hésite pas à poser ta question. Essaye d'être un peu plus précis que comment tu as fait xD.

 

Pour rappel :

- Insérer une image d'esquisse

- Modification de dimension d'image d'esquisse après l'avoir insérer

- Dimensionnement selon le type de matériel

- Nom d'esquisse = Nom matériel

- Créer une configuration

- Nom configuration = Nom matériel

- Boucle sur tous les matériels d'un fichier