Pb de retour suite impression macro.

vos questions concernant les API SolidWorks

Pb de retour suite impression macro.

Messagepar domdom » Ven 09 Sep 2011, 10:57

Bon.

N'ayant pas réussi à régler mon problème avec une tempo, même longue, je fais un nouveau post.

la partie du code qui ne fonctionne pas:

Code: Tout sélectionner
Sub print_active_sheet()

    Dim swApp As SldWorks.SldWorks
    Dim swDocExt As SldWorks.ModelDocExtension
    Dim swModel As SldWorks.ModelDoc2
    Dim swDraw As SldWorks.DrawingDoc
    Dim collate As Boolean
    Dim copies As Long

    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swDocExt = swModel.Extension
    Set swDraw = swModel

    Dim swCurrentSheet       As SldWorks.Sheet
    Dim CurrentSheetName    As String
    Dim i                   As Integer
    Dim SheetIndex          As Integer
    Dim vSheetNames         As Variant

    Set swCurrentSheet = swDraw.GetCurrentSheet
    CurrentSheetName = swCurrentSheet.GetName
    vSheetNames = swDraw.GetSheetNames

    For i = 1 To swDraw.GetSheetCount
        If vSheetNames(i - 1) = CurrentSheetName Then
            SheetIndex = i
        End If
    Next i

'Sélectionne les pages à imprimer -> ici, de SheetIndex à SheetIndex

    Dim pageArray(1) As Long
    pageArray(0) = SheetIndex
    pageArray(1) = SheetIndex
    Dim vPageArray As Variant
    vPageArray = pageArray
    Dim ps As PageSetup
    Set ps = swDraw.PageSetup

'Configuration A4 / Echelle au mieux
    ps.PrinterPaperSize = 9 ' 9=A4 8=A3
    ps.orientation = 2 ' 1=Portrait '2 = Paysage
    ps.ScaleToFit = True ' echelle au mieux
    'ps.Scale2 = 100 ' echelle 100%
    copies = 1 'Nombres de copies
    collate = True

'Impression A4

    'c'est cette ligne qui pose problème... !!!  Evil

    swModel.Extension.PrintOut2 vPageArray, copies, collate, "", ""
   
End Sub



Quand je supprime cette ligne, je n'imprime pas (ça c'est normal:win:) mais le restant de ma macro fonctionne bien. fermeture dessin, fermeture pièce, passage à la pièce suivant.

Si je la laisse, un certain nombre de pièces restent ouvertes.
mais pas toutes...

Et si je fait en mode débug, tout marche bien.

Quelqu'un aurait-il une idée????
Dernière édition par domdom le Ven 09 Sep 2011, 13:32, édité 2 fois.
Avatar de l’utilisateur
domdom
Chevalier Jedi SolidWorks
 
Messages: 360
Inscription: Ven 10 Déc 2010, 10:02
Localisation: France (80)

Messagepar Annwn » Ven 09 Sep 2011, 12:13

à la vue de l'aide sur cette méthode essaye de changer cette ligne :
Dim pageArray(1) As Long

par celle-ci :
Dim pageArray(1) As object

j'aurais même mis un Variant :wink:
Programmer, c'est bien; programmer utile, c'est mieux........
Venez faire un tour ici !
Annwn
Site Admin
 
Messages: 4938
Inscription: Lun 18 Déc 2006, 22:35

Messagepar domdom » Ven 09 Sep 2011, 12:56

OK. je vais essayer les 2!

ça ne mange pas de pain!!! :D

Je te dis quoi! :wink:
Avatar de l’utilisateur
domdom
Chevalier Jedi SolidWorks
 
Messages: 360
Inscription: Ven 10 Déc 2010, 10:02
Localisation: France (80)

Messagepar domdom » Ven 09 Sep 2011, 13:02

well done, my friend!!!! :D :D

Pour info, c'est variant qui fonctionne.

merci beaucoup, Annwn. (Maître, devrais-je dire....!) :oops:
Trop fort. :wink: :wink:
Avatar de l’utilisateur
domdom
Chevalier Jedi SolidWorks
 
Messages: 360
Inscription: Ven 10 Déc 2010, 10:02
Localisation: France (80)

Messagepar domdom » Ven 09 Sep 2011, 13:09

Au fait....

QUOI ! :lol: :lol: :lol: :lol:
Avatar de l’utilisateur
domdom
Chevalier Jedi SolidWorks
 
Messages: 360
Inscription: Ven 10 Déc 2010, 10:02
Localisation: France (80)

Messagepar domdom » Ven 09 Sep 2011, 13:34

Zut ! j'ai répondu un peu vite. :oops:

ça ne buggue plus, mais ça n'imprime plus non plus... pas cool. Evil Evil

Une autre idée????

.... quelqu'un???
Avatar de l’utilisateur
domdom
Chevalier Jedi SolidWorks
 
Messages: 360
Inscription: Ven 10 Déc 2010, 10:02
Localisation: France (80)

Messagepar Chico » Ven 09 Sep 2011, 17:17

Tu as essayé de rajouter un ou plusieurs DoEvents dans ta macro?

À première vue , je ne vois rien d'autre qui cloche, surtout si tout fonctionne parfaitement en mode bébogage...
Il vaut mieux poser une question et risquer d'avoir l'air idiot
une journée que de se taire et d'être bête toute sa vie.

8wd a dit : LA FONCTION RECHERCHE EST TON AMIE
http://www.logiciel-cao.com
Avatar de l’utilisateur
Chico
Esprit Jedi Solidworks
 
Messages: 3120
Inscription: Mer 12 Mar 2008, 19:16
Localisation: Mauricie (Québec) ------SW 2006 SP0.0

Messagepar domdom » Lun 12 Sep 2011, 7:48

ben oui! c'est ce que je me dis aussi.

j'ai mis plusieurs doevents à plusieurs endroit, mais rien n'y fait.

c'est bizarre!!!

Dans l'absolu, c'est pas très grave, mais il faut refermer tous les fichiers après avoir lancé l'impression.

c'est dommage, car pour le reste ça marche très bien...

Je vais faire encore d'autre essais ce matin. je verrai bien.
Avatar de l’utilisateur
domdom
Chevalier Jedi SolidWorks
 
Messages: 360
Inscription: Ven 10 Déc 2010, 10:02
Localisation: France (80)

Messagepar domdom » Lun 12 Sep 2011, 10:12

Bon ! Evil

J'y perds mon latin... Evil

j'ai effectué les tests suivants:

- j'ai allongé ma tempo, puis lancé en mode debug: tout marche.
- j'ai lancé depuis le bouton que j'ai créé, et malgré la tempo, je retrouve le même problème.
- j'ai lancé la macro depuis le menu macro: idem.
- j'ai finalement fais un dernier test en lançant celle-ci en mode débug, en ne faisant directement un F5, et là tout se déroule correctement.

Il y a un truc, quand même.... :roll:

Je ne peux pas déployer une macro qui ne marche pas sur les poste de mes petit collègues, sinon, ça va être les porte ouvertes à toutes les fenêtres...

AIiDEZ MOI, SVP....!! :cry: :cry: :cry:
Avatar de l’utilisateur
domdom
Chevalier Jedi SolidWorks
 
Messages: 360
Inscription: Ven 10 Déc 2010, 10:02
Localisation: France (80)

Messagepar Annwn » Lun 12 Sep 2011, 12:10

domdom a écrit:Bon ! Evil

J'y perds mon latin... Evil

j'ai effectué les tests suivants:

- j'ai allongé ma tempo, puis lancé en mode debug: tout marche.
- j'ai lancé depuis le bouton que j'ai créé, et malgré la tempo, je retrouve le même problème.
- j'ai lancé la macro depuis le menu macro: idem.
- j'ai finalement fais un dernier test en lançant celle-ci en mode débug, en ne faisant directement un F5, et là tout se déroule correctement.

Il y a un truc, quand même.... :roll:

Je ne peux pas déployer une macro qui ne marche pas sur les poste de mes petit collègues, sinon, ça va être les porte ouvertes à toutes les fenêtres...

AIiDEZ MOI, SVP....!! :cry: :cry: :cry:
Là je sèche :(
Programmer, c'est bien; programmer utile, c'est mieux........
Venez faire un tour ici !
Annwn
Site Admin
 
Messages: 4938
Inscription: Lun 18 Déc 2006, 22:35

Messagepar domdom » Lun 12 Sep 2011, 12:37

Ben moi aussi.

Au fait, dans l'aide API, c'est bien comme je l'avais écrit au départ que ça marche...

mais ça ne résoud pas mon problème. :?
Avatar de l’utilisateur
domdom
Chevalier Jedi SolidWorks
 
Messages: 360
Inscription: Ven 10 Déc 2010, 10:02
Localisation: France (80)

Messagepar Chico » Lun 12 Sep 2011, 17:12

Malheureusement, moi aussi je sèche... :?

Tu ne pourrais pas essayer de changer de commande pour la fermeture des fichiers? Tant qu'à ne rien comprendre, on peut essayer autre chose... :roll:
Il vaut mieux poser une question et risquer d'avoir l'air idiot
une journée que de se taire et d'être bête toute sa vie.

8wd a dit : LA FONCTION RECHERCHE EST TON AMIE
http://www.logiciel-cao.com
Avatar de l’utilisateur
Chico
Esprit Jedi Solidworks
 
Messages: 3120
Inscription: Mer 12 Mar 2008, 19:16
Localisation: Mauricie (Québec) ------SW 2006 SP0.0

Messagepar liryc » Lun 12 Sep 2011, 19:42

Je pense qu'il doit manquer une tempo ailleurs.
Ca me fait penser à un problème que nous avons chez nous sur EPDM pour lequel une macro fonctionne correctement sur un serveur local mais plante sur un réseau (latence d'exécution...).
Je me demande si ce n'est pas le temps d'envoi de la requête d'impression qui est trop court et qui du coup plante la macro.
Tu as possibilité de mettre tout le code histoire de tester?
liryc
Chevalier Jedi SolidWorks
 
Messages: 479
Inscription: Ven 02 Mar 2007, 8:14
Localisation: Paris - SW2009 SP5.0

Messagepar domdom » Mar 13 Sep 2011, 8:20

Ben c'est une macro assez importante, et qui contient un peu trop notre "facon" de travailler.

D'autre part, il faudrait également que je mette un assemblage "test", ce qui ne plairait pas beaucoup à ma direction, surtout en cette période assez austère.

Il faudrait que je trouve quelqu'un de confiance à qui l'envoyer en mp.

je tourne sur SW 2010 SP4.

@ chico: que veux tu que je prenne comme commande de fermeture de fichier???

J'ai pas trop d'idée, là.
Avatar de l’utilisateur
domdom
Chevalier Jedi SolidWorks
 
Messages: 360
Inscription: Ven 10 Déc 2010, 10:02
Localisation: France (80)

Messagepar liryc » Mar 13 Sep 2011, 8:47

ok pas de problème.
J'ai testé rapidement ton bout de code, je ne rencontre pas de problème (du moins sur la mise en plan seule, je n'ai pas testé en ouvrant les fichiers associés).
Je ne vois qu'un enchaînement trop rapide en automatique que le mode debug ne fait pas resortir.
Ce sont des gros fichiers de mise en plan?
liryc
Chevalier Jedi SolidWorks
 
Messages: 479
Inscription: Ven 02 Mar 2007, 8:14
Localisation: Paris - SW2009 SP5.0

Suivante

Retourner vers Questions générales sur les API

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

banniere