
phil 54
Membres-
Compteur de contenus
20 -
Inscription
-
Dernière visite
Tout ce qui a été posté par phil 54
-
Detection portrait/paysage dans presentation.
phil 54 a répondu à un(e) sujet de phil 54 dans Débuter en LISP
Bonjour Olivier, Pourquoi la simplicité ne saute t-elle pas aux yeux immediatement... Merci également pour cette solution. Philippe -
Detection portrait/paysage dans presentation.
phil 54 a répondu à un(e) sujet de phil 54 dans Débuter en LISP
Bonjour Luna merci pour tout ça , effectivement les présentations du fichier exemple sont construites sur un rectangle 400x300 qui depasse le a3, le but était au départ d'identifier une géométrie verticale ou horizontale. Les plans de la base ne depassent pas (en theorie) 400x280 mais je ne suis sur de rien... Dans mon contexte ce n'est pas grave. J'ai testé ton code sur un plan base, c'est bien le a3 qui sort bien entendu. Il sera toujours temps de refaire les mises en page sur les plans au fur et à mesure de leur reprise. comme je l'ai dit, ~15000, c'est pas demain la veille que tout sera carré. J'ai compris l'essentiel du code fourni, même si je n'ai quasiment jamais utilisé vlax. J'ai testé hier l'ensemble avec le code lee mac. Ca fonctionne egalement. Je vais adapter une parti de ton code si tu le permet, dans le reste de mon propre code. Ca me permettra de le comprendre. En effet j'ai d'autre contraintes , détection d'un nom de présentation en particulier, détection de la présence d'un gabarit particulier, avec un traitement particulier également, tous les plans ne sont pas formaté d'une maniere homogene. En tout cas je te remercie vivement de ta patiente et du temps passé. Philippe -
Detection portrait/paysage dans presentation.
phil 54 a répondu à un(e) sujet de phil 54 dans Débuter en LISP
Bonjour à vous Merci d'avoir pris du temps pour me répondre. J'ai testé (LM:ssboundingbox) il répond au besoin et fonctionne correctement lorsque j'utilise l'exemple de Lee mac avec une sélection à la souris. Là ou ça coince c'est quand je remplace (ssget) dans son exemple par (ssget "X" (list (cons 410 (getvar "CTAB")) (cons 67 1))) qui semble prendre des entités invisibles que je ne sais pas identifié. Comme dit dans le site da-code, j'imagine que c'est une entité type VIEWPORT. J'ai provisoirement contourné le problème par une solution peu académique mais qui semble fonctionner correctement dans ce que j'ai testé, toujours dans l'exemple de Lee Mac: (defun c:test ( / box obj sel spc ) (command "select" "tout" "") (if (and (setq sel (ssget "_P")) (setq box (LM:ssboundingbox sel)) (princ box) ; pour vérifier la coherence du retour. ) ..... J'ai pas réussi à intégrer "command" au bout de "setq sel .... " sans erreur à l'execution... le contenu de box me donne les coordonnées de la diagonale de la surface occupée par les entités visibles et je vais pouvoir appliquer le mode portait/paysage en fonction. Je vais également consulter ce que représente les codes dxf que vous avez évoqués et tenter de dormir moins bête ce soir. Avec mes sinceres remerciement. Philippe -
Detection portrait/paysage dans presentation.
phil 54 a répondu à un(e) sujet de phil 54 dans Débuter en LISP
Bon, je lache l'affaire... Merci Luna qui a compris dés mon premier message mon problème et qui m'a tout de suite donné la solution. Je vais continuer a cherché le pourquoi du resultat du ssget. Je vous remercie tous. Sujet clos. Philippe -
Detection portrait/paysage dans presentation.
phil 54 a répondu à un(e) sujet de phil 54 dans Débuter en LISP
Merci Didier Est-il possible que dans l'objet présentation il y ait plusieurs formats à imprimer ? >> réponse plus haut, "Tout ce qui est sur , c'est que les impressions doivent se faire en a3 avec une echelle papier au niveau du traceur 1:1. Parce que l'espace papier est occupé par un ensemble d'entité qui tiennent sur un format a3 , echelle 1:1. " Plus haut egalement: "Boucler sur les présentation du plans et lancer une commande traceur en lisp je sais faire, je choisis le mode etendu echelle1:1 Mode centré. Ca fonctionne. la seule inconnu est de determiner si mon impression doit être en mode portrait ou paysage en fonction de l'occupation de l'espace papier.... Sinon l'impression est tronquée" X signifie la totalité des entités, calque actif ou non, gelé ou non, la totale ! je l'ai dit plus haut plus haut >>> "dans mon esprit la sélection prend toute les entités de l'espace papier de la présentation courante, calque gelé ou non. (ssget "X" (list (cons 410 (getvar "CTAB")) (cons 67 1))) j'ai testé evec "A" le resultat est le même. Si tu veux bien prendre le temps de tester le fichier exemple que tu m'as demandé et que j'ai fourni, tu verras qu'il n'y a pas de calque gelé, d'ou mon incompréhension du resultat. il faut penser à aller voir les aides fournies sur le net, rien que sur mon site, j'explique ça en long et en large… je ne pensais pas avoir fait tout ça pour rien. >> Tu n'as pas fait ça pour rien puisque je m'en suis dejà inspiré plusieurs fois pour d'autres problème à resoudre, et j'ai relu attentivement le chapitre ssget. Je te remercie au passage du partage. Il est rare que je pose une question sur un forum, en général je cherche et je trouve par moi même. si j'en arrive à poster c'est que je ne trouve pas la solution. "Dans toute forme de programmation il faut que le programme comprenne ce qu'attend l'utilisateur, si on a du mal à l'exprimer en langage naturel, le langage machine sera confus." >> POur situer mon personnage qui à 60ans, j'ai commencé la prog en assembleur sur apple2e. Je te fais grâce de toutes mes autres experiences. Lisp n'est pas mon coeur de metier, et je n'y reviens que tres épisodiquement lorsqu'il y a un probleme à resoudre, d'ou mes dificultés . Et c'est pas comme le velo , si tu pratiques pas tu recommences tout. Philippe -
Detection portrait/paysage dans presentation.
phil 54 a répondu à un(e) sujet de phil 54 dans Débuter en LISP
La question posé est celle ci: pourquoi la selection (ssget "X" (list (cons 410 (getvar "CTAB")) (cons 67 1))) semble prendre des entités non visible que je n'arrive pas à identifier alors que (ssget) ne le fait pas? Philippe -
Detection portrait/paysage dans presentation.
phil 54 a répondu à un(e) sujet de phil 54 dans Débuter en LISP
Bonjour Didier "De quel résultat inattendu parle-t-on ? " >> la boite englobante est plus large que les entités visibles "Je ne comprends pas comment on choisit paysage ou portrait dans toutes ces données. " >>>> déduire l'orientation (x plus grand que y c'est du paysage, y plus grand que x c'est du portrait) je parle de x et y de la boite englobante. Désolé Didier, mais là je ne peux pas être plus clair, tout est ecrit plus haut. J'ai fourni le lisp et un fichier exemple comme demandé. Quoi d'autre? Maintenant c'est peut être moi qui passe à coté d'un truc qui est essentiel et que vous maitrisez totalement au niveau de l'impression, dans ce cas expliquez moi. Philippe -
Detection portrait/paysage dans presentation.
phil 54 a répondu à un(e) sujet de phil 54 dans Débuter en LISP
100 fois sur le metier, remet ton ouvrage... ça n'a jamais été aussi vrai... Bonjour à tous. Je teste LM:ssboudingbox qui correspond bien à ce que je cherche. Sauf que: si je teste avec une selection à la souris, même tres large, j'ai le résultat attendu. (defun c:test ( / box obj sel spc ) (if (and (setq sel (ssget)) Si je teste avec cette selection, la boite englobante est plus large que les entités visibles (defun c:test ( / box obj sel spc ) (if (and (setq sel (ssget "X" (list (cons 410 (getvar "CTAB")) (cons 67 1)))) dans mon esprit la sélection prend toute les entités de l'espace papier de la présentation courante, calque gelé ou non. sur le fichier exemple j'ai ce résultat inattendu. Qu'est ce qu'il y a en plus dans la sélection que je ne sais pas voir? En vous remerciant. Philippe exemple.dwg test.lsp -
Detection portrait/paysage dans presentation.
phil 54 a répondu à un(e) sujet de phil 54 dans Débuter en LISP
En pj un exemple représentatif de différent cas de figure que je peux rencontrer dans les presque 15000 plans de la base... J ne peux pas mettre en ligne un plan de la base. Je dois générer un pdf de chaque présentation de certains fichier, pour mettre à disposition une base plan pdf à une population non technicien. ( pas d'autocad , pas de viewer) La base plan etant ce qu'elle est je dois faire avec. je suis conscient que bosser de cette façon pour imprimer des plans n'est pas la meilleurs mais je n'ai pas le choix. En pj un exemple représentatif de ce que je peux trouver dans un plan. Bien sur les mises en page ne sont pas faites, l'imprimante n'est pas defini et le format papier non plus. Tout ce qui est sur , c'est que les impressions doivent se faire en a3 avec une echelle papier au niveau du traceur 1:1. Parce que l'espace papier est occupé par un ensemble d'entité qui tiennent sur un format a3 , echelle 1:1. Boucler sur les présentation du plans et lancer une commande traceur en lisp je sais faire, je choisis le mode etendu echelle1:1 Mode centré. Ca fonctionne. la seule inconnu est de determiner si mon impression doit être en mode portrait ou paysage en fonction de l'occupation de l'espace papier.... Sinon l'impression est tronquée Je cherche donc le moyen de déterminer la forme de la surface hors tout de tous les éléments de la présentation pour en déduire l'orientation (x plus grand que y c'est du paysage, y plus grand que x c'est du portrait) Dans certains cas j'ai un cadre présent (contour de folio en cyan dans l'exemple) , mais il n'est pas présent partout. @Luna Même si j'ai fait quelques trucs sympa il y a qq années, je suis dans la catégorie débutant. J'ai bien compris que tu me parlais de deux méthodes différentes. Philippe exemple.dwg -
Detection portrait/paysage dans presentation.
phil 54 a répondu à un(e) sujet de phil 54 dans Débuter en LISP
@ Luna Je viens de regarder LM:ssboudingbox, ça correspond à ce que je recherche. je vais tester. Merci Philippe -
Detection portrait/paysage dans presentation.
phil 54 a répondu à un(e) sujet de phil 54 dans Débuter en LISP
Bonjour 0 vous Merci de vos réponses. @Didier, si je n'ai pas dis l'essentiel, j'en suis désolé. je pensais avoir été clair. Sur une présentation j'ai un certain nombre d'objet, cadre polygone ou non, parfois bloc, fenêtres de présentations diverses, cartouches à différent endroit, donc rien qui soit commun à toutes les présentations de tout les plans, je n'ai donc pas de diagonale fiable est systématique pour déterminer la surface papier occupé par les différents éléments. Je pensais intuitivement qu'il pouvait exister une propriété dans un jeu de sélection qui permettait de déterminer les bornes de la surface occupé par ce jeu de selection. En sélectionnant tout ce qu'il y a sur l'espace papier à partir de là, si la zone est plus large que haute, je sais appliquer portrait ou paysage dans la commande traceur... @curlygoth mon probleme est de determiner si je choisis portrait ou paysage en fonction de la surface papier occupée.... @Luna, je ne connais pas ce que tu decris je vais me pencher dessus et voir si je m'en sors. Mais pour que je recupere la mise en page papier d'une presentation , il faut qu'elle ait été créée avant non? c'est pas toujours le cas... En vous remerciant. Philippe -
Bonjour J'ai un lisp qui fait de l’impression par lot de présentation qui peuvent etre en portrait ou en paysage. j'utilise dwg to pdf comme traceur et je ne vois pas d'option de rotation auto... De ce fait je cherche une façon de sélectionner la totalité des éléments de la présentation et detecter si la zone occupée est plus grande en x ou en y. de ce fait je pourrais choisir mon orientation d'impression. pour le moment je sèche... Merci de vos retour Phil
-
Traitement par lot, interruption dû à erreur ouverture fichier...
phil 54 a posté un sujet dans Organisation du travail
Bonjour à vous. J'utilise sas pour faire du traitement par lot a travers des routines lisp sur une partie de ma base plan qui est a peu près maitrisé. Récemment j'ai recuperé la base complète et je suis confronté à l’interruption du traitement suite à des fichiers qui s'ouvrent avec des erreurs, integrité de plan, recuperation à faire, desynchronisation de surface, etc... Je parle d'une base de presque 15000 fichiers et plusieurs centaines en erreur... Auriez vous des pistes à me proposer sur d'autres programmes de traitement par lot, qui soit capable de passer outre ce type d'erreur et idéalement de loguer les fichiers en erreur? ou peut être un outil qui me permet de vérifier l’intégrité du plan (par lot) pour les corriger en amont du traitement? En vous remerciant. Philippe -
Inhiber pop up alerte à l'ouverture d'un fichier
phil 54 a répondu à un(e) sujet de phil 54 dans AutoCAD 2019
Je ne connais pas cette notion d'historique, peux tu m'aiguiller? Le traitement par lot imprime des pdf, et le simple fait d'enregistrer le plan en 2018 resout le probleme, pas utile d'effacer des entités necessaires au plan à ce stade. Le problème survient à l'ouverture du fichier et bloque le batch, je cherche egalement une solution pour tuer le batch et le relancer pour contourner le probleme. Ce bath tourne en permanence sur une machine dédié pour permettre à une population de générer à la demande automatiquement les plans pdf de la dernière version. Si il plante je ne le vois pas forcement. Je ne suis pas en capacité d'ouvrir les quelques 2000 plans en amont pour verifier si ils sont sains ou pas. D'autant qu'il peut etre bon aujourd'hui et mauvais demain. Philippe -
Inhiber pop up alerte à l'ouverture d'un fichier
phil 54 a répondu à un(e) sujet de phil 54 dans AutoCAD 2019
Bonjour Je viens d'essayer la recupération du dessin avant ouverture, aucune erreur détectée, et le problème persiste... Je viens également de tester sur d'autres dessins 2018 qui ne me posaient pas de pb, le simple fait de les enregistrer en 2013 provoque le pb à l'ouverture suivante. Ce la semble bien etre un problème de rétrocompatibilité... Phil -
Inhiber pop up alerte à l'ouverture d'un fichier
phil 54 a répondu à un(e) sujet de phil 54 dans AutoCAD 2019
aie... Marche pas... Je la sens pas bien mon affaire... -
Inhiber pop up alerte à l'ouverture d'un fichier
phil 54 a répondu à un(e) sujet de phil 54 dans AutoCAD 2019
Bonjour ce message est bien généré par autocad, à l'ouverture du fichier dwg. (testé hors traitement par lot) j'en ai plusieurs dans ce cas. Ce plan n'est pas qu'un plan cadastal , il comporte aussi des éléments 3d. Je n'ai pas réussi à trouver d’où provenait ce pb d'autant qu'il disparait à l'ouverture suivante. En gros j'ouvre le plan, la boite apparait, j’acquitte la boite, j'enregistre le plan et le ferme, j'ouvre à nouveau, la boite ne monte plus. En creusant un peu, le fichier que j'ouvre avec le problème et en version 2013, le fichier que je réenregistre et en 2018... Par contre si j'enregistre en 2013 le problème réapparait à l'ouverture suivante. Il y a visiblement une corrélation entre la version et le problème. Tous nos plans sont manipulés en interne et enregistré en 2018. malheureusement, notre base est manipulée par des sous traitans avec des versions plus anciennes et je suppose que le traitements des objets recents par une version plus ancienne génère ce problème. Si je ne peux pas inhiber ce message d'alerte à défaut de le résoudre, je suis un peu coincé avec mon traitement par lot... Philippe -
Inhiber pop up alerte à l'ouverture d'un fichier
phil 54 a répondu à un(e) sujet de phil 54 dans AutoCAD 2019
Bonjour Cette variable ne résout pas le problème lié à la boite d'alerte traitant de l'integrité des surfaces... Si vous avez d'autres pistes.. En vous remerciant. Philippe -
Inhiber pop up alerte à l'ouverture d'un fichier
phil 54 a répondu à un(e) sujet de phil 54 dans AutoCAD 2019
Bonjour Non je ne connaissais pas cette variable, j'imaginais plus une case à cocher dans les options.. pas pensé aux variables... Effectivement, cela va résoudre je pense une bonne partie du problème. Je ne pourrais tester qu'en sortie de confinement, la machine est déportée et je n'ai pas d’accès virtuel. En te remerciant. Philippe -
Bonjour à tous Je n'ai pas trouvé de section présentation , faut-il le faire dans comment ça marche? J'utilise une macro excel pour faire un traitement par lot sur des plans autocad (2019), la macro ouvre un plan dwg en spécifiant un lisp pour le traitement. Tout cela fonctionne bien sauf que certains plans de la base peuvent s'ouvrir avec un popup d'alerte, sur l’intégrité des surfaces ou que le plan n'a pas été généré par autocad ou autre. (la base n'est pas saine) Bien évidemment ce popup attend une validation et me bloque le processus. je n'ai pas trouvé comment inhiber ce genre d'alerte. cela est-il possible? En vous remerciant. Philippe