Aller au contenu

Transformer Objet cartographique ?


Messages recommandés

Posté(e)

Bonjour à tous

Est-il possible de transformer des objets cartographique( tout en gardant les données du Shape

d' ou proviennent les objets cartographique) en polylignes ou en blocs ?

Et si oui comment faire ?

Par avance mecri de votre aide

Bonne journée à  tous !

Posté(e)

Salut @mehdimacro,

Tu a deux manières d'importer un fichier Shape avec Autocad MAP 3D :

image.png.51d80f880afc4f23c201394789c18b92.png

 - soit en connecteur FDO (Connexion aux données) ce qui lie le Shape et te génère des "objets cartographique", et qui reste lié au fichier .shp, .shx ect...
 - ou alors avec MAPIMPORT qui insert en "dure" dans ton dessin les éléments (plus lié au fichier .shp .shx ect...) en temps que points/blocs/polyligne selon la nature des objets.

Espace de travail PLANIFICATION, ruban Insertion

Lispeur éternel débutant!
Autocad Map3D 2023
Covadis-Autopist 18.2

Posté(e)

Ca dépend de ce que tu veut en faire, si c'est pour de la visualisation, en FDO c'est plus simple.
Si tu veut travailler avec, il faut passer par du MAPIMPORT

 

Après, j'exploite pas trop la géomatique, le plus souvent je me contente de MAPIMPORT des plans de réseaux pour me faire des fichiers de compil de réseaux existants

  • Like 1

Lispeur éternel débutant!
Autocad Map3D 2023
Covadis-Autopist 18.2

  • 8 mois après...
Posté(e)

Bonjour,

Est il possible de récupérer une donnée d'objet pour la convertir en propriété?

je récupère des courbes de niveau en 2D (polylignes) mais avec une donnée Z (OD dans la boite de propriétés) et je voudrais transformer tout ça en polyligne 3D, avec l'élévation correspondant à ma donnée Z, forcément.

Merci de vos retours, ou pour n'importe quelle méthode me permettant de faire des MNT à partir des données RGE Alti 1m.

Posté(e)

Hello @albator44

Si tu as des Polylignes 2D (de type CN) au niveau ZERO avec en OD (Object Data) un champ numerique

qui est en fait l altitude Z, alors la routine Lisp "OD2DXF38" ci-apres est indispensable !

Merci @bonuscad / Bruno !

La Sante, Bye, lecrabe

 


;;
;; Routine: OD2DXF38 par BV pour Patrice B.
;; 
;; "Monter" en Z Altitude les Polylignes 2D (Les LWPOLYLINEs 2D ONLY !)
;; en fonction du Contenu d un champ OD de MAP 
;; indiquant le Z / Altitude de la Polyligne
;; 
;; Exemple CLASSIQUE : Polylignes (avec OD de MAP) = 
;;                     Courbes de Niveau provenant de l IGN ...
;; 
;; 
;; C le Code DXF 38 qui indique l ELEVATION de la Polyligne 2D 
;; 
;; --- Interrogation Entite/Objet en Lisp ---
;; Commande: (entget (car (entsel)) '("*"))
;; 

(vl-load-com) 

(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)
	)
) 

(defun ListBox (title msg keylab flag / tmp file dcl_id choice)
	(setq
		tmp (vl-filename-mktemp "tmp.dcl")
		file (open tmp "w")
	)
	(write-line
		(strcat "ListBox:dialog{label=\"" title "\";")
		file
	)
	(if (and msg (/= msg ""))
		(write-line (strcat ":text{label=\"" msg "\";}") file)
	)
	(write-line
		(cond
			((= 0 flag) "spacer;:popup_list{key=\"lst\";")
			((= 1 flag) "spacer;:list_box{key=\"lst\";")
			(T "spacer;:list_box{key=\"lst\";multiple_select=true;")
		)
		file
	)
	(write-line "}spacer;ok_cancel;}" file)
	(close file)
	(setq dcl_id (load_dialog tmp))
	(if (not (new_dialog "ListBox" dcl_id))
		(exit)
	)
	(start_list "lst")
	(mapcar 'add_list (mapcar 'cdr keylab))
	(end_list)
	(action_tile
		"accept"
		"(or (= (get_tile \"lst\") \"\")
			(if (= 2 flag)
				(progn
					(foreach n (str2lst (get_tile \"lst\") \" \")
						(setq choice (cons (nth (atoi n) (mapcar 'car keylab)) choice))
					)
					(setq choice (reverse choice))
				)
				(setq choice (nth (atoi (get_tile \"lst\")) (mapcar 'car keylab)))
			)
		)
		(done_dialog)"
	)
	(start_dialog)
	(unload_dialog dcl_id)
	(vl-file-delete tmp)
	choice
) 

(defun c:OD2DXF38 ( / js obj dxf_ent ename lst_tabl_def inc_key lst_def desc_od desc_tbl str) 

	(princ "\nSelectionnez les Polylignes 2D (avec OD de MAP) ... ") 

	(while
		(null
			(setq js
				(ssget
					(list
						'(0 . "*POLYLINE")
						(cons 67 (if (eq (getvar "CVPORT") 1) 1 0))
						(cons 410 (if (eq (getvar "CVPORT") 1) (getvar "CTAB") "Model")) 

;;;;;;;;;; Filtre pour les "Bonnes" Polylignes ;;;;;;;;;;
						'(-4 . "<NOT")
							'(-4 . "&")
							'(70 . 112)
						'(-4 . "NOT>") 
;;;;;;;;;; Filtre pour les "Bonnes" Polylignes ;;;;;;;;;;

					)
				)
			)
		)
		(princ "\nCe n est pas un objet valable pour cette fonction ! ")
	)
	(repeat (setq n (sslength js))
		(setq
			obj (ssname js (setq n (1- n)))
			dxf_ent (entget obj)
			ename (vlax-ename->vla-object obj)
		)
		(cond
			((ade_odgettables obj)
				(setq lst_tabl_def (mapcar 'ade_odtabledefn (ade_odgettables obj)) inc_key 0)
				(foreach n lst_tabl_def
					(foreach el n
						(if (listp (cdr el))
							(foreach sel (cdr el)
								(foreach msel sel
									(if (eq (car msel) "ColName")
										(setq lst_def (cons (cons (strcat "key" (itoa (setq inc_key (1+ inc_key)))) (cdr msel)) lst_def))
									)
								)
							)
						)
					)
				)
				(if (not desc_od)
					(setq desc_od (cdr (assoc (listbox "Donnee d Objet" "Choisir une Donnee d Objet " lst_def 1) lst_def)) desc_tbl nil)
				)
				(foreach n lst_tabl_def
					(if (assoc (cons "ColName" desc_od) (cdaddr n))
						(setq desc_tbl (cdar n))
					)
				)
				(cond
					(desc_tbl
						(setq str (ade_odgetfield obj desc_tbl desc_od 0))
						(cond
							((eq (type str) 'STR) (setq str (atof str)))
							((eq (type str) 'INT) (setq str (float str)))
						)
						(if (eq (cdr (assoc 0 dxf_ent)) "LWPOLYLINE") 

							(entmod (subst (cons 38 str) (assoc 38 dxf_ent) dxf_ent)) 

							(entmod (subst (cons 10 (list (car (cdr (assoc 10 dxf_ent))) (cadr (cdr (assoc 10 dxf_ent))) str)) (assoc 10 dxf_ent) dxf_ent)) 

						)
					)
				)
			)
			(T (princ "\nPas de Donnees d Objet (OD de MAP) attachees ! "))
		)
	)
	(prin1)
) 

 

 

 

Autodesk Expert Elite Team

Posté(e)

Bonjour,

 

Tu as la méthode proposé par @lecrabe.

Si tu lis un peu l'anglais, tu as cette méthode native avec AutoCAD Map : https://forums.autodesk.com/t5/autocad-map-3d-forum/contour-with-elevation-properties-cad-map-3d-to-autocad-dwg/m-p/8822441/highlight/true#M54596

Si tu veux installer mon plug-in, tu auras une autre méthode https://apps.autodesk.com/MAP3D/fr/Detail/Index?id=7146835859656784994&appLang=fr&os=Win64 , soit avec le fonction dédiée, soit avec la fonction de copie propriétés

 

Olivier

  • Upvote 1

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é