Classement
Contenu populaire
Affichage du contenu avec la meilleure réputation le 16/01/2024 dans toutes les zones
-
Bonjour @ZCAD Avec la routine fournie par @lecrabe c'est sûr que ça va être plus robuste qu'avec le LSP que tu as fourni qui est un peu "léger". Venant de @(gile) tu peux t'attendre à du "peaufiné". Je prends les devants avant que tu charges le LSP, la configuration que tu devras appliquer est celle-ci : Amicalement2 points
-
Je joins la même fonction, mais celle ci est en Français: plus adapté pour ce forum... J'en ai profité pour rajouter les échelles suggéré par @lecrabe La première utilisation sera peut être déroutante. Il ne faut pas hésiter à bouger le curseur pour visualiser les formats virtuel de A4 assemblés à l'échelle proposée (ceci pour utiliser une plieuse de plan et pouvoir placer un page de garde cohérente au pliage) , et de même pour l'emplacement et/ou la rotation si tu veux un positionnement plus fin. La commande est validée dès que tu clique le coin haut droit. carroyage.lsp2 points
-
Bonjour, La longueur de tes lignes sont toutes de 0.05? Lorsque tu lance la commande "Entité de longueur nul => point", tu a une option "Longueur" qui devrais résoudre ton problème si tu passe la valeur à 0.06 (pour être sur de prendre tout ce qui est en dessous). LGZEROTOPOINT COVADIS 18.1a : transformation d'entités de longueur nulle en points. Tolérance: égalité des coordonnées à 0.001 m près. Sélectionnez les objets ou [caLques/TOut le dessin/LOngueur] : LO Entrez une valeur de tolérance définissant des coordonnées différentes <0.001> : .06 Sélectionnez les objets ou [caLques/TOut le dessin/LOngueur] : Spécifiez le coin opposé: 1 trouvé(s) Sélectionnez les objets ou [caLques/TOut le dessin/LOngueur] : 1 entité sélectionnée. ------------------------------------------------------------------------------ ENTITES LG=0 : Sélectionnées Conservées Transformées Supprimées ------------------------------------------------------------------------------ POLYLIGNES 2D : 0 0 0 0 POLYLIGNES 3D : 0 0 0 0 LIGNES : 1 0 1 0 ARCS : 0 0 0 0 CERCLES : 0 0 0 0 ------------------------------------------------------------------------------ TOTAL : 1 0 1 02 points
-
On peut rester dans le système de coordonnées que l'on veut. Néanmoins une recommandation émise par le ministère de l'époque et que les intervenants adoptent le système de projection RGF93 pour toute production numérique. Et si tu veux exploiter par exemple le cadastre, le scan25, la bd_ortho de l'IGN, ceux ci sont fourni en RGF93, donc le choix de cette projection peu faciliter l'échange de fichiers avec d'autres intervenants et homogénéisé l'ensemble de la production. Cela évite aussi des déboires avec des Xref attachés qui ne serait pas dans le même système. Pour moi c'est un bon choix mais il n'est pas obligatoire... NB:Pour ma part j'ai pris l'habitude de mettre en préfixe de mes noms de fichier RGF93_nom du fichier.dwg quand ceux-ci sont référencé avec ce système, comme ça n'importe qui sait à quel système il doit faire référence si il veut exploiter le fichier (plus simple que de chercher à déterminer celui-ci d'après les coordonnées, bien que se soit possible)1 point
-
Coucou, Au vue des coordonnées présentes dans le fichier TXT, il semblerait que celle-ci correspondent à des coordonnées GPS (longitude/latitude). Donc je ne sais pas s'il faut prévoir une conversion des coordonnées sur un système de coordonnées RGF ou autre. Car présentement il me semble que tous les points seront à quelques centième d'unité seulement les uns des autres... Mais peut-être que je dit des bêtises, auquel cas je suis désolée ^^' Bisous, Luna1 point
-
Hello @ZCAD Voici une routine "INSTOPO"du Grand Maitre Gilles qui insere au choix : -- un Bloc TCPOINT (avec 2 Attributs MAT & ALT) -- un Point -- ou les DEUX ( Si le Bloc TCPOINT n existe pas dans ton DWG, il sera cree "a la volee" ) depuis un fichier TXT, CSV, etc ... RAPPEL : Comme tu n as rien derriere tes Coords XY : MAT et ALT seront vides ... J ai teste sur ton fichier XY TXT, ca marche parfaitement ... Cela te convient il ?? Bye, lecrabe ;;; ;;; http://gile.pagesperso-orange.fr/LISP/InsTopo.lsp ;;; ;;; INSTOPO par GC / Gilles ;;; ;;; Insère le bloc "PointBloc" sur les points décrit dans un fichier ascii (.txt .csv ou autre) ;;; ;;; Modification : possibilité d'insérer un point 02/12/2009 ;;; (defun c:InsTopo (/ *error* makeblock filename tmp file layers clay ptlay blklay data-sep dec-sep mat-p mat alt scl point bloc dcl_id space line coords matric insert ) (vl-load-com) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object))) ) (or *blocks* (setq *blocks* (vla-get-Blocks *acdoc*))) ;;---------------------------------------------------;; (defun *error* (msg) (or (= msg "Fonction annulée") (princ (strcat "Erreur: " msg)) ) (and file (close file)) (vla-EndUndoMark *acdoc*) (princ) ) ;;---------------------------------------------------;; ;; MakeBlock ;; Crée le bloc PointBloc (defun makeblock (/ block) (vl-load-com) (setq block (vla-add *blocks* (vlax-3d-point '(0. 0. 0.)) "TCPOINT" ) ) (vla-put-Layer (vla-addPoint block (vlax-3d-point '(0. 0. 0.))) "0" ) (vla-put-Layer (vla-addAttribute block 2.5 acAttributeModePreset "" (vlax-3d-point '(1. 0.5 0.)) "MAT" "" ) "0" ) (vla-put-Layer (vla-addAttribute block 2.5 acAttributeModePreset "" (vlax-3d-point '(1. -3. 0.)) "ALT" "" ) "0" ) ) ;;---------------------------------------------------;; (if (setq filename (getfiled "Selectionner un fichier point " "" "txt;csv;*" 0 ) ) (progn ;; Création du fichier DCL temporaire (setq tmp (vl-filename-mktemp "Tmp.dcl") file (open tmp "w") ) (write-line "InsTopo :dialog{label=\"InsTopo\"; :boxed_row{label=\"Format du fichier\"; :boxed_radio_column{label=\"Separateur de donnees\";key=\"data-sep\"; :radio_button{label=\"Virgule\";key=\"44\";value =\"1\";} :radio_button{label=\"Point-virgule\";key =\"59\";} :radio_button{label=\"Espace\";key=\"32\";} :radio_button{label=\"Tabulation\";key =\"9\";}} :column{ :boxed_radio_column{label=\"Separateur décimal\";key=\"dec-sep\"; :radio_button{label=\"Virgule\";key =\"com\";} :radio_button{label=\"Point\";key=\"dot\";value=\"1\";}} :boxed_radio_column{label=\"Matricule\";key=\"mat-p\"; :radio_button{label=\"Present\";key=\"present\";value=\"1\";} :radio_button{label=\"Absent\";key=\"absent\";}}}} :boxed_column{label=\"Point\"; :row{ :toggle{label=\"Inserer des points\";key=\"point\";value=\"1\";} :popup_list{label=\"Calque\";key =\"ptlay\";edit_width = 24;}} spacer;} :boxed_column{label=\"Bloc\"; :toggle{label=\"Inserer de blocs\";key=\"bloc\";value=\"1\";} :row{ :boxed_column{label=\"Attributs\"; :toggle{label=\"Matricule\";key=\"mat\";value=\"1\";} :toggle{label=\"Altitude\";key=\"alt\";value=\"1\";}} spacer; :column{spacer; :popup_list{label=\"Calque\";key =\"blklay\";edit_width = 24;} :edit_box{label=\"Echelle \";key=\"scl\";value=\"1.0\";fixed_width=true;} spacer;}}} ok_cancel;}" file ) (close file) (vlax-for l (vla-get-Layers *acdoc*) (setq layers (cons (vla-get-Name l) layers)) ) (setq layers (vl-sort layers '<) clay (getvar "CLAYER") ptlay clay blklay clay data-sep "44" dec-sep "dot" mat-p "present" mat "1" alt "1" scl 1.0 point T bloc T ) (setq dcl_id (load_dialog tmp)) (if (not (new_dialog "InsTopo" dcl_id)) (exit) ) (start_list "ptlay") (mapcar 'add_list layers) (end_list) (start_list "blklay") (mapcar 'add_list layers) (end_list) (set_tile "ptlay" (itoa (vl-position clay layers))) (set_tile "blklay" (itoa (vl-position clay layers))) (foreach k (list "data-sep" "dec-sep" "mat-p" "mat" "alt") (action_tile k "(set (read $key) $value)") ) (action_tile "point" "(if (= \"1\" $value) (progn (setq point T) (mode_tile \"ptlay\" 0) ) (progn (setq point nil) (mode_tile \"ptlay\" 1) ) )" ) (action_tile "bloc" "(if (= \"1\" $value) (progn (setq bloc T) (mode_tile \"blklay\" 0) (mode_tile \"mat\" 0) (mode_tile \"alt\" 0) (mode_tile \"scl\" 0) ) (progn (setq bloc nil) (mode_tile \"blklay\" 1) (mode_tile \"mat\" 1) (mode_tile \"alt\" 1) (mode_tile \"scl\" 1) ) )" ) (action_tile "ptlay" "(setq ptlay (nth (atoi $value) layers))") (action_tile "blklay" "(setq blklay (nth (atoi $value) layers))") (action_tile "scl" "(setq scl (distof $value)) (while (or (not scl) (<= scl 0)) (alert \"Nécessite un nombre réel strictement positif\") (setq scl 1.0) (set_tile \"scl\" \"1.0\") (mode_tile \"scl\" 2))" ) (action_tile "cancel" "(setq data-sep nil) (done_dialog 0)") (action_tile "accept" "(done_dialog 1)") (start_dialog) (unload_dialog dcl_id) (vl-file-delete tmp) (if data-sep (progn (vla-StartUndoMark *acdoc*) (and (vl-catch-all-error-p (vl-catch-all-apply 'vla-item (list *blocks* "TCPOINT") ) ) (makeblock) ) (setq space (vla-get-ModelSpace *acdoc*) file (open filename "r") ) (while (setq line (read-line file)) (setq coords (str2lst line (chr (atoi data-sep)))) (if (= mat-p "present") (setq matric (car coords) coords (cdr coords) ) (setq matric nil) ) (if (= dec-sep "com") (setq coords (mapcar '(lambda (x) (read (vl-string-translate "," "." x)) ) coords ) ) (setq coords (mapcar 'read coords)) ) (setq coords (list (car coords) (cadr coords) (cond ((caddr coords)) (T 0.0) ) ) ) (if (vl-every 'numberp coords) (progn (if point (vla-put-Layer (vla-AddPoint space (vlax-3d-point coords)) ptlay ) ) (if bloc (progn (setq insert (vla-InsertBlock space (vlax-3d-point coords) "TCPOINT" scl scl scl 0.0 ) ) (vla-put-Layer insert blklay) (foreach att (vlax-invoke insert 'getAttributes) (if (and (= (vla-get-TagString att) "MAT") matric (= mat "1") ) (vla-put-TextString att matric) ) (if (and (= (vla-get-TagString att) "ALT") (= alt "1") ) (vla-put-TextString att (rtos (caddr coords))) ) ) ) ) ) ) ) (close file) (vla-EndUndoMark *acdoc*) ) ) ) ) (princ) ) ;; str2lst ;; Transforme un chaine avec séparateur en liste de chaines ;; ;; Arguments ;; str : la chaine à transformer en liste ;; sep : le séparateur ;; ;; Exemples ;; (str2lst "a b c" " ") -> ("a" "b" "c") ;; (str2lst "1,2,3" ",") -> ("1" "2" "3") ;; (mapcar 'read (str2lst "1,2,3" ",")) -> (1 2 3) (defun str2lst (str sep / pos) (if (setq pos (vl-string-search sep str)) (cons (substr str 1 pos) (str2lst (substr str (+ (strlen sep) pos 1)) sep) ) (list str) ) )1 point
-
Bonjour @ZCAD Tu souhaites apprendre le langage pour être autonome ou tu veux qu'on te livre un truc qui fonctionne ? Amicalement1 point
-
1 point
-
Bonjour, tu vas trouver ton bonheur du coté du menu COV.EDITION et ensuite dans Points Topographiques.1 point
-
Hello Mais c DEBILE ces Lignes 2D dont la Longueur = 5 cm Le vrai Point, c au Depart ou a la Fin de la Ligne ? Si tu traces une Ligne du Point de depart de la ligne au Point d insertion du MTEXT, est ce TOUJOURS la MEME longueur et le MEME angle ? -- En theorie comme le dis SI BIEN Vincent, "LGZEROTOPOINT" devrait convenir !? Bye, lecrabe1 point
-
Hello Et voici la routine "DIM-GRID" de Bruno ( @bonuscad ) ... SVP tu nous signales si c OK sur ton AutoCAD LT 2024 et si cela te convient !? Bye, lecrabe ;; ;; https://cadxp.com/topic/49297-un-carroyage/page__pid__295829#entry295829 ;; ;; Routine: DIM-GRID par Bonuscad ;; ;; Dessin de carroyage Lambert ;; ;; ;; ---- Demande: SVP comment ajouter les Echelles a TA Liste : 150 , 400 , 1500 , 4000 , 15000 ;; ;; A la ligne 54 ou tu as: ;; l_scale '(1.0 1.25 2.0 2.5 5.0 7.5) ;; tu la passes a: ;; l_scale '(1.0 1.25 1.5 2.0 2.5 4.0 5.0 7.5) ;; ;; C'est la liste unitaire des échelles, donc quand tu parle de 15000, c'est la même que 150 (ou 15 ou 1.5) ;; En appuyant sur "+", dès que tu arrives à la fin de la liste (un multiple de 7.5) , ;; tu retournes au début de la liste en incrémentant avec un facteur de 10 et avec "-" avec un facteur de 0.1 ;; Le code propose une échelle qui est calculée en conséquence d'un A4 suivant ton hauteur de vue actuelle (variable "VIEWSIZE"), ;; donc : CONSEIL, ne pas trop s'écarter de l'échelle proposée au départ sous peine d'avoir un quadrillage très serré ;; ou à l'inverse non visible car trop écarté. Passer par exemple de 7500000 à 7500 va donner un quadrillage très serré. ;; Le mieux est de lancer la routine lorsque la partie que tu désires quadriller et visible entièrement à l'écran ;; et de rester dans l'ordre de grandeur proposé 10, 100, 1000, 10000 etc ... ;; (vl-load-com) (defun des_vec (lst col / lst_sg) (setq lst_sg (list (cadr lst) (car lst))) (setq lst (cdr lst)) (while lst (if (cadr lst) (setq lst_sg (cons (cadr lst) (cons (car lst) lst_sg))) (setq lst_sg (cons (last lst_sg) (cons (car lst) lst_sg))) ) (setq lst (cdr lst)) ) (setq lst_sg (cons col lst_sg)) (grvecs lst_sg) ) (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:DIM-GRID ( / unit_draw AcDoc Space UCS save_ucs WCS dx_u hview old_snapang pt_ins dx dy pt_tmp ang l_scale format_scale coeff key pt_key s_ang nw_style f_pat nw_pl ech htx nw_pl_out nw_pl_in hatch_out hatch lst_pt str ori_txt nw_txt) (if (or (eq (getvar "USERS5") "") (not (eq (substr (getvar "USERS5") 1 2) "qz"))) (setvar "USERS5" (strcat "qz" (itoa (setq unit_draw 1000)))) (setq unit_draw (atoi (substr (getvar "USERS5") 3))) ) (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 dx_u) (setq dx_u 210.0)) (setq hview (getvar "VIEWSIZE") old_snapang (getvar "SNAPANG") pt_ins (list (- (car (getvar "VIEWCTR")) (* hview 0.5)) (- (cadr (getvar "VIEWCTR")) (* hview 0.5))) dx dx_u dy (* dx_u (sqrt 2)) pt_tmp pt_ins ang (getvar "SNAPANG") ;; l_scale '(1.0 1.25 2.0 2.5 5.0 7.5) l_scale '(1.0 1.25 1.5 2.0 2.5 4.0 5.0 7.5) ;; Echelles supplementaires format_scale (car l_scale) coeff 1.0 ) (if (> (fix (/ hview dy)) 3) (while (> (fix (/ hview dy)) 3) (foreach value l_scale (if (> (fix (/ hview dy)) 3) (setq format_scale value dx (* dx_u format_scale) dy (* dx_u (sqrt 2) format_scale)) ) ) (if (> (fix (/ hview dy)) 3) (setq coeff (* coeff 10.0) l_scale (mapcar '(lambda (x) (* x coeff)) l_scale) format_scale (car l_scale) ) ) ) ) (if (< (fix (/ hview dy)) 1) (while (< (fix (/ hview dy)) 1) (foreach value (reverse l_scale) (if (< (fix (/ hview dy)) 1) (setq format_scale value dx (* dx_u format_scale) dy (* dx_u (sqrt 2) format_scale)) ) ) (if (< (fix (/ hview dy)) 1) (setq coeff (* coeff 0.1) l_scale (mapcar '(lambda (x) (* x coeff)) l_scale) format_scale (last l_scale) ) ) ) ) (princ (strcat "\nSpecify up rigth corner or: [P] for new Position of down left corner,[R] for make Rotate, [+/-] change scale <" (rtos (* unit_draw format_scale) 2 3) ">: ")) (while (and (setq key (grread T 4 0)) (/= (car key) 3)) (cond ((eq (car key) 5) (setq pt_key (cadr key)) (redraw) (setq dx (+ (* (- (car pt_key) (car pt_ins)) (cos ang)) (* (- (cadr pt_key) (cadr pt_ins)) (sin ang))) dy (- (* (- (cadr pt_key) (cadr pt_ins)) (cos ang)) (* (- (car pt_key) (car pt_ins)) (sin ang))) ) (des_vec (list (list (car pt_ins) (cadr pt_ins)) (list (+ (car pt_ins) (* dx (cos ang))) (+ (cadr pt_ins) (* dx (sin ang)))) (setvar "LASTPOINT" (list (+ (car pt_ins) (- (* dx (cos ang)) (* dy (sin ang)))) (+ (cadr pt_ins) (+ (* dy (cos ang)) (* dx (sin ang)))) ) ) (list (- (car pt_ins) (* dy (sin ang))) (+ (cadr pt_ins) (* dy (cos ang)))) ) 3 ) ) ((or (eq (cadr key) 114) (eq (cadr key) 82)) (initget 0) (setq s_ang (getorient pt_ins (strcat "\nNew angle<" (angtos (getvar "SNAPANG")) ">: " ) ) ) (if (not s_ang) (setq s_ang ang)) (if (and (> s_ang (/ pi 2)) (<= s_ang (/ (* 3 pi) 2))) (setq ang (+ s_ang pi)) (setq ang s_ang) ) (setvar "SNAPANG" ang) (princ (strcat "\nSpecify up rigth corner or: [P] for new Position of down left corner,[R] for make Rotate, [+/-] change scale <" (rtos (* unit_draw format_scale) 2 3) ">: ")) ) ((or (eq (cadr key) 112) (eq (cadr key) 80)) (initget 9) (setq pt_ins (getpoint "\nSpecify down left corner: ")) (setq pt_ins (list (car pt_ins) (cadr pt_ins))) (princ (strcat "\nSpecify up rigth corner or: [P] for new Position of down left corner,[R] for make Rotate, [+/-] change scale <" (rtos (* unit_draw format_scale) 2 3) ">: ")) ) ((eq (cadr key) 43) (setq format_scale (cadr (member format_scale l_scale))) (if (not format_scale) (setq format_scale (car (setq l_scale (mapcar '(lambda (x) (* x 10.0)) l_scale))))) (setq dx (* dx_u format_scale) dy (* dx_u (sqrt 2) format_scale)) (princ (strcat "\nSpecify up rigth corner or: [P] for new Position of down left corner,[R] for make Rotate, [+/-] change scale <" (rtos (* unit_draw format_scale) 2 3) ">: ")) ) ((eq (cadr key) 45) (setq format_scale (cadr (member format_scale (reverse l_scale)))) (if (not format_scale) (setq format_scale (last (setq l_scale (mapcar '(lambda (x) (* x 0.1)) l_scale))))) (setq dx (* dx_u format_scale) dy (* dx_u (sqrt 2) format_scale)) (princ (strcat "\nSpecify up rigth corner or: [P] for new Position of down left corner,[R] for make Rotate, [+/-] change scale <" (rtos (* unit_draw format_scale) 2 3) ">: ")) ) ) ) (princ "\n") (redraw) (if (not (tblsearch "STYLE" "$DIM-GRID")) (progn (setq nw_style (vla-add (vla-get-textstyles AcDoc) "$DIM-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" "DIM-GRID")) (vlax-put (vla-add (vla-get-layers AcDoc) "DIM-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-invoke Space 'AddLightWeightPolyline (append pt_ins (polar pt_ins (+ (getvar "SNAPANG") (* pi 0.5)) (* (distance pt_ins (getvar "LASTPOINT")) (sin (- (angle pt_ins (getvar "LASTPOINT")) (getvar "SNAPANG"))))) (list (car (getvar "LASTPOINT")) (cadr (getvar "LASTPOINT"))) (polar pt_ins (getvar "SNAPANG") (* (distance pt_ins (getvar "LASTPOINT")) (cos (- (angle pt_ins (getvar "LASTPOINT")) (getvar "SNAPANG"))))) ) ) ech (* unit_draw format_scale) htx (/ ech 500.0) ) (vla-put-Closed nw_pl 1) (vla-put-layer nw_pl "DIM-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 "DIM-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 "DIM-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 "DIM-GRID") (vla-put-StyleName nw_txt "$DIM-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) (getvar "SNAPANG")) (* htx 10))) (setq nw_txt (vla-AddText Space (strcat " Echelle 1/" (rtos ech 2 0)) (vlax-3d-point pt_ins) (* 2 htx))) (vla-put-layer nw_txt "DIM-GRID") (vla-put-StyleName nw_txt "$DIM-GRID") (vla-put-Alignment nw_txt acAlignmentMiddleLeft) (vla-put-Rotation nw_txt (getvar "SNAPANG")) (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) (setvar "SNAPANG" old_snapang) (prin1) )1 point
-
Hello Tu peux utiliser ce qui est fourni avec AutoCAD CIVIL sur ton AutoCAD, ACAD MAP, ACAD Archi, etc ... Routine Lisp : C3D_CARROY Et il faudra ajouter la Police "C3D.shx" dans tes Fonts/Polices AutoCAD ... SVP tu nous signales si c OK sur ton AutoCAD LT 2024 et si cela te convient !? Bruno ( @bonuscad ) a aussi developpe un excellent Lisp qui fait un joli Carroyage mais je ne l ai pas sous la main a l instant T ! Belle Annee 2024, La Sante, Bye, lecrabe C3D_CARROY___SHX.zip1 point
