Aller au contenu

Listing point Autocad


ayoubrq

Messages recommandés

Bonjour,

 

Le mieux c'est passer par un BLOC + ATTRIBUTS qui sera placé sur un calque précis !

 

Avec EXCEL on peut faire des merveilles avec un système de relation pour le choix du calque.

 

Mais comme tu es sur CIVIL, il doit certainement y avoir une fonction toute prête ?! Voir avec les spécialistes CIVIL...

 

Christian

  • Upvote 1

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Pas très précise la demande, comme évoqué par rebcao les solutions sont multiples (blocs, point3d...) ainsi que les importations dans Autocad.

Quelle est la source (type de fichier) des coordonnées?

 

Un exemple avec un fichier CSV sous la forme:

 

Numéro du point ; X du point ; Y du point ; Z du point

 

Ce qui suit te permettra l'import facilement

 

(defun c:readCSV ( / input f_open l_read num_data x_data y_data z_data naw_pt)
 (setq
   input (getfiled "Select a CSV file" "" "csv" 2)
   f_open (open input "r")
 )
 (while (setq l_read (read-line f_open))
   (setq
     num_data (atoi (substr l_read 1 (vl-string-position 59 l_read)))
     l_read (substr l_read (+ 2 (vl-string-position 59 l_read)))
     x_data (atof (substr l_read 1 (vl-string-position 59 l_read)))
     l_read (substr l_read (+ 2 (vl-string-position 59 l_read)))
     y_data (atof (substr l_read 1 (vl-string-position 59 l_read)))
     l_read (substr l_read (+ 2 (vl-string-position 59 l_read)))
     z_data (atof (substr l_read 1 (vl-string-position 59 l_read)))
     new_pt (list x_data y_data z_data)
   )
   (entmake
     (list
       '(0 . "POINT")
       '(100 . "AcDbEntity")
       (cons 8 "POINTS-3D")
       (cons 10 new_pt)
       '(210 0.0 0.0 1.0)
       '(50 . 0.0)
     )
   )
   (entmake
     (list
       '(0 . "TEXT")
       '(100 . "AcDbEntity")
       (cons 8 "NUM-POINTS")
       (cons 10 new_pt)
       (cons 40 (getvar "TEXTSIZE"))
       (cons 1 (itoa num_data))
       '(50 . 0.0)
       '(41 . 1.0)
       '(51 . 0.0)
       '(7 . "Standard")
       '(71 . 0)
       '(72 . 0)
       '(11 0.0 0.0 0.0)
       '(210 0.0 0.0 1.0)
       '(100 . "AcDbText")
       '(73 . 0)
     )
   )
 )
 (close f_open)
 (prin1)
)

 

Pour le tableau, j'avais publié sur un forum US ce qui suit (je le copie-colle tel quel):

(vl-load-com)
(defun c:points2cell ( / js AcDoc Space nw_style oldim oldlay ins_pt_cell h_t w_c lst_id-seg lst_pt n
                        obj dxf_10 nb nw_obj ename_cell n_row n_column)
 (princ "\nSelect points.")
 (while (null (setq js (ssget '((0 . "POINT")))))
   (princ "\nSelection empty, or is not a point!")
 )
 (setq
   AcDoc (vla-get-ActiveDocument (vlax-get-acad-object))
   Space
   (if (= 1 (getvar "CVPORT"))
     (vla-get-PaperSpace AcDoc)
     (vla-get-ModelSpace AcDoc)
   )
 )
 (cond
   ((null (tblsearch "LAYER" "Table-Points"))
     (vla-add (vla-get-layers AcDoc) "Table-Points")
   )
 )
 (cond
   ((null (tblsearch "STYLE" "Text-Cell"))
     (setq nw_style (vla-add (vla-get-textstyles AcDoc) "Text-Cell"))
     (mapcar
       '(lambda (pr val)
         (vlax-put nw_style pr val)
       )
       (list 'FontFile 'Height 'ObliqueAngle 'Width 'TextGenerationFlag)
       (list (strcat (getenv "windir") "\\fonts\\arial.ttf") 0.0 (/ (* 15.0 pi) 180) 1.0 0.0)
     )
     (command "_.ddunits"
       (while (not (zerop (getvar "cmdactive")))
         (command pause)
       )
     )
   )
 )
 (setq
   oldim (getvar "dimzin")
   oldlay (getvar "clayer")
 )
 (setvar "dimzin" 0) (setvar "clayer" "Table-Points")
 (initget 9)
 (setq ins_pt_cell (getpoint "\nLeft-Up insert point of table: "))
 (initget 6)
 (setq h_t (getdist ins_pt_cell (strcat "\nHigth text <" (rtos (getvar "textsize")) ">: ")))
 (if (null h_t) (setq h_t (getvar "textsize")) (setvar "textsize" h_t))
 (initget 7)
 (setq w_c (getdist ins_pt_cell "\nWidth of cells: "))
 (setq
   lst_id-seg '()
   lst_pt '()
   nb 0
 )
 (repeat (setq n (sslength js))
   (setq
     obj (ssname js (setq n (1- n)))
     dxf_10 (cdr (assoc 10 (entget obj)))
     lst_pt (cons dxf_10 lst_pt)
     nb (1+ nb)
     lst_id-seg (cons nb lst_id-seg)
   )
 )
 (mapcar
   '(lambda (p tx)
     (setq nw_obj
       (vla-addMtext Space
         (vlax-3d-point p)
         0.0
         tx
       )
     )
     (mapcar
       '(lambda (pr val)
         (vlax-put nw_obj pr val)
       )
       (list 'AttachmentPoint 'Height 'DrawingDirection 'InsertionPoint 'StyleName 'Layer 'Rotation)
       (list 5 h_t 5 p "Text-Cell" "Table-Points" 0.0)
     )
   )
   lst_pt
   lst_id-seg
 )
 (vla-addTable Space (vlax-3d-point ins_pt_cell) (+ 2 nb) 3 (+ h_t (* h_t 0.25)) w_c)
 (setq ename_cell (vlax-ename->vla-object (entlast)) n_row (1+ nb) n_column -1)
 (vla-SetCellValue ename_cell 0 0
   (vlax-make-variant
     (strcat "Summary of " (itoa (sslength js)) " POINTS")
     8
   )
 )
 (vla-SetCellTextStyle ename_cell 0 0 "Text-Cell")
 (vla-SetCellTextHeight ename_cell 0 0 (vlax-make-variant h_t 5))
 (vla-SetCellAlignment ename_cell 0 0 5)
 (foreach n
   (mapcar'list
     (append lst_id-seg '("N°"))
     (append (mapcar 'rtos (mapcar 'car lst_pt)) '("Coordinates X"))
     (append (mapcar 'rtos (mapcar 'cadr lst_pt)) '("Coordinates Y"))
   )
   (mapcar
     '(lambda (el)
       (vla-SetCellValue ename_cell n_row (setq n_column (1+ n_column))
         (if (or (eq (rtos 0.0) el) (eq (angtos 0.0) el)) (vlax-make-variant "_" 8) (vlax-make-variant el 8))
       )
       (vla-SetCellTextStyle ename_cell n_row n_column "Text-Cell")
       (vla-SetCellTextHeight ename_cell n_row n_column (vlax-make-variant h_t 5))
       (if (eq n_row 1)
         (vla-SetCellAlignment ename_cell n_row n_column 5)
         (vla-SetCellAlignment ename_cell n_row n_column 6)
       )
     )
     n
   )
   (setq n_row (1- n_row) n_column -1)
 )
 (setvar "dimzin" oldim) (setvar "clayer" oldlay)
 (prin1)
)

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Salut.

 

Pour l'import de points topo, il y a l'excellent InsTopo de Maître (gile)...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour merci pour vos réponse je m'explique d'avantage , je travail sur un petit projet routier sur C3D , a la fin de mon projet je devrai choisir des points sur l’extrémité de mon corridor et les affichés sur plan pour permettre une implantation facile a l’exécution ( nom ,X,Y) voici une image https://ibb.co/fs3HQR

 

Donc j'aimerai bien créer un nouveau Layout ( calque ) , qui contient des points posé par moi même sur dessin , et puis les extraire et les afficher sur un tableau comme sur l'image du plan imprimé

 

voici une autre image d'un projet qui n'es pas le mien plan d'implantation :https://ibb.co/icyHQR

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité