Sepultur@ Posté(e) le 27 octobre 2014 Posté(e) le 27 octobre 2014 Bonjour, je cherche a créer un LISP qui pourrais m'ouvrir une fenêtre sur laquelle je pourrais sélectionner les réponses.En fait j'ai une ville avec toutes ces adresses (BLOC), j'aimerais lorsque j'en sélectionne quelques une (une parcelle), que le LIST m'affiche les différentes adresse. je recherche partout sur le NET et je ne trouve que des personne qui partage leur LISP mais je ne trouve pas de tutoriel pour apprendre a les créer sois même. quelqu'un pourrait-il m'aider ? ci-joint => capture du nom du bloc avec l'attribut que j'aimerais afficher.si quelqu'un m'aide a créer ce LISP, pourriez vous m'expliquer en même temps ? merci par avance. cordialement B.NICOLAS Citer projeteur Autocad 2D & 3D«·´`·.(·.¸(`·. ..... .·´)¸.·).·´`·»«·´¨·.¸¸. ...Sepultur@... .¸¸.·¨`·»«·´`·.(¸.´(¸.· ······ .¸)`.¸).·´`·»
nG! Hebus Posté(e) le 27 octobre 2014 Posté(e) le 27 octobre 2014 Alors je sais que ça existe mais cela fait longtemps que je ne l'ai pas fait. Ce ne sera pas du LISP mais juste un attribut caché. Le principe tant que tu ne sélectionne pas ton bloc le nom n’apparaît pas.Dès que tu clic dessus le nom s'affiche (surbrillance autocad). Est ce que cela te conviendrai? Si oui je veut bien aller rechercher ça pour te mettre un exemple :) Cordialement ! Citer "98% des soucis informatiques sont assis entre la chaise et le bureau !" "C'est parce que la vitesse de la lumière est supérieure à celle du son que tant de gens paraissent brillants avant d'avoir l'air con."
Steven Posté(e) le 27 octobre 2014 Posté(e) le 27 octobre 2014 Salut Cradle.Sepultura, Avant de passer par un lisp, as-tu essayé de créer un bloc avec attribut, avec une table des propriétés de bloc dans laquelle tu rentreras toutes tes adresses. Puis quand tu sélectionneras un bloc, tu auras une liste déroulante, dans laquelle tu choisirais l'adresse que tu souhaites. Peut-être une piste :huh: Citer Steven________________________________________ Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD. Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD. En rêve; AutoCAD sous Linux.
Sepultur@ Posté(e) le 27 octobre 2014 Auteur Posté(e) le 27 octobre 2014 non le problème, c’est que j'ai des ville avec des blocs déjà existant donne par mon client, donc je ne peux pas le changer, tout mes bloque sont identiques mais chacun sont déjà rempli avec l'adresse correspondante avec l'emplacement d'où il est géo-référencer. je recherche a entourer avec une poly-ligne mes adresses concerner et que lorsque je lance mon LISP une fenêtre s'ouvre en me faisant ressortir seulement les adresses, c'est a dire l'attribut 1, sacahant qu'il y en a 26 attributs sur chaque adresses. Citer projeteur Autocad 2D & 3D«·´`·.(·.¸(`·. ..... .·´)¸.·).·´`·»«·´¨·.¸¸. ...Sepultur@... .¸¸.·¨`·»«·´`·.(¸.´(¸.· ······ .¸)`.¸).·´`·»
didier Posté(e) le 27 octobre 2014 Posté(e) le 27 octobre 2014 Coucou si je comprends ta demande, il faut à l'intérieur d'une polyligne (close ?) dessinée par l'opérateur créer un jeu de sélection avec un nom de bloc en tant que filtrepuis, de ce jeu de sélection, afficher une case de dialogue listant les adressesles adresses étant la valeur textuelle renseignée dans le premier attribut du bloc choisi. cette case de dialogue ne fera que de "l'affichage" ? il n'est pas question de sélectionner une adresse dans cette liste pour traitement éventuel ? amicalement Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
Steven Posté(e) le 27 octobre 2014 Posté(e) le 27 octobre 2014 Coucou si je comprends ta demande, il faut à l'intérieur d'une polyligne (close ?) dessinée par l'opérateur créer un jeu de sélection avec un nom de bloc en tant que filtrepuis, de ce jeu de sélection, afficher une case de dialogue listant les adressesles adresses étant la valeur textuelle renseignée dans le premier attribut du bloc choisi. cette case de dialogue ne fera que de "l'affichage" ? il n'est pas question de sélectionner une adresse dans cette liste pour traitement éventuel ? amicalement Salut Didier, Il semble que si, si j'ai bien compris, c'est pour ça que j'ai pensé à ce genre de blocOn le sélectionne, on clique sur la flèche bleue et on choisi l'adresse à indiquer sur la parcelleCa peut, peut-être donner une idée pour un lisp. Citer Steven________________________________________ Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD. Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD. En rêve; AutoCAD sous Linux.
lili2006 Posté(e) le 27 octobre 2014 Posté(e) le 27 octobre 2014 Bonsoir a toutes et tous, Une version MAP te serai très utile,.... Citer Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
lecrabe Posté(e) le 28 octobre 2014 Posté(e) le 28 octobre 2014 Hello Vu de loin avec les Routines "Special_Selection" de Gilles et en particulier : SSOF & SSOC puis l'Extraction de Donnees avec l'option P (comme Precedent du SSOF ou SSOC) lors de la selection des Entites a traitees, ca devrait faire ... Bye, lecrabe Citer Autodesk Expert Elite Team
Sepultur@ Posté(e) le 28 octobre 2014 Auteur Posté(e) le 28 octobre 2014 Coucou si je comprends ta demande, il faut à l'intérieur d'une polyligne (close ?) dessinée par l'opérateur créer un jeu de sélection avec un nom de bloc en tant que filtrepuis, de ce jeu de sélection, afficher une case de dialogue listant les adressesles adresses étant la valeur textuelle renseignée dans le premier attribut du bloc choisi. cette case de dialogue ne fera que de "l'affichage" ? il n'est pas question de sélectionner une adresse dans cette liste pour traitement éventuel ? amicalement oui c'est ça, m'ai effectivement les recuperés pour les recopier dans un tableau excel, ou peux etre extraire ces donnee en TXT comme un attout, je ne sais pas trop Citer projeteur Autocad 2D & 3D«·´`·.(·.¸(`·. ..... .·´)¸.·).·´`·»«·´¨·.¸¸. ...Sepultur@... .¸¸.·¨`·»«·´`·.(¸.´(¸.· ······ .¸)`.¸).·´`·»
Sepultur@ Posté(e) le 28 octobre 2014 Auteur Posté(e) le 28 octobre 2014 Bonsoir a toutes et tous, Une version MAP te serai très utile,.... je suis en version map 2014 complete Citer projeteur Autocad 2D & 3D«·´`·.(·.¸(`·. ..... .·´)¸.·).·´`·»«·´¨·.¸¸. ...Sepultur@... .¸¸.·¨`·»«·´`·.(¸.´(¸.· ······ .¸)`.¸).·´`·»
Sepultur@ Posté(e) le 28 octobre 2014 Auteur Posté(e) le 28 octobre 2014 Hello Vu de loin avec les Routines "Special_Selection" de Gilles et en particulier : SSOF & SSOC puis l'Extraction de Donnees avec l'option P (comme Precedent du SSOF ou SSOC) lors de la selection des Entites a traitees, ca devrait faire ... Bye, lecrabe malheureusement cela dépasse mes compétence, ce serais cool de pouvoir faire cela, mais si quelqu'un arrive a faire ce genre de LISP, pourriez vous me le détailler, que je puisse comprendre comme cela fonctionne, et les futur me les faire moi meme. merci d'avance. nicolas Citer projeteur Autocad 2D & 3D«·´`·.(·.¸(`·. ..... .·´)¸.·).·´`·»«·´¨·.¸¸. ...Sepultur@... .¸¸.·¨`·»«·´`·.(¸.´(¸.· ······ .¸)`.¸).·´`·»
lili2006 Posté(e) le 28 octobre 2014 Posté(e) le 28 octobre 2014 Bonjour a tutes et tous,Tu sais te servir de MAP? les annotations pourrait te servir pour ensuite pouvoi faire des requetes, ...Aurai, je pense, pratique comme ca, ... Citer Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Sepultur@ Posté(e) le 28 octobre 2014 Auteur Posté(e) le 28 octobre 2014 Bonjour a tutes et tous,Tu sais te servir de MAP? les annotations pourrait te servir pour ensuite pouvoi faire des requetes, ...Aurai, je pense, pratique comme ca, ... et non pas possible parce que map va me sortir un tableau complet, c'est comme cela que je fait lorsque je veux tout. nous avons deja un LISP pour calculer le nb de BAL(logements) par adresse a l'interrieur d'une polyligne fermer et nous faire un total. la j'aimerais avoir une fenetre du meme genre avec la liste des adresses qui ce trouve dans la polyligne fermeé que je vien de creer autour de me adresse concerner. pour info sur mon fichier j'ai 33524 adresses. cordialement Citer projeteur Autocad 2D & 3D«·´`·.(·.¸(`·. ..... .·´)¸.·).·´`·»«·´¨·.¸¸. ...Sepultur@... .¸¸.·¨`·»«·´`·.(¸.´(¸.· ······ .¸)`.¸).·´`·»
didier Posté(e) le 28 octobre 2014 Posté(e) le 28 octobre 2014 coucou file nous ton fichier ou un extrait qu'on puisse voir ce qu'on en fera. n'oublie pas de le compresser en zip pour le déposer sur le site amicalement Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
lili2006 Posté(e) le 28 octobre 2014 Posté(e) le 28 octobre 2014 Re, et non pas possible parce que map va me sortir un tableau complet, Ben non, c'est le principe des filtrages par requêtes,.. Ou j'ai pas bien cerné la problématique,..(ce qui est également possible car peu de tps de dispo en ce moment,...) Citer Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
lecrabe Posté(e) le 28 octobre 2014 Posté(e) le 28 octobre 2014 Hello Pour ceux (ayant un AutoCAD MAP ou un AutoCAD CIVIL) qui veulent "comprendre" un peu la notion de groupes dessins de MAP et les Requetes associees ... Un Tutorial Niveau 1 de l'affreux Patrice ... http://georezo.net/forum/viewtopic.php?id=65855 Pour notre sujet en cours, il faudra faire une requete en mode Rapport en s'appuyant en Mode "Emplacement geographique" sur une Polyligne existante deja dessinee ... et ajouter le Bloc et ses attributs concernes ... Qu'on se le dise ! Bye, lecrabe Citer Autodesk Expert Elite Team
lili2006 Posté(e) le 28 octobre 2014 Posté(e) le 28 octobre 2014 Re, Trop fort le patoche,;) Merci, j'attendais l'aide d'un vrai MAPISTE,..J'en suis toujours au niveau débutant au vu de toutes les possibilités offertes,........:blink: Citer Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
lecrabe Posté(e) le 28 octobre 2014 Posté(e) le 28 octobre 2014 Hello Et toujours pour completer le Tutorial Niveau 1 sur le Groupe de dessins de MAP (ou CIVIL) + les Requetes associees ... http://georezo.net/forum/viewtopic.php?id=47982 http://georezo.net/forum/viewtopic.php?id=54541 http://georezo.net/forum/viewtopic.php?id=79541 Bye, lecrabe Citer Autodesk Expert Elite Team
lili2006 Posté(e) le 29 octobre 2014 Posté(e) le 29 octobre 2014 Bonjour a toutes et tous,Remerki ! Citer Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Sepultur@ Posté(e) le 29 octobre 2014 Auteur Posté(e) le 29 octobre 2014 yep voila un ex-tract de mon plan la j'ai bien plusieurs adresse pour une seul et meme parcelle par exemple la 44 calque magenta => n° parcellecalque cyan => adresse replacer par "acgis"calque vert => adresse replacer par "crocgeo" au centre des parcelles => replacer a la main sur le numéro après traitement. si possible, j'aimerais un lisp qui, lorsque je sectionne plusieurs adresse, cela m'affiche l'adresse attribut 01 merci par avance. cordialementexemple de parcelle.zip Citer projeteur Autocad 2D & 3D«·´`·.(·.¸(`·. ..... .·´)¸.·).·´`·»«·´¨·.¸¸. ...Sepultur@... .¸¸.·¨`·»«·´`·.(¸.´(¸.· ······ .¸)`.¸).·´`·»
x_all Posté(e) le 29 octobre 2014 Posté(e) le 29 octobre 2014 franchement, la réponce du crabe me parait la plus simple... je comprend pas bien pourquoi tout le monde se fait une montage de la commande d'extraction de donnée... si tu ne la connais pas apprend de toute urgence à t'en servir, c'est indispensable tant c'est pratique l'extraction commence à la 4eme mn Citer quelques trucs sur autocad
Sepultur@ Posté(e) le 30 octobre 2014 Auteur Posté(e) le 30 octobre 2014 franchement, la réponce du crabe me parait la plus simple... je comprend pas bien pourquoi tout le monde se fait une montage de la commande d'extraction de donnée... si tu ne la connais pas apprend de toute urgence à t'en servir, c'est indispensable tant c'est pratique l'extraction commence à la 4eme mn pour arriver a ce résultat si, c'est beaucoup plus simple de passer par MAP=>OUTILS=>EXPORTERde la tu sélectionne vraiment tous ce que tu veux exporter mais, moi je ne veux pas tout exporter, j'ai déjà insérer mais adresse d'une exportation d'un autre fichier.non moi je recherche vraiment a créer un lisp qui me sort une petite fenêtre où je puisse sélectionner les adresses qui ce trouve dans les bloc que je viens d'entourer d'une polyligne fermer. dsl ps : sur le fichier joints, le résultat de notre lisp pour extraire le nombre de logements dans une polyligne fermer.j'aimerais juste la meme chose avec les adresses a la place des logements. malheureusement dans ce lisp ce n'est qu'une visu, on ne peu rien selectionner..... Citer projeteur Autocad 2D & 3D«·´`·.(·.¸(`·. ..... .·´)¸.·).·´`·»«·´¨·.¸¸. ...Sepultur@... .¸¸.·¨`·»«·´`·.(¸.´(¸.· ······ .¸)`.¸).·´`·»
bonuscad Posté(e) le 30 octobre 2014 Posté(e) le 30 octobre 2014 J'ai du mal a cerner exactement ce que tu veux faire...Néanmoins voici un bout de code.Tu copies-colles celui-ci directement en ligne de commande et ensuite tu tapes ADRESS2PARCEL Dans ton exemple ca affecte la valeur de ton attribut 01-ADRESSE du bloc BLOC_BAL_V5 situé sur la calque ADRESSES REPLACEES à une nouvelle table de données d'objet (pour Map) nommée DATA_BAL_V5 pour la polyligne concernée. De ce fait en cliquant sur la polyligne, dans les propriété tu aura la donnée d'objet "01_ADRESSE". (vl-load-com) (ade_oddefinetab '( ("Tablename" . "DATA_BAL_V5") ("TableDesc" . "Adresse de la parcelle") ("Columns" ( ("ColName" . "01_ADRESSE") ("ColDesc" . "Adresse") ("ColType" . "Character") ("DefaultVal" . "") ) ) ) ) (defun c:adress2parcel ( / tbl tbldef js n ent pt_lst ss_bl ent_name obj_vla atts adress) (setq tbl "DATA_BAL_V5" tbldef (ade_odtabledefn tbl)) (setq js (ssget "_X" (list (cons 0 "LWPOLYLINE") (cons 8 "cadastre-1PARCELLE") (cons 67 (if (eq (getvar "CVPORT") 2) 0 1)) (cons 410 (if (eq (getvar "CVPORT") 2) "Model" (getvar "CTAB"))) (cons -4 "&") (cons 70 1) ) ) ) (repeat (setq n (sslength js)) (setq ent (ssname js (setq n (1- n))) pt_lst (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget ent))) ss_bl (ssget "_WP" pt_lst '((0 . "INSERT") (2 . "BLOC_BAL_V5") (8 . "ADRESSES REPLACEES"))) adress nil ) (cond (ss_bl (setq ent_name (ssname ss_bl 0) obj_vla (vlax-ename->vla-object ent_name) atts (vlax-invoke obj_vla 'getattributes) ) (foreach att atts (if (eq (vla-get-TagString att) "01_ADRESSE") (setq adress (vla-get-TextString att)) ) ) ) ) (cond (adress (ade_odaddrecord ent "DATA_BAL_V5") (ade_odsetfield ent "DATA_BAL_V5" "01_ADRESSE" 0 adress) ) ) ) (prin1) ) Citer Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Sepultur@ Posté(e) le 31 octobre 2014 Auteur Posté(e) le 31 octobre 2014 J'ai du mal a cerner exactement ce que tu veux faire...Néanmoins voici un bout de code.Tu copies-colles celui-ci directement en ligne de commande et ensuite tu tapes ADRESS2PARCEL Dans ton exemple ca affecte la valeur de ton attribut 01-ADRESSE du bloc BLOC_BAL_V5 situé sur la calque ADRESSES REPLACEES à une nouvelle table de données d'objet (pour Map) nommée DATA_BAL_V5 pour la polyligne concernée. De ce fait en cliquant sur la polyligne, dans les propriété tu aura la donnée d'objet "01_ADRESSE". Je ne comprend pas desoler, mais ton lisp ne fait rien chez moi.voici celui qui nous sort les nombre de logements de tout les bloc compris dans une polyligne fermer. ;; POCHAGE FE ;; Affiche la somme des logements contenus dans la polyligne sélectionnée (defun c:POCHAGE (/ *error* GetPlineVertices GetAttVal pl elst ss n name val lst grp ) (vl-load-com) (defun *error* (msg) (and msg (/= msg "Fonction annulée") (princ (strcat "\nErreur: " msg)) ) (princ) ) (defun GetPlineVertices (pl / n lst) (repeat (setq n (fix (vlax-curve-getEndParam pl))) (setq lst (cons (vlax-curve-getPointAtParam pl (setq n (1- n))) lst) ) ) ) (defun GetAttVal (lst tag) (cond ((null lst) nil) ((= (vla-get-TagString (car lst)) tag) (vla-get-TextString (car lst)) ) (T (GetAttVal (cdr lst) tag)) ) ) (defun Distinct (lst) (if lst (cons (car lst) (Distinct (vl-remove (car lst) lst))) ) ) (sssetfirst nil nil) (setq cnt 0) (if (and (setq pl (car (entsel "\nSélectionnez une polyligne: "))) (setq elst (entget pl)) (= (cdr (assoc 0 elst)) "LWPOLYLINE") ) (progn (not (vla-ZoomExtents (vlax-get-acad-object))) (setq ss (ssget "_WP" (mapcar (function (lambda (p) (trans p 0 1)) ) (Distinct (GetPlineVertices pl)) ) '((0 . "INSERT") (2 . "BLOC_BAL_V5")) ) ) (not (vla-ZoomPrevious (vlax-get-acad-object))) (if ss (progn (vlax-for blk (setq ss (vla-get-ActiveSelectionSet (vla-get-ActiveDocument (vlax-get-acad-object) ) ) ) (setq name (vla-get-Name blk)) (if (setq val (GetAttVal (vlax-invoke blk 'GetAttributes) "11_BAL" ) ) (setq lst (if (setq grp (assoc name lst)) (subst (cons name (+ (cdr grp) (atoi val))) grp lst ) (cons (cons name (atoi val)) lst) ) ) ) ) (vla-delete ss) ) ) (alert (strcat (apply 'strcat (mapcar (function (lambda (p) (strcat (car p) " : " (itoa (cdr p)) "\n") ) ) lst ) ) "\nTotal : " (itoa (apply '+ (mapcar 'cdr lst))) " logements" ) ) ) (princ "\nL'objet sélectionné n'est pas une polyligne couillon!.") ) (princ) ) FEFEFEFEFEFEFEFEFEFEFEFEF ce que je recherche a faire c'est le même résultat que cela mais sélectionnable et pour les adresses et non les logements. je ne sais pas comment expliquer déferrement, je réalise des tableau ou je réécrit chaque adresse en indiquant le numéro de parcelle en face, donc j'aimerais sélectionner la parcelle (polyligne) et que le lisp me donne les adresses concerner. voiou Citer projeteur Autocad 2D & 3D«·´`·.(·.¸(`·. ..... .·´)¸.·).·´`·»«·´¨·.¸¸. ...Sepultur@... .¸¸.·¨`·»«·´`·.(¸.´(¸.· ······ .¸)`.¸).·´`·»
bonuscad Posté(e) le 3 novembre 2014 Posté(e) le 3 novembre 2014 ton lisp ne fait rien chez moi As tu bien lu..., car si rien n'est visible à l'écran, il a fait quelque chose. D'ailleurs le code que tu as posté est très similaire à ce que j'ai fais, sauf que le résultat n'est pas dans un boite de dialogue mais il est simplement affectée à la polyligne. Donc après application du code, tu cliques sur une polyligne contenant ton bloc de couleur verte et tu verra que dans les PROPRIETES tu as l'information ADRESSE. (celle qui n'ont pas ce bloc ne sont pas renseignées) Un petit défaut dans mon code (et d'ailleurs dans le tien aussi) est pour la parcelle 68 en magenta. Celle-ci n'est pas pris en compte car l'attribut mord sur la limite de polyligne. Pour y remédier changer (ssget "_WP" ....) en (ssget "_CP"....) Citer Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Messages recommandés