-
Compteur de contenus
4 029 -
Inscription
-
Dernière visite
-
Jours gagnés
21
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par DenisHen
-
Merci à tous les deux pour vos réponses, Bravo LeCrabe, c'était dans un style de cotation "temporaire" (sans nom)... N'ayant aucune cote dans le dessin, je n'y avais tout simplement pas pensé... Merci Olivier, je n'aurais pas pensé au coup du DXF... Denis...
-
Comment créer une Multi-ligne en la dessinant par son axe.
DenisHen a répondu à un(e) sujet de DenisHen dans AutoCAD 2014
De plus, et je viens de le découvrir, on ne peut pas faire un fichier MLN contenant plusieurs définition de multi-ligne... Ou alors, je suis passé à coté... Denis... -
Bonjoir à tous, Voilà, j'ai fais une série de blocs cartouche que j'ai récupéré d'un fichier issu d'un DGN. J'ai tout refais pour que ce soit exploitable correctement (calques 0, styles de textes, attributs...). Maintenant, je lance une purge, RadicalPurge, _wblock... Pour nettoyer tout ça... Seul un style de texte reste ("Style-STANDARD"). Impossible de le virer, j'ai vérifier tous mes blocs, tous mes textes, tous mes textes multilignes (aucun formatage à l'intérieur), TOUS. Impossible à purger... Si quelqu'un a une idée, je suis preneur... Denis...
-
Bonjour à tous, J'utilise souvent l'excellent RadicalPurge du non moins excellent (gile). Cependant, j'ai un petit souci, je suis en train de construire toute une série de blocs. J'ai donc plein de définitions d'attributs dans mon dwg. Mon problème est que, lorsque je lance RPurge, il me les supprimes tous... Je ne sais pas si c'est moi ou RPurge... Peut-être un réglage que j'aurais loupé... PS : J'ai trouvé, c'est l'option "Textes vides"... Denis...
-
Comment créer une Multi-ligne en la dessinant par son axe.
DenisHen a répondu à un(e) sujet de DenisHen dans AutoCAD 2014
Pas de problèmes sur le "double-post"... En outre, je ne doute pas de l'utilité des Multi-lignes, c'est juste que l'on peut constater, encore une fois, qu'AutoDesk a commencé un truc, mais l'a laissé tel qu'il était au premier jour, sans approfondir le sujet. Amicalement, Denis... -
Comment créer une Multi-ligne en la dessinant par son axe.
DenisHen a répondu à un(e) sujet de DenisHen dans AutoCAD 2014
De plus, on voit bien qu'AutoDesk a commencé un truc qui pouvait être intéressant avec les multi-lignes, mais ne l'a jamais fini : - gérer les épaisseures de lignes qui composent les multi-lignes, - avoir l'option "Style de Multi-ligne" par calques, - les mettres dans le DesignCenter, Et j'en passe... Denis... -
Comment créer une Multi-ligne en la dessinant par son axe.
DenisHen a répondu à un(e) sujet de DenisHen dans AutoCAD 2014
@ Philous2 : mais j'avais déjà compris le première fois... ;) @ PhilSoGood : je suis, moi aussi, généralement contre les Multi-lignes, mais mon bosse insiste et, vu que c'est pour lui, il se démerdera avec elles... Denis... -
Comment créer une Multi-ligne en la dessinant par son axe.
DenisHen a répondu à un(e) sujet de DenisHen dans AutoCAD 2014
WAOUW ! ! ! C'est vicieux comme truc de la part d'AutoDesk... Merci mille fois Philous2... Denis... -
Comment créer une Multi-ligne en la dessinant par son axe.
DenisHen a répondu à un(e) sujet de DenisHen dans AutoCAD 2014
Bonjour, et merci de m'aider, Mais comment faire pour la définir en "Nulle" ? Je ne trouve pas cette option dans ma fenêtre MLSTYLE et l'aide ne donne aucun détail la-dessus... Denis... -
Comment créer une Multi-ligne en la dessinant par son axe.
DenisHen a posté un sujet dans AutoCAD 2014
Bonjour à tous, Voilà, j'ai un petit souci avec les Multi-lignes, j'essai d'en créer une de façon à ce qu'elle soit dessinée par son axe. Avec un trait à droite (décalage de 0.10) et un trait à gauche (décalage de -0.10). Mais sans trait dans l'axe, Bref, une Multi-ligne avec deux parallèles et son axe comme sommets... Si quelqu'un a une idée... Denis... -
Comment faire pour "vider" un (ssget ?
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
J'ai ajouter un petit controle, vérifier qu'un calque n'existe pas avant de le créer... (setq LstCalq '(("1" . "TOPO_PT_MATRI") ("2" . "VEG_ARBRE") ("3" . "MOBILIER_URBAIN") ("5" . "Portes") (.....................) ("62" . "TALUS_HAUT_G") ("63" . "TOPO_ALTI") ) ) ;_ Fin de setq (foreach PosLst LstCalq (if (tblsearch "layer" (car PosLst)) (progn (if (not (tblsearch "layer" (cdr (assoc (car PosLst) LstCalq)))) (command "-calque" "n" (cdr (assoc (car PosLst) LstCalq)) "") ) ;_ Fin de if (command "fuscalques" "n" (car PosLst) "" "n" (cdr (assoc (car PosLst) LstCalq)) "o") ;_ Fin de command ) ;_ Fin de progn ) ;_ Fin de if ) ;_ Fin de foreach -
Comment faire pour "vider" un (ssget ?
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Par comme ça : (cadr PosLst) Je m'en vais le tester... Merci encore... Denis... -
Comment faire pour "vider" un (ssget ?
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
YOUPI ! ! ! J'ai fini par y arriver ! ! ! Je n'aurais JAMAIS pu le faire sans vos aides... Un grand merci à vous messieurs... Fier de ce code, je le poste volontier, si ça peut servir à quelqu'un d'autre... : ;;; Supprime un ancien calque vers un nouveau par fusion ;;; ListCalq = ("Nom de l'ancien calque" . "Nom du nouveau") NE PAS OUBLIER LE POINT ENTRE LES DEUX NOMS (setq LstCalq '(("1" . "TOPO_PT_MATRI") ("2" . "VEG_ARBRE") (............) ("3" . "MOBILIER_URBAIN") ("62" . "TALUS_HAUT_G") ("63" . "TOPO_ALTI") ) ) ;_ Fin de setq ;; (foreach PosLst LstCalq (if (tblsearch "layer" (car PosLst)) ;(if (tblsearch "layer" (car (assoc (car PosLst) LstCalq))) (progn (command "-calque" "n" (cdr (assoc (car PosLst) LstCalq)) "") (command "fuscalques" "n" (car PosLst) "" "n" (cdr (assoc (car PosLst) LstCalq)) "o") ;_ Fin de command ) ;_ Fin de progn ) ;_ Fin de if ) ;_ Fin de foreach J'aurais du tester si le calque existe avant de le créer... Maintenant que j'y pense, j'aurais même pu prévoir une couleur par calque, mais on ne parle plus de paire pointée (sauf si on fait deux Listes). Mais ça ne m'est d'aucune utilité. J'ai un fichier Excel (XLSM) qui met à jours tous mes calques avec couleur, style de ligne, description.... directement dans AutoCAD. Merci encore à vous tous... Denis (content)... -
Comment faire pour "vider" un (ssget ?
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Bonjour Patrick_35 et encore merci pour ton aide, J'ai suivi tes conseils et j'ai tout placé dans la console, ce qui me donne : _1$ (car '(1 . 2)) 1 _1$ (cdr '(1 . 2)) 2 _1$ (cadr '(1 . 2)) _$; erreur: type d'argument incorrect: consp 2 _$ (car '(1 2)) 1 _$ (cdr '(1 2)) (2) _$ (cadr '(1 2)) 2 _$ Donc, si j'ai bien tout compris, (car retourne le premier élément de la liste (cdr retourne la liste à partir du deuxième élément, (cadr retourne le deuxième élément de la liste, et c'est là que je ne comprend pas pourquoi il plante, Je pensais donc que celà ferait l'affaire : (foreach PosLst LstCalq (if (tblsearch "layer" (car (assoc PosLst LstCalq))) (progn (command "-calque" "e" (cdr (assoc PosLst LstCalq)) "") (command "fuscalques" "n" (car (assoc PosLst LstCalq)) "" "n" (cdr (assoc PosLst LstCalq)) "o") ) ;_ Fin de progn ) ;_ Fin de if ) ;_ Fin de foreach Mais non : Mais je ne trouve rien dans mes aides sur "stringp"... -
J'allais dire : "Julian, t'es un couche tard ! ! 1 h du mat' " Mais en fait, t'es un lève-tôt au pays du soleil levant... Ni iori iodesu (enfin, d'après mes vagues souvenirs...) Merci à tous, mais j'avais en tête un peu plus vieux, genre 1997 voir même 1996... En tout cas, j'ai gagné ! ! Amicalement, Denis..
-
Re, J'ai déjà eu des présentations "vides" mais qui comportaient malgré tout des "trucs"... Mon dessin ne se purgeait pas totalement, une vue étendue dans la présentation ne "zoomait" sur rien... Et pourtant, quand j'ai supprimé cette présentation, d'autres objets se purgeaient après... J'avais eu un indice en faisant un wbloc, qui lui ne conserve pas les présentations... Je n'ai jamais compris... Denis...
-
Comment faire pour "vider" un (ssget ?
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Merci Patrick_35 pour me distiller encore tes précieux conseils... De plus, je pense avoir fait une autre boulette avec (foreach PosLst LstCalq (if (tblsearch "layer" (rtos PosLst)) Car PosList devrait s'incrémenter avec le "(foreach" : 1, 2, 3, 4, 5, 6, 7.... Et ma liste comporte des "trous". je n'ai pas de quatre par exemple... Je vais me plonger dans l'aide de (gile), car les autres aides que je possède sont en anglais... Je pensais m'en être sorti avec " (cdr (assoc PosLst LstCalq))" ? Mais dans une liste de paires pointées, n'a-t-on pas besoin uniquement ce "(car" et "(cdr" ? Vue qu'il n'y a que deux données. D'après (gile) et ce que j'en ai compris : (car '(1 2 3 4 5) retourne 1 et (cdr '(1 2 3 4 5) retourne (2 3 4 5) Donc, dans une paire pointée, "(car" est la première valeur de la paire et "(cdr" la deuxième... Non ? Ca devrait pourtant être plus facile avec des paires pointées, non de non... En tout cas, merci pour ces indices... Je verrais ça demain matin... Si je n'ai pas encore une autre "urgence" du commercial qui auras ENCORE oublié de me parler d'un dossier à livrer la veille ! ! A+ Denis... -
Comment faire pour "vider" un (ssget ?
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Ben voilà, j'ai fais ça : (setq LstCalq '((1 . "TOPO_PT_MATRI") (2 . "VEG_ARBRE") (3 . "MOBILIER_URBAIN") (5 . "Portes") (6 . "MOBILIER_URBAIN") (13 . "DET_GAZ") (14 . "DET_EAU") (15 . "DET_EDF") (16 . "DET_TEL") (17 . "DET_ASS") (18 . "DET_CHA") (21 . "TOPO_BORDUR") (22 . "TOPO_NAT_SOL") (30 . "TOPO_MUR") (40 . "TOPO_PT_CELL") (43 . "VEG_HAIE_D") (44 . "VEG_HAIE_G") (47 . "TOPO_GLISS") (48 . "RAILS") (49 . "TOPO_FIL") (50 . "TOPO_STATION") (57 . "BAT_DUR") (58 . "TOPO_CLOTU_R") (59 . "TALUS_BAS") (61 . "TALUS_HAUT_D") (62 . "TALUS_HAUT_G") (63 . "TOPO_ALTI") ) ) ;_ Fin de setq (foreach PosLst LstCalq (if (tblsearch "layer" (rtos PosLst)) (progn (command "-calque" "e" (cdr (assoc PosLst LstCalq)) "") (command "fuscalques" "n" (rtos PosLst) "" "n" (cdr (assoc PosLst LstCalq)) "o") ) ;_ Fin de progn ) ;_ Fin de if ) ;_ Fin de foreach Mais AutoCAD n'est pas content et me répond : PFFFF.... Je continu mes tests... -
Comment faire pour "vider" un (ssget ?
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Merci pour cette réponse, Pour l'exo, je l'avais justement commencé, enfin, j'ai juste commencé à lire le PDF de (gile)... Une vrai mine d'or... Denis... -
Comment faire pour "vider" un (ssget ?
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Mais pour celà, n'était-ce pas plus facile d'utiliser les paires pointées (qui est bien plus facile à remplir, voir même à mettre dans un fichier txt) ? Comme celle-ci : (setq LstCalq '((1 "TOPO_PT_MATRI") (2 . "VEG_ARBRE") (3 . "MOBILIER_URBAIN") (5 . "Portes") (6 . "MOBILIER_URBAIN") (13 . "DET_GAZ") (14 . "DET_EAU") (15 . "DET_EDF") (16 . "DET_TEL") (17 . "DET_ASS") (18 . "DET_CHA") (21 . "TOPO_BORDUR") (22 . "TOPO_NAT_SOL") (30 . "TOPO_MUR") (40 . "TOPO_PT_CELL") (43 . "VEG_HAIE_D") (44 . "VEG_HAIE_G") (47 . "TOPO_GLISS") (48 . "RAILS") (49 . "TOPO_FIL") (50 . "TOPO_STATION") (57 . "BAT_DUR") (58 . "TOPO_CLOTU_R") (59 . "TALUS_BAS") (61 . "TALUS_HAUT_D") (62 . "TALUS_HAUT_G") (63 . "TOPO_ALTI") ) ) Par contre, je ne sais pas ce que ferait un (foreach sur des paires pointées... Denis... -
Comment faire pour "vider" un (ssget ?
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Re, @Patrick_35 : je suis parti sur des "fusions" car, au début, il y avait plusieurs calques à prendre en compte, un rename ne suffisait pas. Je vais essayer ton code pour mes besoins... "(mapcar" ? Bon, un petit coup d'oeuil sur "Introduction_a_AutoLISP.pdf" de (gile)... @VDH-Bruno : effectivement, ça dépasse largement le niveau débutant, qui est le mien... Merci encore à tous... Denis... -
Comment faire pour "vider" un (ssget ?
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Re, Une question me turlupine, sous VB, j'aurais créé un dictionnaire (qui est une liste de paires pointées) pour faire cette macro, exemple avec ça : (if (tblsearch "layer" "1") (progn (command "-calque" "n" "TOPO_PT_MATRI" "") (command "fuscalques" "n" "1" "" "n" "TOPO_PT_MATRI" "o") ) ;_ Fin de progn ) ;_ Fin de if ;; (if (tblsearch "layer" "2") (progn (command "-calque" "n" "VEG_ARBRE" "") (command "fuscalques" "n" "2" "" "n" "VEG_ARBRE" "o") ) ;_ Fin de progn ) ;_ Fin de if ;; (if (tblsearch "layer" "3") (progn (command "-calque" "n" "MOBILIER_URBAIN" "") (command "fuscalques" "n" "3" "" "n" "MOBILIER_URBAIN" "o") ) ;_ Fin de progn ) ;_ Fin de if je pensais, qu'avec le LiSP, Roi des listes, on aurais pû faire un truc dans ce genre : (setq LstCalq (1 . "TOPO_PT_MATRI") (2 . "VEG_ARBRE") (3 . "MOBILIER_URBAIN") (......) ) Avec un (vlax-for pour boucler sur cette liste jusqu'à sa fin... (vlax-for (tblsearch "layer" élément_de_gauche_du_dico, (progn (command "-calque" "n" élément_de_droite_du_dico "") (command ....... ) Ce qui aurait énormément simplifier la liste des calques à traiter... Mais ça doit être bien au dessus de mon niveau LiSP... Denis... -
Comment faire pour "vider" un (ssget ?
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Bonjour Olivier, et merci, En plus, je le savais... Ya des fois, je claquerais... ;-) Denis -
Comment faire pour "vider" un (ssget ?
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Bonjour VDH-Bruno, Effectivement, c'est bien plus complet que ce que j'ai écris... Je pensais qu'il existait un "_unselect" ou un truc dans ce genre... Avec ça, je vais me retaper une bonne partie de mon code, pour que ce soit plus "propre" comme dans ton exemple... Et en fin de section, on fait un (setq ss "") ? Comme ça : ;; (if (setq ss (ssget "_X" '((0 . "TEXT,MTEXT") (1 . "#.##,##.##,###.##") (8 . "0,_0")))) (progn (command "-calque" "n" "TOPO_ALTI" "") (command "chprop" ss "" "ca" "TOPO_ALTI" "") ) ) (setq ss "") ;; Et merci à toi, Denis... -
Bonjour à tous, Voilà, j'ai un petit LiSP qui me permet d'effectuer plusieurs sélections : ........ (ssget "_X" '((0 . "TEXT,MTEXT") (1 . "#,##,###,####") (8 . "Portes"))) (command "-calque" "n" "TOPO_NUM_POLICE" "") (command "chprop" "_P" "" "ca" "TOPO_NUM_POLICE" "") ;; (ssget "_X" '((0 . "TEXT,MTEXT") (1 . "#.##,##.##,###.##")(8 . "0,_0"))) (command "-calque" "n" "TOPO_ALTI" "") (command "chprop" "_P" "" "ca" "TOPO_ALTI" "") ;; (ssget "_X" '((8 . "0,_0"))) (command "_erase" "_P" "") ........ Mais lorsqu'un (ssget ne répond pas aux critère de sélection, dans la ligne suivant (command "_erase" "_P" ""), c'est la précédente sélection qui est en cours... Comment déselectionner tout le dessin...? J'ai essayé un (ssget nil) (ssget ""), rien ne fonctionne... Si quelqu'un a un indice, je suis preneur... Denis...
