fiesta13310 Posté(e) le 20 septembre 2017 Posté(e) le 20 septembre 2017 Bonjour Voilà 3 ans maintenant que j'utilise le LISP de BRED qui marchait très bien jusqu'à présent.Maintenant j'ai un bug, je ne sais pas si c'est autocad qui fait ce beug mais c'est énervant.Quand j'utilise impt, pendant un temps il fonctionne très bien, puis un beau matin, je veux l'utiliser sur le même fichier que la veil et la ça beug. En fait il me créer que des pages blanche. Alors quand je fait imprimer puis fenêtre pour voir l'aperçu de la dernière page qu'il a appliqué à la présentation, au lieu que ce soit le dernier bloc à imprimer, il me montre un rectangle blanc pommé dans l'espace objet qui a les même dimensions que mon bloc, sauf qu'il y en a pas. Alors si j'utilise impt et que je sélectionne 5 blocs par exemple, il va me créer 5 pages blanche...Bien sur, j'ai déjà essayé de lancer le lisp en désactivant l'accrochage objet. J'ai trouvé une parade à ça, mais c'est chiant. Je sélectionne tout (ctrl+A), je copie et colle dans un nouveau dessin autocad, je relance impt et là tout fonctionne. Une idée de ce qu'il se passe? Merci d'avance et bonne journée
lecrabe Posté(e) le 20 septembre 2017 Posté(e) le 20 septembre 2017 Hello SVP tu nous remets ton Lisp IMPT dans ton message (un simple copier/coller du code) ? Merci, Bye, lecrabe Autodesk Expert Elite Team
x_all Posté(e) le 20 septembre 2017 Posté(e) le 20 septembre 2017 ça serai pas une histoire de scu? re passe en SCGénéral pour voir quelques trucs sur autocad
fiesta13310 Posté(e) le 20 septembre 2017 Auteur Posté(e) le 20 septembre 2017 ça serai pas une histoire de scu? re passe en SCGénéral pour voir j'y ai pensé, je suis déjà en scu général, j'ai même vérifié si ma base été bien à 0,0,0
fiesta13310 Posté(e) le 20 septembre 2017 Auteur Posté(e) le 20 septembre 2017 (modifié) Hello SVP tu nous remets ton Lisp IMPT dans ton message (un simple copier/coller du code) ? Merci, Bye, lecrabe ;; imprime tous les cadre/bloc identique d'un page - par BRED - ;; bloc ayant un attribut "folio" = numéro de page (defun c:impt (/ ACDOC B BACKGROUNDPLOT C I P1 P2 SEL XMIN YMAX PLT lst-att LST LST-F LST-NB Y) (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) ;; Récupère Attrib "FOLIO" (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) ) (if (setq lst-att (vlax-safearray->list (vlax-variant-value (vla-GetAttributes c)))) (repeat (setq y (length lst-att)) (if (equal (strcase (vla-get-TagString (nth (setq y (1- y)) lst-att))) "FOLIO") (setq lst-F (append (list (cons (atoi (vla-get-TextString (nth y lst-att))) c)) lst-F) lst-nb (append (list (atoi (vla-get-TextString (nth y lst-att)))) lst-nb) ) ) ) ) ) ) ;; Tri (setq lst-nb (vl-sort lst-nb '<) i 0 ) (repeat (length lst-nb) (setq lst (append lst (list (cdr (assoc (nth i lst-nb) lst-F)))) i (1+ i) ) ) ;; trite liste bloc (setq i 0) (repeat (length lst) (setq c (nth i lst) i (1+ i) ) (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) ) Modifié le 20 septembre 2017 par (gile) formatage du code (bbcode)
fiesta13310 Posté(e) le 2 octobre 2017 Auteur Posté(e) le 2 octobre 2017 Bonjour, Je me permet de relancer ce sujet pour savoir si quelqu'un avait une réponse à apporter à mon problème s'il vous plait... Merci et bonne journée à tous!
x_all Posté(e) le 6 octobre 2017 Posté(e) le 6 octobre 2017 j'ai chercher à éplucher le lisp, mais je ne suis vraiment pas fort avec les fonctions activeX... au point que j'arrive pas à voir ou sont les lignes qui définissent tous les paramètre d'impression. Quand on passe par (command "-traceur" ... il faut tout renseigner, l'équivalent dans ton code se résume à :(vla-setwindowtoplot (vla-get-activelayout AcDoc) p1 p2) j'ai du mal à comprendre comment P1 et P2 sont défini puis redéfini juste en dessous... mais si ça marchai, c'est peut etre pas là qu'il faut chercher. juste que (setq plt (vla-get-plot AcDoc)) semble faire référence à une config existante. Si la config de la présentation à un décalage ou une echelle à la noix, peut etre c'est là que ça introduit un problème? mais bon désolé... au fait, tu lances ça en espace papier ou objet? quelques trucs sur autocad
fiesta13310 Posté(e) le 24 octobre 2017 Auteur Posté(e) le 24 octobre 2017 Bonjour, je lance ca en espace objet :)
x_all Posté(e) le 25 octobre 2017 Posté(e) le 25 octobre 2017 ok, si tu fait ça en objet, peut etre que tu garde dans ce dessin les présentation par défaut... donc, ton "activelayout"est pas forcement propre? pas de décalage ou d'échelle à la noix? quelques trucs sur autocad
fiesta13310 Posté(e) le 25 octobre 2017 Auteur Posté(e) le 25 octobre 2017 ok, si tu fait ça en objet, peut etre que tu garde dans ce dessin les présentation par défaut... donc, ton "activelayout"est pas forcement propre? pas de décalage ou d'échelle à la noix? Salut, J'ai supprimé toute les présentation par défaut déjà.C'est quoi ce que tu appelles "décalage ou échelle à la noix" ? :unsure:
x_all Posté(e) le 25 octobre 2017 Posté(e) le 25 octobre 2017 Quand tu imprime avec TRACEUR, dans la fenêtre de dialogue dans le coin en bas à gauche tu as un décalage, et à coté l'échelle.Dans les présentations par défaut, (sans template customisé) il y a une échelle différente de 1/1. Je suis pas sur du coup vu ma méconnaissance du VL mais comme il semble récupérer la config depuis ce "activelayout" si elle n'est pas propre ça doit pas être top... peut etre fait passer le bloc dont tu te sers et je testerai si ça marche ici. quelques trucs sur autocad
fiesta13310 Posté(e) le 25 octobre 2017 Auteur Posté(e) le 25 octobre 2017 Quand tu imprime avec TRACEUR, dans la fenêtre de dialogue dans le coin en bas à gauche tu as un décalage, et à coté l'échelle.Dans les présentations par défaut, (sans template customisé) il y a une échelle différente de 1/1. Je suis pas sur du coup vu ma méconnaissance du VL mais comme il semble récupérer la config depuis ce "activelayout" si elle n'est pas propre ça doit pas être top... peut etre fait passer le bloc dont tu te sers et je testerai si ça marche ici. Ben le truc, c'est que ça fonctionne un certain temps, puis un beau jour, pouf! ça ne fonctionne plus. Alors la parade que j'ai trouvé c'est de tout copier (ctrl+A) et de tout coller (ctrl+v) dans un nouveau dessin, et là ça fonctionne à nouveau, mais jusqu'à quand?ce que je vais faire c'est que je t'envois un fichier "echec" et un fichier "réussite".
x_all Posté(e) le 26 octobre 2017 Posté(e) le 26 octobre 2017 Je ne crois pas que ton fichier soit confidentiel, mais je te laisse la responsabilité de le poster en public. car je ne comprend pas du tout le soucis. j'ai tester tes 2 fichiers et force est de constaté que le problème est le même ici. ce n'est donc pas un soucis propre à ton poste, mais bien un truc qui cloche dans les fichiers. Je rabâche pas, mais j'ai que de très faible notion de VB j'ai tout de même été surpris du comportement du programme. Quand je regarde tes présentations, elle sont configurées en A4 imprimante aucune, car il me manque "gestetner MP ..." Mais au lancement du lisp, il par sur pdfcreator qui est mon imprimante par défaut... Bon, je ne voie pas ou il l’appelle, mais admettons.J'ai le même résultats que toi à savoir les 3 feuilles bien et les 3 feuilles blanches pour l'autre fichier. Sur ton fichier "échec" si je relance la commande imprimer, elle est paramétrée en fenêtre, et quand on appelle le bouton pour redéfinir cette fenêtre, en dézoomant, on peu voir la trace de la fenêtre précédente. Il y a bien un décalage. Mais alors d'ou il vient, je ne saurai le dire... Ce n'est pas le vecteur depuis le 0,0,0.. je sèche. http://joch04.free.fr/images/vrac/test-impt.jpg Il n'y a qu'un defun ça ne devrai pas être un effet de portée de variable pourtant tu dis que si quand on colle tout dans un nouveau dessin ça marche, c'est forcément une variable qui reste coincée ... J'en sais rien quoi... désolé... quelques trucs sur autocad
fiesta13310 Posté(e) le 26 octobre 2017 Auteur Posté(e) le 26 octobre 2017 Je ne crois pas que ton fichier soit confidentiel, mais je te laisse la responsabilité de le poster en public. car je ne comprend pas du tout le soucis. j'ai tester tes 2 fichiers et force est de constaté que le problème est le même ici. ce n'est donc pas un soucis propre à ton poste, mais bien un truc qui cloche dans les fichiers. Je rabâche pas, mais j'ai que de très faible notion de VB j'ai tout de même été surpris du comportement du programme. Quand je regarde tes présentations, elle sont configurées en A4 imprimante aucune, car il me manque "gestetner MP ..." Mais au lancement du lisp, il par sur pdfcreator qui est mon imprimante par défaut... Bon, je ne voie pas ou il l’appelle, mais admettons.J'ai le même résultats que toi à savoir les 3 feuilles bien et les 3 feuilles blanches pour l'autre fichier. Sur ton fichier "échec" si je relance la commande imprimer, elle est paramétrée en fenêtre, et quand on appelle le bouton pour redéfinir cette fenêtre, en dézoomant, on peu voir la trace de la fenêtre précédente. Il y a bien un décalage. Mais alors d'ou il vient, je ne saurai le dire... Ce n'est pas le vecteur depuis le 0,0,0.. je sèche. http://joch04.free.fr/images/vrac/test-impt.jpg Il n'y a qu'un defun ça ne devrai pas être un effet de portée de variable pourtant tu dis que si quand on colle tout dans un nouveau dessin ça marche, c'est forcément une variable qui reste coincée ... J'en sais rien quoi... désolé... voilà.... même constat que moi... :unsure: pourquoi sur l'un oui et sur l'autre non.... PS : je n'arrive pas à rendre public mon fichier, c'est pour ça que je te l'ai envoyé en message privé. tu peux le faire toi s'il te plait? :D Merci d'avance
x_all Posté(e) le 26 octobre 2017 Posté(e) le 26 octobre 2017 Voila... si un pro du Vlisp veux bien y jeter un coup d’œil, J'ai tout mis ici J'aimerai bien savoir d'ou ça vient...Car j'ai fait un truc dans le genre, mais ce code m'a l'air beaucoup plus... intelligent que le mien.. détection du portait paysage, utilisation de boundingbox alors que le me traine des attributs invisibles pour repérer les coins, bref une bien plus grosse culture programatique et plus malin...Mais si malin que je trouve pas d'ou peut bien venir ce bug. quelques trucs sur autocad
fiesta13310 Posté(e) le 12 avril 2019 Auteur Posté(e) le 12 avril 2019 Bonjour, Je me permet de relancer ce sujet car encore une fois, les beug recommencent... c'est toujours le même problème... pas plus ni moins... même si j'ai trouvé un moyen de contourner le problème (en faisant copier coller dans un nouveau dessin), c'est quand même chiant de devoir le faire... :( Merci pour votre aide
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