-
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
-
AutoCAD MAP 2017 x64 French DISPO cette semaine ?
DenisHen a répondu à un(e) sujet de lecrabe dans Autodesk Map
Salut, Merci pour cette info... Denis... PS : pourquoi il y a un Hotfix en 32 bits si AutoCAD 2017 n'est qu'en 64 bits ? Pour Windows 32 ? -
Salut à tous, Personnellement, je me sers souvent de PDF, ils sont issus des DT/DICT des concessionnaires (ERDF, GRDF, Véolia, ...). Ils me servent exclusivement à placer les réseaux "grosso/modo", je ne suis pas à 50cm (voir plus). C'est juste pour indiquer à mes collègues de terrain où se trouvent les réseaux pour effectuer leur détection, je les cale avec la commande "aligner" en deux points avec mise à l'échelle. Il ne faut jamais oublier que les PDF sont "approximatifs"... Denis...
-
CUIX / Bloc et barre d'outils
DenisHen a répondu à un(e) sujet de Flobott dans AutoCAD trucs et astuces
Salut Steven. Effectivement, le glisser/déposer ne donne pas le choix dans la rotation... Je m'en sers très rarement, d'où mon "erreur"... Merci pour ces précisions... -
[Résolu] Petit souci avec inputbox
DenisHen a répondu à un(e) sujet de DenisHen dans Pour aller plus loin en LISP
J'ai même fais mieux ! ! ! J'ai lu Dialog.lsp et, comme ma saisie correspondait à une liste d'opérateurs, j'ai choisi d'utiliser ListBox... Et c'est encore mieux ! ! ! Par contre, ListBox n'est pas énuméré dans le liste des fonctions de Dialog.lsp dans la page de ton raccourcis... Un grand merci à (gile)... -
[Résolu] Petit souci avec inputbox
DenisHen a répondu à un(e) sujet de DenisHen dans Pour aller plus loin en LISP
Bonjour (gile). Et un grand merci à toi... Ton dernier code fonctionne à merveille... Encore merci... Denis... -
Bonjour à la communauté. Voilà, j'ai, dans une macro, inputbox de Patrick_35 : (defun inputbox (titre message defaut / *acad* users1) ; de Patrick_35 (setq *acad* (vlax-get-acad-object) users1 (getvar "users1") ) ;_ Fin:setq (acad-push-dbmod) (vla-eval *acad* (strcat "ThisDrawing.SetVariable \"USERS1\"," "InputBox (\"" message "\", \"" titre defaut "\")" ) ;_ Fin:strcat ;_ Fin:strcat ) ;_ Fin:vla-eval (setq valtxt (getvar "users1")) (setvar "users1" users1) (acad-pop-dbmod) ) ;_ Fin:defun Dans mon code, je l'appel comme ça : (setq Operateur (inputbox "Choix de l'opérateur" "Initiales de l'opérateur (FB pour Fred et FZ pour François) :" "FZ")) (setq Operateur (strcat Operateur)) Mon problème est que ma variable Operateur revient avec une valeur T... Et je n'arrive pas à savoir ce que je fais mal... Si quelqu'un a une astuce ou un conseil, je suis preneur... Denis...
-
CUIX / Bloc et barre d'outils
DenisHen a répondu à un(e) sujet de Flobott dans AutoCAD trucs et astuces
Bonjour, +1 avec Steven. La palette est très souple et très bien faite pour l’insertion de blocs... Un simple glisser/déposer créé tout ce qu'il faut... -
Salut Megeon, Je pense qu'il faudrait plustôt commencer par là : (if (setq ss (ssget "_X" '((0 . "INSERT")))) (progn (setq i 0) (while (setq ent (ssname ss i)) (setq i (1+ i) elst (entget ent) Coord (cdr (assoc 10 elst)) ;;;(Attention aux échelles différentes) ) ;_ Fin de setq (command "_scale" ent "" Coord "2.54") ) ;_ Fin de while ) ;_ Fin de progn ) ;_ Fin de if Je ne l'ai pas testé mais je pense être dans le bon... EDIT : je viens de tester ce code, il ne change pas l'échelle mais il la multiplie par 2.54...
-
Salut, C'est curieux, chez moi, j'arrive à modifier cet attribut (IED) sans problème... Mais pas dans l'éditeur, seulement dans la fenêtre des propriétés...
-
[Résolu] Z=0 et élévation=0 aussi...
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Alors là, chapeau... Je ne connaissais pas du tout cette astuce... Encore merci (gile)... Et pour ceux que ça peut intéresser, voici un code qui place tous les blocs à l'altitude 0 et place les élévations des polylignes (LW) à 0 : ;;;Déplacement des blocs à l'altitude 0 et les élévations à 0 ************ (princ "\nDéplacement des blocs à l'altitude 0 et des élévation à 0..............") (setq ss nil) (if (setq ss (ssget "_X" '((0 . "INSERT,LWPOLYLINE")))) (progn (setq i 0) (while (setq ent (ssname ss i)) (setq i (1+ i) elst (entget ent) CoordZ (cadddr (assoc 10 elst)) ) ;_ Fin de setq (cond ((= (cdr (assoc 0 elst)) "INSERT") (command "_move" ent "" "_displacement" (list 0 0 (- CoordZ))) ) ((= (cdr (assoc 0 elst)) "LWPOLYLINE") (entmod (subst (cons 38 0.0) (assoc 38 elst) elst)) ) ) ;_ Fin de cond ) ;_ Fin de while ) ;_ Fin de progn ) ;_ Fin de if Encore un grand merci à tous... Denis... -
[Résolu] Z=0 et élévation=0 aussi...
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Mille merci (gile) pour ton aide précieuse... Je n'arrive pas à faire fonctionner ton z0 et comme je ne le comprend pas à 100% (mais j'ai déjà pas mal appris aujourd'hui) j'ai préféré la méthode (command "_move" que je maitrise mieux...: ;;;Déplacement des blocs à l'altitude 0************ (princ "\nDéplacement des blocs à l'altitude 0..............") (setq ss nil) (if (setq ss (ssget "_X" '((0 . "INSERT")))) (progn (setq i 0) (while (setq ent (ssname ss i)) (setq i (1+ i) elst (entget ent) Coord (cdr (assoc 10 elst)) CoordSrc (strcat (rtos (car Coord) 2 3) "," (rtos (cadr Coord) 2 3) "," (rtos (caddr Coord) 2 3) ) ;_ Fin de strcat CoordDest (strcat (rtos (car Coord) 2 3) "," (rtos (cadr Coord) 2 3) ",0.00") ) ;_ Fin de setq (command "_move" ent "" "_non" CoordSrc "_non" CoordDest) ) ;_ Fin de while ) ;_ Fin de progn ) ;_ Fin de if Pour ceux que ça peut intéresser... Et merci Patrick_35, c'est plus à ma portée... Denis... Très reconnaissant envers CadXP et ses membres... -
[Résolu] Z=0 et élévation=0 aussi...
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
J'ai trouvé un LISP de Patrick_35 mais je ne le comprend pas : (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vlax-for bl (vla-get-blocks doc) (vlax-for ent bl (if (eq (vla-get-objectname ent) "AcDbAttributeDefinition") (vla-put-lockposition ent :vlax-false) ) ;_ Fin de if ) ;_ Fin de vlax-for ) ;_ Fin de vlax-for (if (ssget "x" (list (cons 0 "insert") (cons 66 1))) (progn (vlax-for bl (setq sel (vla-get-activeselectionset doc)) (foreach ent (vlax-invoke bl 'getattributes) (setq att (entget (vlax-vla-object->ename ent)) att (subst (cons 280 0) (assoc 280 att) att) ) ;_ Fin de setq (entmod att) ) ;_ Fin de foreach ) ;_ Fin de vlax-for (vla-delete sel) ) ;_ Fin de progn ) ;_ Fin de if Si quelqu'un a ça en AutoLisp... Je suis preneur... -
[Résolu] Z=0 et élévation=0 aussi...
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Merci (gile) pour cette réponse. Le plus simple, je pense, serait de les "verrouiller" avant la réaffectation de leurs coordonnées (avec le nouveau Z à 0), mais je ne sais pas comment... Aurais-tu une idée ? J'ai compris en te lisant que c'est surtout une question de "sécurité"... Denis... -
[Résolu] Z=0 et élévation=0 aussi...
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Par contre, je viens de m'apercevoir d'un truc bizarre... Les attributs à l'intérieur des blocs sont restés à leur altitudes premières... :o Mes attributs ont donc une altitude alors que le bloc est à 0... J'ai raté un truc ? -
[Résolu] Z=0 et élévation=0 aussi...
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Rôôôô... Honte à moi... :unsure: En plus, quelques lignes plus bas, je le fais... Quel âne je suis... Ok pour la déclaration des variables, j'oublie toujours de faire "propre"... Encore merci... -
[Résolu] Z=0 et élévation=0 aussi...
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
J'ai "forcément" un problème... Rassure-toi tout de suite, il vient de moi... :unsure: Mon code va juste qu'à la fin et mes blocs sont bien à Z = 0, mais les élévations des LWpolyline sont restés comme avant... Voici ce code : (ade_projsetwscode "NTF.Lambert-E") (setq ss nil) (princ "\nRemplissage des données géographiques des nouveaux blocs..............................................\n" ) ;_ Fin de princ (if (setq ss (ssget "_X" (list (cons 0 "INSERT,LWPOLYLINE")))) (progn (setq i 0) (while (setq ent (ssname ss i)) (setq i (1+ i)) (if (= (cdr (assoc 0 elst)) "INSERT") (progn (setq dxf10 (assoc 10 elst)) (entmod (subst (list 10 (cadr dxf10) (caddr dxf10) 0.0) dxf10 elst)) (setq att (entget (entnext ent)) elst (entget ent) Coord (cdr (assoc 10 elst)) ) ;_ Fin de setq (ade_projsetsrc (ade_projgetwscode)) (ade_projsetdest "LL-RGF93") (setq pntLLRGF93 (ade_projptforward Coord)) (while (/= (cdr (assoc 0 att)) "SEQEND") (if (= (cdr (assoc 2 att)) "X") (progn (setq att (subst (cons 1 (rtos (car pntLLRGF93) 2 15)) (assoc 1 att) att)) (entmod att) ) ;_ Fin de progn ) ;_ Fin de if ;.............. Je te passe les autres lignes (setq att (entget (entnext (cdr (assoc -1 att))))) ) ;_ Fin de while ) ;_ Fin de progn (entmod (subst (cons 38 0.0) (assoc 38 elst) elst)) ) ;_ Fin de if ) ;_ Fin de while ) ;_ Fin de progn ) ;_ Fin de if Je cherche mais je ne trouve rien... Pourtant, ça fonctionne très bien : (if (setq ss (ssget "_X" '((0 . "LWPOLYLINE")))) (progn (setq i 0) (while (setq ent (ssname ss i)) (setq i (1+ i) elst (entget ent) ) ;_ Fin de setq (entmod (subst (cons 38 0.0) (assoc 38 elst) elst)) ) ;_ Fin de while ) ;_ Fin de progn ) ;_ Fin de if Et merci encore, Denis... -
[Résolu] Z=0 et élévation=0 aussi...
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Bonjour (gile), et merci pour cette réponse... Je vais préférer ton premier code qui est à ma portée, car les deux autres vont crescendo dans la difficulté pour moi... Merci encore... -
[Résolu] Z=0 et élévation=0 aussi...
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Re, J'ai fais ce code pour les blocs à Z=0 qui ne fonctionne pas... (if (setq js (ssget "X" (list (cons 0 "INSERT")))) (progn (setq n 0) (while (setq bl (ssname js n)) (setq att (entget (entnext bl)) Lst (entget bl) Coord (cdr (assoc 10 elst)) CoordSrc (strcat (rtos (car Coord) 2 3) "," (rtos (cadr Coord) 2 3) "," (rtos (caddr Coord) 2 3) ) ;_ Fin de strcat CoordDest (strcat (rtos (car Coord) 2 3) "," (rtos (cadr Coord) 2 3) ",0.00") ) ;_ Fin de setq ;;; (command "_move" js CoordSrc CoordDest) ;;; ) ;_ Fin de while ) ;_ Fin de progn ) ;_ Fin de if Si quelqu'un a une idée ou un conseil... Denis... -
Bonjour à la communauté... Voilà, pour des collègues qui sont sous AutoCAD OEM (qui n'ont donc pas les Express Tools) je cherche à faire une petite macro qui place les blocs à z=0 mais aussi les élévations des polylignes à 0. Pour les blocs, est-ce qu'un simple "_move" suffirait ou une autre méthode plus simple et rapide ? Pour les LWPOLYLINE, je bien trouvé le code DXF de l'élévation (38) mais comment le mettre à 0 ? Cette macro fera partie d'une autre beaucoup plus longue, pour que mes collègues de terrain ne fassent pas des tonnes de manipulations sous la pluie... Si quelqu'un a une astuce ou une idée, je suis preneur... Denis...
-
[Résolu] Obtenir la date d'aujourd'hui
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Salut, Merci Patrick_35... Ça fonctionne nickel... Denis... -
Bonjour à la communauté. Voilà, je cherche à attribué à la variable Now la date d'aujourd'hui tel que "31/03/2016" Si quelqu'un a une astuce ou un conseil, je suis preneur... Denis...
-
[Résolu] Coordonnées dans une autre projection
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Après quelques heures de recherches, j'ai fini par trouvé des trucs... Voici mon code pour ceux que ça peut intéresser (ATTENTION, c'est exclusivement pour MAP ou CIVIL) : (defun c:SDDEA_RemplBlk (/) (setq old_osmd (getvar "osmode") old_abase (getvar "angbase") old_adir (getvar "angdir") old_aunits (getvar "aunits") old_cmdecho (getvar "cmdecho") old_AttDia (getvar "attdia") old_AttReq (getvar "attreq") ) ;_ Fin de setq (setvar "osmode" 1) (setvar "angbase" 0) (setvar "angdir" 0) (setvar "cmdecho" 0) (setvar "aunits" 2) (setvar "ATTDIA" 0) (setvar "ATTREQ" 0) (setvar "angbase" (/ pi 2)) (setvar "angdir" 1) (princ "\nRemplacement des blocs pour les dossiers du SDDEA...") (setq Select nil) (princ "\nDébut du remplacement des blocs") (setq LstBlk '(("AVASI" . "Avaloir simple") ("AVAVI" . "avaloir visite") ("BRASST" . "RegardBranchementPlanEU") ("BC4" . "Bacréseau2") ) ) ;_ Fin de setq (foreach PosLstBlk LstBlk (setq n 0) (if (setq Select (ssget "_A" (list (cons 0 "INSERT") (cons 2 (car PosLstBlk))))) ;_ Fin de setq (while (setq ent (ssname Select n)) (setq elst (entget ent) Coord (cdr (assoc 10 elst)) EchX (cdr (assoc 41 elst)) EchY (cdr (assoc 42 elst)) Rot (cdr (assoc 50 elst)) n (1+ n) ) ;_ Fin de setq (setvar "clayer" (cdr (assoc 8 elst))) (command "_erase" ent "") (setq Coord (strcat (rtos (car Coord) 2 3) "," (rtos (cadr Coord) 2 3))) (setq Rot (+ Rot (/ pi 2))) (command "-inserer" (cdr PosLstBlk) "_non" Coord EchX EchY (angtos Rot 2 3)) ;_ Fin de command ) ;_ Fin de while ) ;_ Fin de if ) ;_ Fin de foreach ;;; (if (setq js (ssget "x" (list (cons 0 "insert")))) (progn (setq n 0) (while (setq bl (ssname js n)) (setq att (entget (entnext bl)) Lst (entget bl) Coord (cdr (assoc 10 elst)) ) ;_ Fin de setq (ade_projsetsrc (ade_projgetwscode)) (setq pntLLRGF93 (ade_projptforward Coord)) (while (/= (cdr (assoc 0 att)) "SEQEND") (if (= (cdr (assoc 2 att)) "X") (progn (setq att (subst (cons 1 (rtos (car pntLLRGF93) 2 12)) (assoc 1 att) att)) (entmod att) ) ;_ Fin de progn ) ;_ Fin de if (if (= (cdr (assoc 2 att)) "Y") (progn (setq att (subst (cons 1 (rtos (cadr pntLLRGF93) 2 12)) (assoc 1 att) att)) (entmod att) ) ;_ Fin de progn ) ;_ Fin de if (setq att (entget (entnext (cdr (assoc -1 att))))) ) ;_ Fin de while (setq n (1+ n)) ) ;_ Fin de while ) ;_ Fin de progn ) ;_ Fin de if ;;; (setvar "osmode" old_osmd) (setvar "angbase" old_abase) (setvar "angdir" old_adir) (setvar "cmdecho" old_cmdecho) (setvar "aunits" old_aunits) (setvar "ATTDIA" old_AttDia) (setvar "ATTREQ" old_AttReq) ) ;_ Fin de defun -
Bonjour à la communauté. Voilà, j'ai fais un petit LiSP qui remplace un bloc par un autre, le voici : (defun c:RemplBlk_SDDEA (/) (princ "\nRemplacement des blocs pour les dossiers du SDDEA...") (setq Select nil) (princ "\nDébut du remplacement des blocs") (setq LstBlk '(("ACCES_*" . "ACCES") ("ESC_*" . "ESC"))) (foreach PosLstBlk LstBlk (setq n 0) (if (setq Select (ssget "_A" (list (cons 0 "INSERT") (cons 2 (car PosLstBlk))))) ;_ Fin de setq (while (setq ent (ssname Select n)) (setq elst (entget ent) Coord (cdr (assoc 10 elst)) EchX (cdr (assoc 41 elst)) EchY (cdr (assoc 42 elst)) Rot (cdr (assoc 50 elst)) n (1+ n) ) ;_ Fin de setq (setvar "clayer" (cdr (assoc 8 elst))) (command "_erase" ent "") (setq Coord (strcat (rtos (car Coord) 2 3) "," (rtos (cadr Coord) 2 3))) (setq Rot (+ Rot (/ pi 2))) (command "-inserer" (cdr PosLstBlk) "_non" Coord EchX EchY (angtos Rot 2 3)) ;------>>>>>> Je devrais probablement placer mon nouveau code ici... ) ;_ Fin de while ) ;_ Fin de if ) ;_ Fin de foreach ) ;_ Fin de defun Mon problème est que, pour une autre client, je dois injecter des données dans différents attributs des nouveaux blocs. Par exemple, dans les attributs X et Y, je dois y placer les valeurs des coordonnées X et Y mais en WGS84. Je ne sais même pas ou chercher des informations pour le faire... En bref, comment obtenir les coordonnées WGS84 (Greenwich) en cliquant sur un point en Lambert 2 Étendu ? Si vous avez un conseil ou une idée, je suis preneur... Denis...
-
[Résolu] Fenêtre (F2) qui s'ouvre de temps en temps pendant des macro
DenisHen a répondu à un(e) sujet de baba0000000000 dans Personnalisation, macros, DIESEL
Bonjour, Pour être plus précis, ce n'est pas une boite de dialogue mais la fenêtre "text" d'AutoCAD. Peut-être la variable cmdecho ? -
Ce bloc a-t-il déjà été insérer dans ce DWG ? Les styles de textes du bloc sont-ils les mêmes que ceux dans le dessin courant ? As-tu essayé les commandes _battman ou _AttSync ?
