#1 Fri 14 March 2008 14:30
[ACAD] Creer un carroyage en Lambert
Bonjour,
je cherche comment réaliser un carroyage avec repères en Lambert (comme présenté dans l'image jointe) sur AutoCAD Map. Je sais qu'il est possible de le créer sous Covadis mais je suis sous AutoCAD. Auriez-vous une technique ou un conseil ?
Je suis parvenu à vrai dire à faire le carroyage (réseau de petite croix) mais comment implanter de manière automatique mes X et Y (coord. Lambert III) aux extrémités de ma fenêtre ???
Cordialement.
M@rc0
Hors ligne
#2 Fri 06 February 2009 16:49
Re: [ACAD] Creer un carroyage en Lambert
Réponse à ma propre question 12 mois plus tard... Pour celle ou celui que cela intéresserait....
http://bruno.valsecchi.neuf.fr/index.html ... voir à " Créer un carroyage type Lambert " Merci au Lispeur.
Dernière modification par Marco_P (Mon 16 February 2009 13:38)
M@rc0
Hors ligne
#4 Tue 02 November 2010 16:48
- Philippe RICHARD
- Participant actif
- Date d'inscription: 4 Oct 2006
- Messages: 50
Re: [ACAD] Creer un carroyage en Lambert
bonjour,
à propose de suivi, le lien du message du 6 février ne fonctionne plus, or je suis intéressé par la réalisation d'un carroyage sous autocad map 3d 2010
quelqu'un a une idée ?
autocad map 3D 2011
mapinfo pro 9.5.1
Hors ligne
#6 Thu 04 November 2010 11:21
- Philippe RICHARD
- Participant actif
- Date d'inscription: 4 Oct 2006
- Messages: 50
Re: [ACAD] Creer un carroyage en Lambert
bonjour,
euh, c'est gentil, mais c'est quoi des lisp ?
autocad map 3D 2011
mapinfo pro 9.5.1
Hors ligne
#7 Thu 04 November 2010 11:40
Re: [ACAD] Creer un carroyage en Lambert
Bonjour,
Comment définir un lisp ?
c'est une petite application qui te permet d'exécuter des fonctions en un seul clic (parfois un peu plus); fonctions qui seraient fastidieuses à faire avec les outils d'Autocad seul, ça se présente la plupart du temps sous un fichier texte (qui est une suite de commande pour autocad)... je ne peux pas t'en dire plus je ne suis pas un expert, regarde sur le forum tu trouveras certainement des sujets qui te renseigneront.
Pour notre affaire, ce "lisp" donc se présente sous forme de deux fichiers, ils s'installent comme tous les lisp via :
OUtils ---> AutoLisp---> Charger une application
Un fenêtre s'ouvre et tu vas chercher les lisp dans le fichier correspondant. Si tu veux qu'il se charge à chaque démarrage...tu vas dans la partie "démarrage" ---> contenu et tu ajoutes les ou les fichiers. Voilà.
Le petit plus de ce lisp "lambert" c'est qu'il est composé d'une boite de dialogue (fichier lsp + fichier dcl) pour paramétrer ton carroyage lambert suivant l'échelle.
Lorsque tu as monté les deux fichiers dans Autocad, tu "appelles" ces fonctions en tapant dans la ligne de commande 'lambert" et la boite de dialogue s'ouvre, il n'y a plus qu'à choisir ses préférences.
J'espère que cela a été clair pour toi !
Dernière modification par Marco_P (Thu 04 November 2010 11:50)
M@rc0
Hors ligne
#8 Thu 04 November 2010 12:08
- Philippe RICHARD
- Participant actif
- Date d'inscription: 4 Oct 2006
- Messages: 50
Re: [ACAD] Creer un carroyage en Lambert
ok, merci, compris
j'ai installé ces 2 fichiers et j'ai chargé le .lsp dans autocad comme indiqué (je n'ai pas pu charger le .dcl : ce format n'est pas proposé)
je me suis mis en mode objet, mais l'appel de la commande Lambert ne produit qu'une autre commande "quitter / sortir abandon", et rien ne se passe ; j'ai peut-être oublié qq chose ?
autocad map 3D 2011
mapinfo pro 9.5.1
Hors ligne
#9 Thu 04 November 2010 14:09
- fabcad
- Participant assidu
- Lieu: Acigné
- Date d'inscription: 3 Apr 2006
- Messages: 277
Re: [ACAD] Creer un carroyage en Lambert
Bonjour,
Il faut mettre le fichier DCL dans un dossier pour que AutoCAD MAP puisse le trouver et le charger immédiatement.
C'est l'inconvénient de ces boites de dialogue écrites en DCL et dans un fichier séparé.
Place le dans : C:\Program Files\AutoCAD Map 3D 2009\Support
ou alors ajoute ton dossier de routines LISP dans la liste des chemins de recherche AutoCAD en allant dans les Options AutoCAD.
Sinon, pour ma part, la routine plante car il me semble en ayant lu celle-ci qu' il manque des motifs de hachures nécessaires à la création du carroyage.
Bonne journée,
Dernière modification par fabcad (Thu 04 November 2010 14:19)
Hors ligne
#10 Thu 04 November 2010 14:50
- Philippe RICHARD
- Participant actif
- Date d'inscription: 4 Oct 2006
- Messages: 50
Re: [ACAD] Creer un carroyage en Lambert
bonjour,
effectivement c'est mieux, mais lorsque je crée le carroyage ça ne marche pas (message : "Nom du motif de hachures inconnu"), comme fabcad
Marco a-t-il eu ce problème ?
autocad map 3D 2011
mapinfo pro 9.5.1
Hors ligne
#11 Thu 04 November 2010 16:26
- fabcad
- Participant assidu
- Lieu: Acigné
- Date d'inscription: 3 Apr 2006
- Messages: 277
Re: [ACAD] Creer un carroyage en Lambert
Il faut copier ces deux fichiers dans C:\Program Files\AutoCAD Map 3D 2009\Support
Relancer AutoCAD MAP et ca devrait fonctionner.
Hors ligne
#12 Thu 04 November 2010 16:53
Re: [ACAD] Creer un carroyage en Lambert
Salut,
Non Philippe je n'ai jamais eu ce problème. en effet j'ai oublié de préciser qu'il fallait placer les fichiers dans le même dossier.
En effet le type de hachure doit être reconnu par ta version d'Autocad.
Edit : j'ai eu des problèmes mais je ne me rappelle plus très bien d'où ça venait, quoi qu'il en soit le problème arrivait lorsque je devais positionner l'échelle et le nord ! il plantait avec un message d'erreur ! la solution pour moi était de le faire dans un autre document (vierge) et de le replacer dans mon dessin (coller vers les coordonnées d'origine).
Dernière modification par Marco_P (Thu 04 November 2010 16:57)
M@rc0
Hors ligne
#13 Fri 05 November 2010 09:45
- Philippe RICHARD
- Participant actif
- Date d'inscription: 4 Oct 2006
- Messages: 50
Re: [ACAD] Creer un carroyage en Lambert
ok ça marche, merci (même si je dois encore apprivoiser l'outil)
autocad map 3D 2011
mapinfo pro 9.5.1
Hors ligne
#14 Thu 11 November 2010 22:05
- pierre62
- Juste Inscrit !
- Lieu: Sherbrooke, Québec, Canada
- Date d'inscription: 13 Sep 2010
- Messages: 7
Re: [ACAD] Creer un carroyage en Lambert
Merci Marco_P
Pour lambert.lsp, fonctionne très bien, j'aimerais aussi si possible qu'il fonctionne dans l'espace papier c.a.d. dans une vue.
Acadnadien
Hors ligne
#15 Fri 12 November 2010 11:12
Re: [ACAD] Creer un carroyage en Lambert
Désolé je crois que cela n n'est pas possible car tu n'es plus en Lambert dans l'espace papier....tu es en dans les coordonnées de ta page (A4-A3....) de plus le lisp ne fonctionnera jamais dans l'espace papier !
Pour essayer de résoudre ton problème donne moi plus d'information concernant tes besoins.
Sinon comme ça, en solution serait possible mais c'est du bricolage...
Si je comprends tu voudrait par exemple que ton carroyage corresponde à ta fenêtre papier ?
Alors pour cela il te faut, dans l'espace papier, définir ta fenêtre (cadre) si ce n'est pas déjà fait, de verrouiller la fenêtre (sélectionner le bord de la fenêtre --> clic droit --> verrouiller la vue (actif). Ensuit double cliquer dans la fenêtre, tu passes alors en vue objet dans ton espace papier, et créer un cadre sur l'extrême bord de ta fenêtre, tu as ainsi un cadre dans l'espace objet qui correspond (plus ou moins) à ta fenêtre de l'espace papier...
Ensuite retour dans l'espace objet et tu créer ton carroyage en essayant de le faire correspondre à ton nouveau cadre... tu peux pour cela jouer sur les échelles et le pas du carroyage du Lambert...
Voilà, c'est vraiment du bricolage !!! désolé.
Courage.
M@rc0
Hors ligne
#16 Fri 12 November 2010 16:53
- pierre62
- Juste Inscrit !
- Lieu: Sherbrooke, Québec, Canada
- Date d'inscription: 13 Sep 2010
- Messages: 7
Re: [ACAD] Creer un carroyage en Lambert
M'erci quand même, je vais essayer chez Cadxp
Acadnadien
Hors ligne
#17 Sat 02 April 2011 10:26
- bruno v.
- Participant actif
- Date d'inscription: 22 Mar 2010
- Messages: 89
Re: [ACAD] Creer un carroyage en Lambert
Bonjour à tous,
J'ai planché sur une nouvelle version (conçue sous MAP2009 et testée aussi sur une 2008 Full de base)
Celle-ci devrait être plus réactive (réalisée en activeX), elle n'a plus de boite de dialogue, génère automatiquement les fichiers PAT nécessaires si ceux-ci ne sont pas présents dans votre personnalisation. De ce fait la routine n'a plus besoin d'être forcément dans un dossier de recherche d'Autocad pour pouvoir fonctionner et n'a plus de dépendance vis à vis d'autre fichiers.
Utilisation:
Chargez la routine (un glisser-déposer depuis l'explorateur dans la fenêtre graphique d'autocad suffit)
Lancez alors la commande CARROYAGE.
Déplacez alors votre curseur graphique à l'écran, la routine va mettre en place un assemblage dynamique de format A4 qui sera le mieux possible adapté à votre vue courante du dessin. La routine essaye de mettre en place au maximum environ 3 formats A4 en hauteur (ceci pour avoir l'encombrement maxi sur un format de traçage A0 en hauteur). Vous pouvez bien sur par la suite aller au delà de cet agencement (pas conseillé).
Une échelle pré calculé en est déduite pour cet agencement.
Dès lors vous avez la possibilité d'agencer plus finement votre cadre, une pression sur la touche [E] va vous permettre de redéfinir graphiquement l'Emplacement du coin bas gauche de votre cadre, la touche [R] de faire subir une Rotation déterminée du cadre de façon graphique aussi et enfin les touches [+] ou [-] de changer l'échelle (les appuis successifs vont proposer l'échelle suivante la plus proche (croissante ou décroissante). NE PAS VALIDER par entrée votre choix, la simple pression de la touche exécute l'action demandée.
Une fois que tous ces paramètres vous conviennent la simple validation du point supérieur gauche (click-gauche) va valider votre cadre virtuel en cadre définitif en mettant en place les repères de carroyage et la cotation des amorces en bords de cadre.
Je vous la propose en pièce jointe (je la mettrait bientôt sur ma page quand, malgré mes tests, j'aurais eu quelques retours)
NB: Précisions importantes
* Pour un bon fonctionnement, je considère que l'unité graphique est le mètre.
* Bien que la routine puisse fonctionner aussi dans l'espace Papier mais alors le carroyage ne sera plus en cohérence avec le dessin de l'espace objet, veillez bien à être dans l'espace objet avant d'utiliser celle-ci.
Hors ligne
#19 Mon 04 April 2011 14:03
- Philippe RICHARD
- Participant actif
- Date d'inscription: 4 Oct 2006
- Messages: 50
Re: [ACAD] Creer un carroyage en Lambert
j'ai essayé, ça fonctionne vite et bien, même si c'est pas évident de faire caler le carroyage avec la fenêtre ; c'est un sacré boulot donc bravo et merci à son concepteur
autocad map 3D 2011
mapinfo pro 9.5.1
Hors ligne
#20 Wed 06 April 2011 23:47
- bruno v.
- Participant actif
- Date d'inscription: 22 Mar 2010
- Messages: 89
Re: [ACAD] Creer un carroyage en Lambert
Merci Bruno pour ce travail !
ça fonctionne vite et bien
Merci de vos réponses et remarques.
c'est pas évident de faire caler le carroyage avec la fenêtre
Je reconnais que dans ce sens ça doit pas être évident, j'aurais plutôt tendance à faire l'inverse: faire le carroyage puis la fmult ensuite (ou ajuster celle-ci après coup)
Hors ligne
#21 Fri 05 May 2017 04:50
- coco09
- Juste Inscrit !
- Date d'inscription: 4 May 2017
- Messages: 3
Re: [ACAD] Creer un carroyage en Lambert
Bonjour Bruno,
Votre lisp est super comme vous le dites, régler le carroyage à la fenêtre est délicat surtout que je pars de présentations gabaries dont je ne peux toucher la fenêtre.
Mais ne serait-ce pas possible d'affiner la sélection des échelles (au lieu du + ou - que l'on puisse rentrer une valeur ?)
Hors ligne
#22 Fri 05 May 2017 16:26
- bruno v.
- Participant actif
- Date d'inscription: 22 Mar 2010
- Messages: 89
Re: [ACAD] Creer un carroyage en Lambert
Bonjour,
J'ai pu m’apercevoir que vous avez posté sur de multiples forums avec des demandes nuancées mais qui tendent toujours vers une problématique commune.
Donc je vous propose un lisp que j'avais publié sur un forum US qui à l'air de répondre à vos attentes: faire un carroyage dans l'espace objet depuis l'espace papier avec la sélection d'une fenêtre dans la présentation. (l'échelle de la fenêtre est utilisée pour établir le carroyage)
Code:
(vl-load-com) (defun l-coor2l-pt (lst flag / ) (if lst (cons (list (car lst) (cadr lst) (if flag (caddr lst) 0.0)) (l-coor2l-pt (if flag (cdddr lst) (cddr lst)) flag) ) ) ) (defun c:ViewPort2Grid ( / js ent dxf_ent pt_v l h lst_pt js_obj nw_pl unit_draw AcDoc Space UCS save_ucs WSC nw_style f_pat ob_lst_pt pt_ins format_scale ech hrtx nw_pl_out nw_pl_in hatch_out hatch lst_pt str ori_txt nw_txtpt_ins) (prin1 "\nSelect a viewport: ") (while (null (setq js (ssget "_+.:E:S:L" (list '(0 . "VIEWPORT") '(67 . 1) (cons 410 (getvar "CTAB")) '(-4 . "!=") '(69 . 1) ) ) ) ) ) (setq pt_v (cdr (assoc 10 (setq dxf_ent (entget (setq ent (ssname js 0)))))) l (cdr (assoc 40 dxf_ent)) h (cdr (assoc 41 dxf_ent)) lst_pt (list (list (- (car pt_v) (* 0.5 l)) (- (cadr pt_v) (* 0.5 h)) 0.0) (list (+ (car pt_v) (* 0.5 l)) (- (cadr pt_v) (* 0.5 h)) 0.0) (list (+ (car pt_v) (* 0.5 l)) (+ (cadr pt_v) (* 0.5 h)) 0.0) (list (- (car pt_v) (* 0.5 l)) (+ (cadr pt_v) (* 0.5 h)) 0.0) ) js_obj (ssadd) ) (vlax-get (vlax-ename->vla-object ent) 'CustomScale) (entmakex (vl-list* (cons 0 "LWPOLYLINE") (cons 100 "AcDbEntity") (cons 67 1) (cons 100 "AcDbPolyline") (cons 90 (length lst_pt)) (cons 70 1) (mapcar '(lambda (p) (cons 10 p)) lst_pt) ) ) (ssadd (setq nw_pl (entlast)) js_obj) (command "_.CHSPACE" js_obj "") (setq unit_draw 1000) (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object))) (vla-StartUndoMark AcDoc) (setq Space (if (eq (getvar "CVPORT") 1) (vla-get-PaperSpace AcDoc) (vla-get-ModelSpace AcDoc) ) UCS (vla-get-UserCoordinateSystems AcDoc) save_ucs (vla-add UCS (vlax-3d-point '(0.0 0.0 0.0)) (vlax-3d-point (getvar "UCSXDIR")) (vlax-3d-point (getvar "UCSYDIR")) "CURRENT_UCS" ) ) (vla-put-Origin save_ucs (vlax-3d-point (getvar "UCSORG"))) (setq WCS (vla-add UCS (vlax-3d-Point '(0.0 0.0 0.0)) (vlax-3d-Point '(1.0 0.0 0.0)) (vlax-3d-Point '(0.0 1.0 0.0)) "TEMP_WCS")) (vla-put-activeUCS AcDoc WCS) (if (not (tblsearch "STYLE" "$GRID")) (progn (setq nw_style (vla-add (vla-get-textstyles AcDoc) "$GRID")) (mapcar '(lambda (pr val) (vlax-put nw_style pr val) ) (list 'FontFile 'Height 'ObliqueAngle 'Width 'TextGenerationFlag) (list "SIMPLEX.SHX" 0.0 0.0 1.0 0.0) ) ) ) (if (not (tblsearch "LAYER" "GRID")) (vlax-put (vla-add (vla-get-layers AcDoc) "GRID") 'color 7) ) (if (not (findfile "QUADISO.pat")) (progn (setq f_pat (open (strcat (getvar "ROAMABLEROOTPREFIX") "support\\QUADISO.pat") "w")) (write-line "*QUADISO,Quadrillage lambert" f_pat) (write-line "0, -.015,0, 0,1, .03,-.97" f_pat) (write-line "90, 0,-.015, 0,1, .03,-.97" f_pat) (close f_pat) ) ) (if (not (findfile "REPQUADISO.pat")) (progn (setq f_pat (open (strcat (getvar "ROAMABLEROOTPREFIX") "support\\REPQUADISO.pat") "w")) (write-line "*REPQUADISO,Repere du quadrillage lambert" f_pat) (write-line "0, 0,0, 0,1" f_pat) (write-line "90, 0,0, 0,1" f_pat) (close f_pat) ) ) (setq nw_pl (vlax-ename->vla-object nw_pl) ob_lst_pt (vlax-get nw_pl 'coordinates) pt_ins (list (car ob_lst_pt) (cadr ob_lst_pt)) format_scale (/ 1.0 (vlax-get (vlax-ename->vla-object ent) 'CustomScale)) ech (* unit_draw format_scale) htx (/ ech 500.0) ) (vla-put-layer nw_pl "GRID") (vla-Offset nw_pl (* htx -2.5)) (setq nw_pl_out (vlax-ename->vla-object (entlast))) (vla-Offset nw_pl (+ (* htx -2.5) (* htx -10.0))) (setq nw_pl_in (vlax-ename->vla-object (entlast))) (setvar "HPORIGINMODE" 0) (setvar "HPORIGIN" '(0.0 0.0)) (setq hatch_out (vla-AddHatch Space acHatchPatternTypeCustomDefined "REPQUADISO" :vlax-True)) (vlax-invoke hatch_out 'AppendOuterLoop (list nw_pl)) (vlax-invoke hatch_out 'AppendInnerLoop (list nw_pl_out)) (vla-put-patternscale hatch_out (/ ech 10.0)) (vla-put-patternangle hatch_out 0.0) (vla-put-layer hatch_out "GRID") (vla-evaluate hatch_out) (setq hatch (vla-AddHatch Space acHatchPatternTypeCustomDefined "QUADISO" :vlax-True)) (vlax-invoke hatch 'AppendOuterLoop (list nw_pl_in)) (vla-put-patternscale hatch (/ ech 10.0)) (vla-put-patternangle hatch 0.0) (vla-put-layer hatch "GRID") (vla-evaluate hatch) (setq lst_pt (l-coor2l-pt (vlax-invoke hatch_out 'IntersectWith nw_pl_out acExtendThisEntity ) T ) ) (foreach el lst_pt (cond ((or (equal (rem (car el) (/ ech 10.0)) (/ ech 10.0) 1E-8) (equal (rem (car el) (/ ech 10.0)) 0.0 1E-8)) (setq str (strcat " " (rtos (car el) 2 0) " ") ori_txt (* pi 0.5)) ) ((or (equal (rem (cadr el) (/ ech 10.0)) (/ ech 10.0) 1E-8) (equal (rem (cadr el) (/ ech 10.0)) 0.0 1E-8)) (setq str (strcat " " (rtos (cadr el) 2 0) " ") ori_txt 0.0) ) (T (setq str nil ori_txt nil)) ) (cond ((and el str ori_txt) (setq nw_txt (vla-AddText Space str (vlax-3d-point el) htx)) (vla-put-layer nw_txt "GRID") (vla-put-StyleName nw_txt "$GRID") (vla-put-Alignment nw_txt acAlignmentMiddleLeft) (vla-put-Rotation nw_txt ori_txt) (vla-put-TextAlignmentPoint nw_txt (vlax-3d-point el)) (if (vlax-invoke nw_pl 'IntersectWith nw_txt acExtendThisEntity) (vla-put-Alignment nw_txt acAlignmentMiddleRight) ) ) ) ) (setq pt_ins (polar pt_ins (+ (* pi 0.25) (angle (list (car ob_lst_pt) (cadr ob_lst_pt)) (list (caddr ob_lst_pt) (cadddr ob_lst_pt)))) (* htx 10))) (setq nw_txt (vla-AddText Space (strcat " Scale 1/" (rtos ech 2 0)) (vlax-3d-point pt_ins) (* 2 htx))) (vla-put-layer nw_txt "GRID") (vla-put-StyleName nw_txt "$GRID") (vla-put-Alignment nw_txt acAlignmentMiddleLeft) (vla-put-Rotation nw_txt (angle (list (car ob_lst_pt) (cadr ob_lst_pt)) (list (caddr ob_lst_pt) (cadddr ob_lst_pt)))) (vla-put-TextAlignmentPoint nw_txt (vlax-3d-point pt_ins)) (and save_ucs (vla-put-activeUCS AcDoc save_ucs)) (and WCS (vla-delete WCS) (setq WCS nil)) (vla-EndUndoMark AcDoc) (prin1) )
Hors ligne
#23 Fri 05 May 2017 18:27
Re: [ACAD] Creer un carroyage en Lambert
Ca c'est de la maintenance de code par son créateur : même après quasi 6 ans de décalage avec sa dernière réponse, il répond au même sujet le jour même
Merci Bruno !
Hors ligne
#24 Fri 05 May 2017 21:40
- Patrice
- JeSuisCharlie
- Date d'inscription: 16 Sep 2005
- Messages: 4793
Re: [ACAD] Creer un carroyage en Lambert
Hello
YES Bruno est un Ardechois Coeur Fidèle !
Bon WE, GeoBye, Patrice
(Autodesk Expert Elite Team)
En ligne
#25 Mon 15 May 2017 11:19
- Patrice
- JeSuisCharlie
- Date d'inscription: 16 Sep 2005
- Messages: 4793
Re: [ACAD] Creer un carroyage en Lambert
Hello
1) J'utilise la Routine « ViewPort2Grid.lsp » de Bruno pour "carroyer" dans l'onglet Objet !
2) Mais si vous desirez carroyer directement sur le papier dans les Presentations alors j'utilise une autre routine provenant de ACAD CIVIL 201X ...
3) C'est la fameuse routine VLisp: C3D_CARROY
4) ATTENTION : C3D_CARROY utilise un fichier SHX (Me semble t-il !? Pas sur du tout en fait !) donc SVP il faut copier (pour etre "tranquille") les 2 fichiers LSP et SHX dans le coeur du ACAD 201X dans "C:\Program ... \ Autodesk ... \ AutoCAD ..." - Ainsi pas de probleme de chargement et/ou de securite !
5) Vous pouvez modifier AVANT le lancement, la variable TEXTSIZE qui controle la hauteur du texte des coordonnees ...
GeoBye, Pat
(Autodesk Expert Elite Team)
En ligne