Aller au contenu

Plan topo : mettre "ALT" en position Z (autocad 2021)


edouareo

Messages recommandés

Bonjour à tous, 

Je suis nouveau ici... Je sais que la question que je vais poser à déjà été évoquée dans d'autre pages, mais je n'ai pas réussit à exploiter les réponses pour l'instant...   

Je suis architecte. J'utilise Autocad 2021. J'ai reçu un plan topographique d'une parcelle pour un projet projet. 

Les points topo on une position Z = 0. Leur nom est "TCPOINT". Leur altitude est renseigné dans leur attribut ("ALT").

J'ai besoin de faire passer passer la valeur d'attribut "ALT" à la position Z. L'objectif est ensuite de faire ensuite une 3d de la parcelle. 

J'ai mis un fichier avec mes point topo en lien si jamais cela peut aider (en cad2013). J'espère avoir été compréhensible.  

Je vous remercie d'avance d'avoir pris le temps de me lire, 

Edouard

topo.dwg

Lien vers le commentaire
Partager sur d’autres sites

Autrement, juste pour répondre à la demande ci-dessus je peux proposer ces quelques lignes :

(defun c:TOPOALT (/ jsel i name n ALT pt)
  (and
    (or
      (setq jsel (ssget "_I" '((0 . "INSERT") (2 . "TCPOINT") (66 . 1))))
      (setq jsel (ssget '((0 . "INSERT") (2 . "TCPOINT") (66 . 1))))
      (setq jsel (ssget "_X" '((0 . "INSERT") (2 . "TCPOINT") (66 . 1))))
    )
    (repeat (setq n 0 i (sslength jsel))
      (setq
        name (ssname jsel (setq i (1- i)))
        pt (cdr (assoc 10 (entget name)))
        ALT (atof (getpropertyvalue name "ALT"))
      )
      (if
        (entmod
          (subst
            (cons 10 (list (car pt) (cadr pt) ALT))
            (assoc 10 (entget name))
            (entget name)
          )
        )
        (setq n (1+ n))
        n
      )
    )
    (princ (strcat "\nUn total de " (itoa n) "/" (itoa (sslength jsel)) " blocs TCPOINT ont été modifié avec succès"))
  )
  (princ)
)

Tu n'auras juste pas les fonctionnalités d'export CSV, d'utilisation d'autres blocs que TCPOINT, etc... que peut fournir ALTPOINT 😉

EDIT: Bien évidemment, la concision de @(gile) est remarquable et tellement logique ^^"

Bisous,
Luna

Modifié par Luna
Lien vers le commentaire
Partager sur d’autres sites

Salut,

Depuis ce sujet.

(defun c:PTALT (/ ss i blk pt)
  (if (setq ss (ssget "_X" '((0 . "INSERT") (2 . "TCPOINT") (410 . "Model"))))
    (repeat (setq i (sslength ss))
      (setq blk	(ssname ss (setq i (1- i)))
	    pt	(getpropertyvalue blk "Position")
      )
      (setpropertyvalue blk "Position" (list (car pt) (cadr pt) (atof (getpropertyvalue blk "ALT"))))
    )
  )
  (command-s "_attsync" "_name" "TCPOINT")
  (princ)
)

 

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

je ne sais pas si les programmes proposés par Lunas et (gile) permettent d'éliminer de la sélection les blocs en fonction d'une plage d'altitude, mais il y a 10 points à l'altitude zéro. 

 

Bon courage.

Erased

 

"Le risque de prendre une mauvaise décision n'est rien comparé à la terreur de l'indécision"

Maimonide.

Lien vers le commentaire
Partager sur d’autres sites

Je complète la réponse d'Erased : 11 points à Z=0 et ces même 11 points ont leurs attributs ALT absent de leur définition de bloc : il faut donc synchroniser les blocs. J'espère que tu as les lignes de ruptures de ce levé TN. → bon courage !

Lien vers le commentaire
Partager sur d’autres sites

@Luna

Merci beaucoup également ! 

Pour le lisp "TOPOALT" cela ne marchait que pour la moitié des points ! trop bizarre ! 

Pour la commande ALTPOINT : CA MARCHE !! 1000 merci !!! Il faut pas faire entrer directement mais TCpoint. 

 

@Curlygoth 

Merci également de ta réactivité mais je me sentais pas trop de me lancer la dedans et du coup le pb est résolu... Bonne journée !

Lien vers le commentaire
Partager sur d’autres sites

@Minocia @Erased

 

Merci de vos réponses... Effectivement j'ai vu pour ces 11 points... Je pensais les supprimer car sur 650 points ça fait pas perdre beaucoup de précision sur l'ensemble du terrain.

Par contre quand tu me parle de synchronisation de blocs et de lignes de ruptures tu me parle chinois... 

Edouard 

Lien vers le commentaire
Partager sur d’autres sites

Lignes de rupture (de pente), ligne d'arête,... Ce sont des lignes qui indiquent aux logiciels des obstacles comme des murs, des bordures de trottoirs, des talus, des fossés,... et qui doivent impérativement être prises en compte pour obtenir un MNT juste et précis. Par défaut, lors de la triangulation initiale, les logiciels relient les points 3D par trois (triangles) en prenant les plus proches ; il faut donc ensuite indiquer les "limites" à ne pas franchir pour que la modélisation restitue la réalité du relief du terrain.

Synchroniser les blocs permet de leur ré-affecter des attributs, s'il en avait au départ bien sûr, afin de pouvoir les utiliser pour modéliser le terrain.

Erased

 

"Le risque de prendre une mauvaise décision n'est rien comparé à la terreur de l'indécision"

Maimonide.

Lien vers le commentaire
Partager sur d’autres sites

@edouareo, si je ne me trompe pas pour ALTPOINT, faire directement ENTER prends la valeur TCPOINT (ou TCPOINT*) par défaut si aucun autre bloc n'a été renseigné ^^"
Tu peux également voir du côté de l'option PAramètres si jamais tu veux éditer un fichier CSV pour justement voir les points ayant des soucis ou non (avec la liste des matricules).

@Erased, la fonction (atof) permet de renvoyer 0.0 (contrairement à (distof) qui renvoie nil) si jamais la chaîne de caractères renseignée dans l'attribut "ALT" ne correspond pas à l'écriture d'un nombre (donc si la chaîne est vide, ou bien autre chose qu'un nombre est renseigné). Donc s'il reste encore des Z=0.0 après utilisation c'est justement que tous les blocs à 0.0 sont des blocs ayant une erreur de renseignement au niveau de l'attribut "ALT" 😉

Bisous,
Luna

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

@Erased

 

Ok merci je comprends un peu mieux. Pour l'instant je suis passer de autocad à Revit puis à sketchup, en virant tout ce qui n'était pas des point topo dans le fichier DWG du géomètre. 

Si tu as quelque billes pour identifier les lignes de rupture, les lignes d'arrête etc. dans le fichier original, et comment les exploiter, je suis preneur.. 

Pour moi à part ces point topo, il n'y avait que de simple polyligne sans attributs ni position dans le fichier originel. 

Edouard

Lien vers le commentaire
Partager sur d’autres sites

Non je ne peux pas t'aider pour les lignes d'arête : dans le fichier que tu as partagé il n'y a que les bloc qui représentent les points levés sur le TN, aucun autre dessin.

Tu parles de simples polylignes, peut-être qu'elles représentent les lignes de rupture de pente.

Sans indication de la position de ces liges de rupture de pente par la personne qui a effectué le levé, il est difficile voir impossible de les prendre en compte.

Erased

 

"Le risque de prendre une mauvaise décision n'est rien comparé à la terreur de l'indécision"

Maimonide.

Lien vers le commentaire
Partager sur d’autres sites

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é