Aller au contenu

Impression de feuillets à partir de l\'EO


Messages recommandés

Posté(e)
tout les blocs dynamiques sont identiques

Je ne sais pas si j'ai compris :

Le truc c'est que je fait un test de la taille du bloc.

Si son dynamisme lui permet d'être plus petit (A3->A4 par ex), malheureusement le code récupèreras sa taille de "base"... (j'imagine)

Mais je ne connais rien au bloc dynamique, donc peut-être (surement) il y a une solution....

 

Si tu as ce genre de bloc (et si j'ai compris le coup du "bloc identique") si tu as un bloc du genre à joindre, je veux bien tenter....

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

  • Réponses 132
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

Meilleurs contributeurs dans ce sujet

Posté(e)

Salut Bred

 

En regardant ton lisp, je ne comprends pas pourquoi tu transformes les coordonnées de la boundingbox pour ensuite les re mouliner en vl ?

Et aussi une astuce pour éviter un vl-cmdf est d'utiliser plottodevice dans (vla-get-plot ...)

 

Mais je ne connais rien au bloc dynamique, donc peut-être (surement) il y a une solution....

De sélectionner tout les `*U* et ensuite de tester par effectivename.

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

Un bon exemple vaut mieux qu'un long discour.

 

Voici un fichier test avec le bloc BIGC-ROMU

 

ici le fichier test

 

Mais ce n'est pas grave, car si on à 80 feuillets avec 4 affichage different, on lance 4 fois ton lisp est c'est toujours mieux que de faire 80 tracer.

 

@+

MDSV31

 

Je viens de me relire est je me suis pas bien compris. Quand je dis 4 affichages, cela veux dire que le blocs à plusieurs options de vue et rotation intégrer dans le bloc.

 

Bon je m'enfonce de plus en plus, le fichier joint devrais etre plus comprehansible.[Edité le 24/6/2008 par mdsv31]

 

[Edité le 24/6/2008 par mdsv31]

Dessinateur Indépendant

Posté(e)

Re,

merci Patrick_35 je jette un coup d'œil sur tes remarques.

mdsv31 : je regarde ça.

 

Voici ci-dessous le lisp permettant de créer un onglet par cadre (identique) sélectionné.

A toi de me dire, BIGC-ROMU, si c'est bon...

 

- Voir Message 23 page 4 -

 

[Edité le 7/7/2008 par Bred]

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)
pourquoi tu transformes les coordonnées de la boundingbox pour ensuite les re mouliner en vl ?

Parce que la boundingbox me donne tes coordonnées 3D, et que vla-setwindowtoplot n'accepte que des points 2D.

Et je n'ai pas trouvé un autre moyen de les convertir...

 

une astuce pour éviter un vl-cmdf est d'utiliser plottodevice dans (vla-get-plot ...)

Ben j'avais un problème pour les imprssion en pdf, et je n'avais pas la barre de défilement, mais en faisant une recherche ici, j'ai trouvé ton post, ou on ta proposé une solution, je vais la tester !

 

De sélectionner tout les `*U* et ensuite de tester par effectivename.

Oui, mais il faut aussi que je traite tous les blocs "normaux", pas que les dynamique....

(si le cadre est un bloc "simple" il faut que ça fonctionne)

mais tu as raison, je dois pouvoir mieux filtrer...

 

 

 

 

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Re, Re,

 

Alors, voici un truc un peu plus fini pour le lisp d'impression de tous les cadres (bloc) sélectionné :

- J'ai suivis les conseil de Patrick_35 pour éviter le vl-cmdf

- J'ai réparer le problème posé par mdsv31 dans son exemple

- J'en ai profiter, car ce précédent exemple posais le problème, de gérer le mode paysage ou portrait selon l'orientation du cadre...

 

A tester....

 

; imprime tous les cadre/bloc identique d'un page - par BRED -
(defun c:impt (/ ACDOC B BACKGROUNDPLOT C I P1 P2 SEL XMIN YMAX PLT)
 (vl-load-com)
 (while (not sel)
   (setq sel (car (entsel "\n Choix du cadre (Bloc) :")))
   (if sel
     (if (not (equal (vla-get-ObjectName (setq b (vlax-ename->vla-object sel))) "AcDbBlockReference"))
(setq sel nil)))
   )
 (setq sel (ssget '((0 . "INSERT")))
AcDoc (vla-get-activedocument (vlax-get-acad-object))
BACKGROUNDPLOT (getvar "BACKGROUNDPLOT"))
 (setvar "BACKGROUNDPLOT" 0)
 (repeat (setq i (sslength sel))
   (if (equal (vla-get-effectivename (setq c (vlax-ename->vla-object (ssname sel (setq i (1- i))))))
       (vla-get-effectivename b))
     (progn
(vla-GetBoundingBox c 'xmin 'ymax)
(setq p1 (vlax-make-safearray vlax-vbdouble (cons 0 1))
      p2 (vlax-make-safearray vlax-vbdouble (cons 0 1)))
(vlax-make-variant
  (vlax-safearray-fill p1 (list (car (vlax-safearray->list xmin)) (cadr (vlax-safearray->list xmin)))))
(vlax-make-variant
  (vlax-safearray-fill p2 (list (car (vlax-safearray->list ymax)) (cadr (vlax-safearray->list ymax)))))	
(if (> (- (car (vlax-safearray->list ymax)) (car (vlax-safearray->list xmin)))
       (- (cadr (vlax-safearray->list ymax)) (cadr (vlax-safearray->list xmin))))
  (vla-put-PlotRotation (vla-get-activelayout AcDoc) ac90degrees) 
  (vla-put-PlotRotation (vla-get-activelayout AcDoc) ac0degrees))
(setq plt (vla-get-plot AcDoc))
(vla-put-PlotType (vla-get-activelayout AcDoc) acWindow)
(vla-setwindowtoplot (vla-get-activelayout AcDoc) p1 p2)	
(vla-plottodevice plt (vla-get-configname (vla-get-activelayout AcDoc)))
)
     )
   )
 (setvar "BACKGROUNDPLOT" BACKGROUNDPLOT)
 (princ)
)

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Salut BRED,

 

Bon tout est OK chez moi (AAC2008)

 

Je regade le lisp pour faire les presentations plus tard.

 

Merci Beaucoup.

 

@+

MDSV31

Dessinateur Indépendant

Posté(e)

je ne sais pas si la proposition de x_all te conviens,

Il semblerais que tous leurs dessins sont superposés dans l'EO, et ce n'est pas cela que je souhaite...

 

Voici ci-dessous le lisp permettant de créer un onglet par cadre (identique) sélectionné.

A toi de me dire, BIGC-ROMU, si c'est bon...

 

C'est exactement ça l'idée...

 

Par contre sur chaque onglet j'ai 2 fenêtres:

- une grosse centrée sur la page, à une échelle batarde et qui représente tous l'EO (grosso modo, un onglet créer avec Nouvelle Présentation)

- Une petite à l'echelle 1 située en bas à gauche de chaque onglet et affiche bien un bloc différent dans chaque onglet.

 

Et je ne sait pas comment fair pour régler par défaut mon format d'impréssion avant de lancer le lisp, car je n'ai que des présentations A4...

 

Pour Ie lisp Impt, j'ai rien à dire pour le moment, il faut que je le teste un peu...

 

A+

 

Posté(e)

Bonsoir à toutes et tous,

 

Que quelqu'un me sorte une seul réflexion dans un post ou j'ai fais des remarques désobligeante, ce serait bien pour moi, car je ne m'en suis pas aperçu....

 

Jamais eu l'occasion de voir ça, et moi aussi, j'traine un peu sur ce forum,..

 

Pour te rassurer, j'apprécie ta participation, le partage de ton expérience et t'en remercie.

Je suis même époustouflé par ta progression en développement en lisp/vlips, tu es vraiment un passionné, comme certain autre membres d'ailleurs (ils se reconnaitront)

 

Pas mieux que Bonuscad en ce qui me concerne,...

Civil 3D 2025 - COVADIS_18.3b

https://www.linkedin...3%ABt-95313341/

Posté(e)
Il semblerais que tous leurs dessins sont superposés dans l'EO, et ce n'est pas cela que je souhaite...

 

en fait, un carnet de détail, ça ressenble à ça en EO...

 

http://img247.imageshack.us/img247/4162/ecrancarnetyv6.jpg

 

les cadres sont des polygone isolé dans un calque "mise en page" et ce sont ces polygones qui sont imprimé "a l'ancienne" en mode fenêtre...

 

 

 

 

je vais essayer le lisp de Bred, si j'ai un peu de temps, mais je sais pas trop si c'est judicieux de créer une 100taine d'onglets de présentation...

 

à voir...ça me permettrai peut etre avec "ong" de gérer mes différente impression en réglant les propriété des onglets... car là j'ai un lisp par format (en fait j'ai 4 lisp pour A4, A3, en NB et en couleur)

Posté(e)

Salut,

je vais essayer le lisp de Bred, si j'ai un peu de temps, mais je sais pas trop si c'est judicieux de créer une 100taine d'onglets de présentation...

ça ne va pas fonctionner, si tes cadres ne sont pas des blocs.

 

PS : merci lili2006.

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Bien le bonjour tous le monde.

 

Bred,

Aprés test de ton lisp CED, cela crée des fenetre mais je pense qu'il y a un ptit probléme d'echelle qui à mon avis de non programme n'est pas réalisable sans un tres gros travail.

 

Voici un fichier avec le résultat donné ICI

 

@+

MDSV31

Dessinateur Indépendant

Posté(e)

Bonjour à toutes et tous,

 

Je vois que tu as covadis d'installé et que c'est lui qui te génére les profils. Utilises alors la fonction de covadis qui permet le tracé en série des profils,...

Désolé je n'ai pas le progiciel sous la main et ne me rapelle plus de mémoire la manip à faire.

Eventuellement, repost ta question sur le forum Covadis, Thierrygarré , ou un autre te répondra rapidement,...

 

Mais je vais aussi tester le lisp de Bred

 

Ps: C'est normal Bred, au vu de tout ce que tu fais pour ce forum (et pour moi également,...). [Je tente de revenir sur le "bug" rencontré sur la v2009 dans la journée,...]

Civil 3D 2025 - COVADIS_18.3b

https://www.linkedin...3%ABt-95313341/

Posté(e)

slt lili2006,

 

si c pour moi que tu dis

Je vois que tu as covadis d'installé et que c'est lui qui te génére les profils. Utilises alors la fonction de covadis qui permet le tracé en série des profils,...

 

ben oui, je sais le faire... mais je parlais du lisp qui reprend cette fonctionnalité hyper pratique

sur l'exemple que j'ai mis, c'est effectivement un fichier covadis, mais on se sert du lisp pour sortir les carnets de ferraillage qui on exactement le même aspect sur des postes de bétonneux qui n'ont pas covadis.

 

je suis le seul a trainer sur cadxp dans la boite, mais les 3 dessinateur béton qui sortent des cahiers de ferraillage (courrament 60 à, 100 pages) ont appris a remercier lovcraft dans leur prières ... et ceux malgrés les bugs de l'imprimante DWGtoPDF qui nous polue de petits décalages aléatoires pour mémoire le sacrosaint bout de code qui nous fait gagner des heures...

Posté(e)

Re,

 

En effet x_all, c'est bien à toi que je m'adressai (désolé !).

 

En revisionnant le post que tu met en lien, je me rapelle avoir testé aussi.

En fait, je préfère crééer une vue dans l'EO, ensuite je la lie avec une présentation.

L'ensemble sous forme de gabarit et je n'insère que les vues qui m'intéresse dans le projet en cours, puis je lance la publication et pendant ce temps, je continu mon travail,...

Bien sûr, les onglets de présentation sont déjà réglés à l'echelle, verouillés et paramétrés sur l'imprimante,..(Idem pour les grands formats d'ailleurs !)

 

Exemple ci-joint

Civil 3D 2025 - COVADIS_18.3b

https://www.linkedin...3%ABt-95313341/

Posté(e)

Salut,

pour en revenir à la seconde demande : création d'un onglet par cadre en EO.

(mais pas la demande spécifique de 2 fenêtres avec plan total + détail : on verra plus tard....)

 

J'ai pondu un truc, mais j'ai un bug bizarre : l'échelle n'est pas bonne...

 

Le principe :

Vous devez avoir au moins 1 présentation paramétrer correctement (traceur, échelle....)

 

- Vous sélectionnez un cadre (bloc) en EO

- Vous sélectionnez tous les cadres identiques que vous voulez traiter

- Vous donnez un nom d'onglet (qui sera incrémenter de +1)

- Si vous avez déjà plusieurs présentation existantes, vous devez rentrer le nom de celle qui serviras de base pour le traceur et l'échelle (mais c'est là que c'est bizarre...)

- Vous validez.

 

Merci d'avance pour vos éventuels tests.

 

PS : J'ai repiquer et retravailler une routine de récupération de style de traceur fait par Patrick_35.

 

- Voir Message 23 page 4 -

 

[Edité le 7/7/2008 par Bred]

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

ça ne va pas fonctionner, si tes cadres ne sont pas des blocs.

 

Vu la "gueule" des cadres, il lui est facile de créer un bloc créer d'un rectangle et de l'appliquer en mode "Réseau" ("_.-ARRAY") "Rectangulaire" !

 

Après j'ai pas essayé ta routine Bred...

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

Bonjour à tous.

 

Bred :

Pour recopier la config, tu as pris un ancien lisp que j'ai amélioré ensuite avec vla-copyfrom

Syntaxe : vla-copyfrom Layout_Destination Layout_Origine.

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

Bonjour à tous, désolé d'avoir délaissé se post quelque jours...

 

en fait, un carnet de détail, ça ressenble à ça en EO...

 

désolé X-all, je suis passé trop vite sur ton poste...mais je souhaite utiliser des blocs dynamiques, et apparament ton lisp ne fonctionne qu'avec des polygones.

 

L'impression par les onglets permet d'imprimer des feuillets avec des folios d'orientations différentes et dans l'ordre souhaité.

De plus l'impréssion par les onglets permet de créer des fichiers DWF de plusieur pages d'un seul coup. Ce qui permet d'éviter de fusionner divers fichiers DWF dans l'explorateur windows, qui nécessite aprés coups une réorganisation des pages dans le DWF finale.

Concernant le temps de publication, je la lance en arriére plan (outils => options => tracer et publier => options de traitement en arrière plan) ce qui me permet de continuer à travailler.

Dans le cas d'urgence, je remet le tracé en avant plan.

 

Bred , aprés test de CEP, moi aussi j'ai un problême d'échelle..

Ma présentation de départ contient une fenêtre à l'échelle 0.2...

Tandis que les nouvelles présentations créées avec CEP contiennent une fenêtre à l'échelle 1000... Oups, mais celles-ci semble axées sur leurs présentations (en pin's)...

 

Tiens moi au courant ...

 

A+

 

 

 

Posté(e)

Bonjour,

 

tout d'abord merci Bred d'avoir élaboré cette routine qui me fera gagner énormément d'HEURES !!!

 

Cependant, est-il possible quelle ne fonctionne pas sous AutoCAD 2005 ?

 

Il me semble que c'est au moment de la création des onglets qu'il me met ce message :

 

Commande: cep
Choix du cadre (Bloc) :
Choix des objets: Spécifiez le coin opposé: 45 trouvé(s)

Choix des objets:

Nom des Onglets à Créer :PT-1
; erreur: no function definition: VLA-GET-EFFECTIVENAME

Commande: 

 

Saurais-tu d'où cela peut provenir ?

 

Merci

 

Rémy

 

Posté(e)

Salut Patrick_35

Pour recopier la config, tu as pris un ancien lisp que j'ai amélioré ensuite avec vla-copyfrom

Syntaxe : vla-copyfrom Layout_Destination Layout_Origine.

En effet (et je t'ai cité, encore merci)

 

Pour le vla-copyfrom, c'est vu, j'ai corrigé (ci-dessous).

encore merci.

 

[surligneur]Question : Je n'ai pas trouvé le moyen de travailler dans chaque onglet sans l'activer...

Y-a t'il un moyen ? - merci -[/surligneur]

 

BIGC-ROMU :

Ma présentation de départ contient une fenêtre à l'échelle 0.2...

Tandis que les nouvelles présentations créées avec CEP contiennent une fenêtre à l'échelle 1000... Oups, mais celles-ci semble axées sur leurs

mmm... je triche en fait, c'est moi qui passe l'échelle de la fenêtre à 1000....

C'était pour tester, et j'ai plus fais gaffe....

C'est corrigé. (ci-dessous)

 

grans_sapin :

Cependant, est-il possible quelle ne fonctionne pas sous AutoCAD 2005 ?

ça devais être à cause du vl-load-com oublié dans la sous-routine... mais on n'en a plus besoin dans cette nouvelle version :

 

- Voir Message 23 page 4 -

 

[Edité le 7/7/2008 par Bred]

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)
En effet (et je t'ai cité, encore merci)

J'ai remarqué et je t'en remercie ;)

 

[surligneur]Question : Je n'ai pas trouvé le moyen de travailler dans chaque onglet sans l'activer...

Y-a t'il un moyen ? - merci -[/surligneur]

Surement, c'est pour faire quoi ?

Juste une indication si elle répond à ta question.

Dans un layout, tu remarqueras que tu as la propriété block. Un vlax-for du block de donneras tous les éléments présents dans ton layout (dont le premier élément est le fameux viewport "général" de la présentation, celui qui nous embête avec un (ssget "x" '((0 . "VIEWPORT"))) )

 

@+

 

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

mmm... je triche en fait, c'est moi qui passe l'échelle de la fenêtre à 1000....

 

Serait il possible que l'on puisse choisir notre propre facteur d'échelle avant la création des onglets?

 

On se rapproche du but final!!!!

Posté(e)
Surement, c'est pour faire quoi ?

C'est pour améliorer mon lisp ci-dessus : quand je crée la fenêtre dans une présentation, je n'arrive pas à le faire sans l'activer...

vla-AddPViewport n'a l'air de prendre en object que "PaperSpace collection"...

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Re,

 

Désolé de t'importuner encore Bred, mais la routine bloque toujours au même endroit.

 

Cela viendrait-il du fait que dans AutoCAD 2005, les blocs dynamiques n'existaient tout bonnement pas ? et par conséquent, tu as utilisé des variables ou des commandes inconnues de ma version ?

 

j'ai testé sur une version 2006, tout fonctionne super, c'est génial, puis j'ai testé sur une autre version 2005, et l'erreur est la même.

 

voila l'état de la chose.

 

Merci encore

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant



×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité