geolys Posté(e) le 11 janvier 2006 Posté(e) le 11 janvier 2006 Dans l'espace Papier j'ai X mises en pages format 420 / 297.La première commence à 0,0, la deuxieme 420,0, la troisième 297,0, .... Eb bref sous forme de tableau 2 colonnes X lignes Comment en VBA effectuer les impressions en automatique fenetre 0,0 420,297 fenetre 420,0 840,297 fenetre 0,297 420,594 fenetre 420,297 840,594 ..... :casstet:
Oli553 Posté(e) le 11 janvier 2006 Posté(e) le 11 janvier 2006 Pourquoi ne fait tu pas plusieurs présentations? :casstet: L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai. "Il vaut mieux mobiliser son intelligence sur des conneries, que sa connerie sur des choses intelligentes" - Devise Shadok. "ceux qui ne se souviennent pas du passé sont condamnés à le revivre" George Santayana Ma bibliothèque de blocs électrique :symbole elec.dwg
geolys Posté(e) le 11 janvier 2006 Auteur Posté(e) le 11 janvier 2006 Les mises en page sont déjà faites dans l'espave papier via un autre pgm En fait je cherche comment avec la commande plot la possibilité de donner un mini max (une fenêtre)
Pako Posté(e) le 12 janvier 2006 Posté(e) le 12 janvier 2006 hé geolys, Dans la classe : _AcadPlotConfigurationOn retrouve la méthode : GetWindowToPlot(LowerLeft, UpperRight) Et voici un exemple modifié, pris dans le Help : Sub Example_GetWindowToPlot_() Dim point1(0 To 1) As Double Dim point2(0 To 1) As Double point1(0) = 0 point1(1) = 0 point2(0) = 420 point2(1) = 297 ' Dans le layout courant ThisDrawing.ActiveLayout.SetWindowToPlot point1, point2 ' Capter l'information de la fenêtre ThisDrawing.ActiveLayout.GetWindowToPlot point1, point2 End Sub l'ACADien ! http://img124.exs.cx/img124/7999/start.gif
geolys Posté(e) le 16 janvier 2006 Auteur Posté(e) le 16 janvier 2006 Merci, j'ai adapté la programmation pour répondre à mes besoins Ca marche très bien sous Autocad 2004, mais avec Autocad 2005 j'ai une erreur La méthode "DISPLAYPLOTPREVIEW" de l'objet "IacadPlot" a échoué Private Sub FM_imprime_Click()Dim pt1(1) As Double, pt2(1) As Doubleform_imprime.HideThisDrawing.ActivateFor nbl = 1 To fm_nbl For nbc = 1 To fm_nbc pt1(0) = Val(fm_x1) + (Val(fm_x2) * nbc) - Val(fm_x2): pt1(1) = Val(fm_y1) + (Val(fm_y2) * nbl) - Val(fm_y2) pt2(0) = Val(fm_x2) * nbc: pt2(1) = Val(fm_y2) * nbl If fm_imp2 = True Then: pt1(0) = pt1(0) + fm_m: pt1(1) = pt1(1) + fm_m: pt2(0) = pt2(0) - fm_m: pt2(1) = pt2(1) - fm_m ThisDrawing.ActiveLayout.SetWindowToPlot pt1, pt2 ThisDrawing.ActiveLayout.GetWindowToPlot pt1, pt2 ThisDrawing.ActiveLayout.PlotType = acWindow If frm_cen = True Then ThisDrawing.ActiveLayout.CenterPlot = True Else ThisDrawing.ActiveLayout.CenterPlot = False If fm_imp3 = True Then ThisDrawing.Plot.DisplayPlotPreview acFullPreview Else ThisDrawing.Plot.PlotToDevice Next nbcNext nblEnd Sub
doua Posté(e) le 18 janvier 2006 Posté(e) le 18 janvier 2006 Salut , moi aussi j'ai un problème pour faire une impression automatique de mes plans je m’explique : J’ai des pièces à donner à la fabrication donc je fait plusieurs fiches pour chaque pièce,Et là je me retrouve avec une centaine de fiches format « A4 » ou « A3 » posés l’une a coter de l’autre et dans une même feuille de présentationj'ai fait un petit script et ça marche mais je me suis trouver avec plein coordonées pour la selection de chaque fiche ... j'aimerai avoir un programme vba qui peut me selectionner fiche par fiche et l'imprimer au format A4 ou A3 (au choix ). en fait je débute en vba sous autocad .... alors ...??? Merci pour votre aide !! :)
Chrisfs Posté(e) le 19 janvier 2006 Posté(e) le 19 janvier 2006 Bonsoir, Merci, j'ai adapté la programmation pour répondre à mes besoins Ca marche très bien sous Autocad 2004, mais avec Autocad 2005 j'ai une erreur La méthode "DISPLAYPLOTPREVIEW" de l'objet "IacadPlot" a échoué Sous Autocad 2006, il y a une modification pour l'impression (voir si c'est pareil pour 2005), il faut passer la variable "BACKGROUNDPLOT" à 0 en VBA. Si elle est a 1, on obtient ce message d'erreur. --- ThisDrawing.SetVariable "BACKGROUNDPLOT", 0 ben, sinon, le tracage se mets en arriere-plan, et tant que l'impression n'est pas faite, cela bloque la fonction impression, mais VBA ne le voit pas et continu de faire tourner la routine pour imprimer le cartouche suivant. Pour ma part, je suis parti sur une programmation vba en 2 partie : - 1 fichier Excel qui liste les differents blocs "Cartouche" avec les coordonnées, le type de cartouche (Portrait, paysage). Comme les clients exige leur PDG, je doit jongler entre plein de cartouches différents. - en VBA, il scanne dans l'espace selectionné, les blocs cartouches, fait un calcul rapide des points pour la fenetre d'impression. Il regarde l'echelle du cartouche, et regle la mise a l'echelle à l'impression. Ensuite il lance l'impression. Pour l'instant, cette routine me suffit, bien que je vais la perfectionner (il me faut trouver le moyen de selectionner en VBA l'imprimante et le format de papier suivant les cartouches). Comme à la maison, j'ai une vieille version que celle que je developpe au boulôt, je la mettrais en ligne la semaine prochaine. voila,
PONTIAC95-2 Posté(e) le 20 janvier 2006 Posté(e) le 20 janvier 2006 Il suffit d'enregistrer tes A3 sous forme de vue (P0,P1,P2) et puis de faire un petit programme te demandant quelles sont les vues que tu veux imprimer.(Pour limiter le nombre d'onglets car j'ai régulièrement des cahiers A3- de plus de 50 pages, je considére pour moi qu'un onglet contient 8 feuillets a3, + facile à gérer et une vision améliorer de la continuité de ma pagination.)
geolys Posté(e) le 28 mars 2006 Auteur Posté(e) le 28 mars 2006 :) :) :) Sous Autocad 2006, il y a une modification pour l'impression (voir si c'est pareil pour 2005), il faut passer la variable "BACKGROUNDPLOT" à 0 en VBA. Si elle est a 1, on obtient ce message d'erreur. --- ThisDrawing.SetVariable "BACKGROUNDPLOT", 0 UN GRAND MERCI, ça marche !!! A ce jour, l'ensemble des employés devaient passer sur mon poste (seul à garder une licence 2004). Avec ta solution j'ai pu l'installer sur l'ensemble des postes Encore merci, il suffit bine souvent de peu :casstet: :casstet: :casstet:
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant