Macro export déplié dxf BIS

@Bart : Pour le next sans for, c'est que j'ai dut inversé une ligne avec le end if ... mais je n'ai rien pour tester le bout de programme là tout de suite.

 

J'essayerais de voir ça demain

 

@Damoon : du coup, on à le droit à un petit coup de cidre avec ton brut de pomme ?

1 « J'aime »

Pour la mise en plans, elle sert pour pouvoir inserer automatiquement des propriéter pour la fabrication... 

et ça permet d'enlevé aussi les lignes de pliage pour que le dxf soit directement "propre" pour la découpe laser.

comme ça j'ai qu'une mise en plans pour l'export avec ses propre réglage. 

@coin37coin pour le cidre il y en as pas en vendée ici c'est la Trouspinette ^^

1 « J'aime »

Voilà ce que j'ai.

 

Que dois-je faire? :p

 

Sinon avec l'autre manière, on y est presque! Il y a juste à dire à Sw de n'exporter que les flat pattern et d'enlever dans le nom ce fameux flat pattern.

 


sans_titre.png

Il faut que tu active sertaine références.. 

pour ce faire dans il faut allé dans outil puis référence et chocher les références comme dans l'image ci-jointe


capture.png
1 « J'aime »

Bon, ne vous moquez pas hein^^

 

Voici comment ma logique vois les choses.

J'attends vos remarques :p


macro.txt
1 « J'aime »

j'ai repris ta fasson de faire (les lignes:

  NewFilePath = PathNoExtension + sConfigName & ".DXF"
 bRet = swModel.ExportFlatPatternView(NewFilePath, 1)     )

une option que je ne conaissait pas^^

avec ma boucles sur les config qui "saute" les configs contenant "SM-FLATPATTERN"

voir fichier joint^^.


export-config.txt
2 « J'aime »

Je ne connaissais pas le code "is XXX like then goto".

Interessant comme manière de procéder et qui allege bien des lignes. Je vais la retenir

1 « J'aime »

@Bart, j'ai regardé la macro que tu as faite.

 

Bon visiblement, mon code de "If Strings.Left(sConfigName, PathSize - 15) <> "SM-FLAT-PATTERN" " Ne marche pas super (voir pas du tout).

 

Parcontre, pour info, fais attention dans ta construction. Le VBA à sa propre fonction de faire et si tu interverties 2 lignes ça peut ou non fonctionner ;)

 

Lorsque tu fais

If Strings.Left(sConfigName, PathSize - 15) = "SM-FLAT-PATTERN" Then
PathNoExtension = Strings.Left(FilePath, PathSize - 6)
       bRet = swModel.ExportFlatPatternView(NewFilePath, 1)
       NewFilePath = PathNoExtension + sConfigName & ".DXF"

En gros tu lui demande de vérifier que SM-FLAT-PATTERN est dans le nom

Retirer 6 caractére à l'extension

Créer le le déplié

Tu donnes le chemin d'accés.

 

Or il faudrait faire comme ça 

 

PathNoExtension = Strings.Left(FilePath, PathSize - 6)
If Strings.Left(sConfigName, PathSize - 15) <> "SM-FLAT-PATTERN" Then
       NewFilePath = PathNoExtension + sConfigName & ".DXF"
       bRet = swModel.ExportFlatPatternView(NewFilePath, 1)

Retirer 6 caractere dans le nom

Si le nom de la config est différent (<>) de Flat Patterne

Donner le chemin d'accés à l'enregistrement

Créer le déplié

3 « J'aime »

Je me suis couché à 1h du mat.

 

J'ai beaucoup potassé, ça commence à rentrer... ^^

 

J'ai fait un medley de toutes vos macro, j'y ai pris ce qui était intressant.

Tout fonctionne nickel mis à part ce flat pattern.

 

En faite, je n'ai pas besoin du nom de la pièce, j'ai juste besoin de rcuperer le nom de la config de rechercher dans ce nom "SM-FLAT-PATTERN" et de supprimer ces caratères.

 

Avec la formule "is XXX like then goto", Sw n'exporte que les config en Flat pattern, donc exactement ce que je veux. Il ne reste plus qu'a nettoyer le nom du fichier.

1 « J'aime »

Salut,

Poste la dernière version de ton code dans un TXT si tu veux de l'aide :)

 

1 « J'aime »

pour récupérer le juste le chemin tu doit aporter une petite modif...

voir ci-joint.

 


export-config.txt
2 « J'aime »

50 réponses! ça c'est de la question! =)

 

Voici où j'en suis dans la macro.

 

c'est ces lignes là que je dois changer :

PathNoExtension = Strings.Left(FilePath, PathSize - 6)
       NewFilePath = PathNoExtension & ".DXF"

File path est le nom de la pièce, mais je n'en veux pas, je veux juste le nom de la config (sConfigName) et enlever "SM-FLAT-PATTERN"

Je sais je radote....^^

 

Encore merci en tout cas! Sans vous, je ne sais pas comment j'aurai fait!

Par contre pour noter la meilleure réponse, ça va être coton....^^


macro.txt
2 « J'aime »

Ah tu ne veux que le nom de la config ?

Donc remplace la ligne 

NewFilePath = PathNoExtension & ".DXF"

par

NewFilePath = Left(FilePath, InStrRev(FilePath, "\")) & sConfigName & ".DXF"

 

Edit : avec la macro nettoyée en PJ


macro-dxf-bart.txt
3 « J'aime »

Si je mets sCofigName + dxf il me mettera le nom de la config (1548SM-FLAT-PATTERN) + dxf

 

J'ai essayé mais ça ne marchepas, pourquoi on ne peut pas mettre

PathNoExtension = (sConfigName) , Pathsize -15 ? ou un truc du genre

2 « J'aime »

Oui désolé, voilà la macro corrigée !

La syntaxe :

        NewFilePath = Left(FilePath, InStrRev(FilePath, "\")) & left(sConfigName, len(sConfigName)- 15) & ".DXF"
 

 


macro-dxf-bart.txt
2 « J'aime »

Merci Lucas! =) Nickel comme ça!

Enfin merci à tous !!!

 

Bon, vous allez me dire que je suis chiant, mais j'aimerai ajouter une dernière étape................ :s

 

Juste devant le nom de la config, je voudrai ajouter le type de la pièce (Type 1 Type 2 etc...)

Ce type, est une propriété perso qui est visible dans la famille de pièce.

J'ai donc modifi le code de la macro pour y ajouter cette étape, mais forcément, ça bloque! ^^

 

Après promis, je clôture la question! :D


macro_final.png
1 « J'aime »

Tu lances ça depuis un plan ou depuis le 3D ?

Edit essaye ça (ajouter les deux premières lignes et modifier la 3ème à partir de l'existante) :

Dim TYPE as string

 

TYPE = SWmoddoc.GetCustomInfoValue("", "type")

NewFilePath = Left(FilePath, InStrRev(FilePath, "\")) & TYPE & left(sConfigName, len(sConfigName)- 15) & ".DXF"

2 « J'aime »

Depuis le 3D

 

Quand je met Dim TYPE il me dit "erreur de ocmpilation Attendu : Identificateur)

Idem pour la seconde ligne :/

1 « J'aime »

Ah oui, désolé "type" est réservé en VBA ! Mets TYP à la place :

Dim TYP as string

TYP = SWmoddoc.GetCustomInfoValue("", "type")

NewFilePath = Left(FilePath, InStrRev(FilePath, "\")) & TYP & left(sConfigName, len(sConfigName)- 15) & ".DXF"

 

Edit : au fait le nom exact de ta propriété est bien "type" ?

3 « J'aime »

Le nom exact de la propriété est TYPE

 

elle renvoie des valeur comme 1 ou 2 ou 3 etc...

Pour avoir au final : T1 Lg 1250.dxf

 

Erreur de compilation : La variable swmoddoc n'est pas définie

Je mets quoi?

Dim Swmoddoc As ...........