@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 »
Dim
Novembre 16, 2015, 6:13
42
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 »
bart
Novembre 16, 2015, 6:53
43
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
Dim
Novembre 16, 2015, 7:34
44
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 »
bart
Novembre 16, 2015, 7:38
45
Bon, ne vous moquez pas hein^^
Voici comment ma logique vois les choses.
J'attends vos remarques :p
macro.txt
1 « J'aime »
Dim
Novembre 16, 2015, 8:26
46
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 »
bart
Novembre 17, 2015, 8:23
49
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 »
pl
Novembre 17, 2015, 8:50
50
Salut,
Poste la dernière version de ton code dans un TXT si tu veux de l'aide :)
1 « J'aime »
Dim
Novembre 17, 2015, 9:05
51
pour récupérer le juste le chemin tu doit aporter une petite modif...
voir ci-joint.
export-config.txt
2 « J'aime »
bart
Novembre 17, 2015, 9:38
52
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 »
pl
Novembre 17, 2015, 9:57
53
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 »
bart
Novembre 17, 2015, 10:03
54
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 »
pl
Novembre 17, 2015, 10:15
55
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 »
bart
Novembre 17, 2015, 10:41
56
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 »
pl
Novembre 17, 2015, 10:43
57
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 »
bart
Novembre 17, 2015, 10:45
58
Depuis le 3D
Quand je met Dim TYPE il me dit "erreur de ocmpilation Attendu : Identificateur)
Idem pour la seconde ligne :/
1 « J'aime »
pl
Novembre 17, 2015, 10:57
59
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 »
bart
Novembre 17, 2015, 11:09
60
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 ...........