Aller au contenu

proprietes sur ploylignes 3D


Messages recommandés

Posté(e)

Est t'il possible sans passer par les attibuts de bloc, d'ajouter des proprietes sur une polyligne 3d pour la quelle je veux stocker un certains nombre d'informations.

J'ai bien essayer de donner des notes dans le panneau proprietes / donnees etendus, mais je n'arrive pas a recuperer les informations.

 

merci pour vos infos

Daniel

 

Posté(e)

 

Bonsoir

 

A mon avis il faut utiliser des bons vieux XDATA !!!

Cela permet de stocker jusqu'à 16 Ko d'Infos (Entiers, Réels, Textes, etc)

sur n'importe quel objet graphique AutoCAD.

Confère les routines XDATA.lsp & XDLIST.lsp du sous-catalogue .

 

Donc un soupçon de Lisp sera le bienvenu ... :)

(et bien sur un AutoCAD version "pleine")

 

Le Decapode

 

 

Autodesk Expert Elite Team

Posté(e)

"Con fere" étant latin ne prend pas d'accent mon cher ami ! (j'ai pas vérifié remarque)

 

Excuses Daniel, je voulais pas polluer le message mais remettre des pinces en place pour m'amuser, ca faisait plusieurs fois que j'en avais envie !

 

Les X-datas, c'est juste des groupes DXF qui se lisent avec assoc comme tout autre code de groupe.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

 

Bonjour Mr Tramber

 

Je sais que tu rèves (comme Christian) de me bouffer avec de la mayonnaise

avec un petit vin blanc ... :) Je vous conseille un Meursault ;)

 

ké ke je t'è fé ?

 

Le Decapode

 

Autodesk Expert Elite Team

Posté(e)

Un exemple de code, pour te montrer ce qu'il est possible de faire.

 

2 Fonctions que tu vas appeler en ligne de commande:

 

DANIELITO pour associer tes x-datas à une polyligne optimisée

 

I-DANIELITO pour afficher les données des x-datas de l'objet correspondant a ton application (ici nommée "DANIELITO"

 

Voilà comme base de départ.

 

NB: Ce qui faut bien garder à l'esprit, ce les x-datas peuvent contenir plusieurs fois le même code 1010 1040 1070 etc...

Donc pour extraire les données il faut les extraire dans l'ordre d'attribution pour retrouver ses petits. ;)

 

(defun c:danielito ( / js dxf_ent phi nb_vanne pente pt_haut pt_bas)
(if (null (tblsearch "appid" "DANIELITO"))
	(regapp "DANIELITO")
)
(while (not (setq js (ssget "_:S" '((0 . "LWPOLYLINE") (67 . 0) (410 . "Model") (100 . "AcDbPolyline"))))))
(setq dxf_ent (entget (ssname js 0)))
(initget 7)
(setq phi (getreal "\nDiametre buse?: "))
(initget 5)
(setq nb_vanne (getint "\nNombre de vanne?: "))
(initget 1)
(setq pente (getreal "\nPente en %?: "))
(initget 1)
(setq pt_haut (getpoint "\nPoint haut du reseau?: "))
(initget 1)
(setq pt_bas (getpoint "\nPoint bas du reseau?: "))
(entmod
	(append
		dxf_ent
		(list
			(list -3
				(list 
					"DANIELITO"
					(cons 1000 "RESEAUX TUYAUX")
					(cons 1002 "{")
					(cons 1040 phi)
					(cons 1070 nb_vanne)
					(cons 1040 pente)
					(cons 1010 pt_haut)
					(cons 1010 pt_bas)
					(cons 1002 "}")
				)
			)
		)
	)
)
(prin1)
)
(defun c:i-danielito ( / esel ename elist xd_list cnt10 cnt40 app_list app_sub_list xd_code xd_data )
(while
	(not (setq esel (entsel)))
)
(setq ename (car esel))
(redraw ename 3)
(setq elist (entget ename (list "DANIELITO")))
(if (not (setq xd_list (assoc -3 elist)))
	(princ "\nAucune donnée d'objet étendue n'est associée a cette polyligne.")
	(setq xd_list (cdr xd_list) cnt10 0 cnt40 0)
)
(while xd_list
	(setq app_list (car xd_list))
	(textscr)
	(princ "\nApplication enregistrée   : \t")
	(princ (car app_list))
	(setq app_list (cdr app_list))
	(while app_list
		(setq app_sub_list (car app_list))
		(setq xd_code (car app_sub_list))
		(setq xd_data (cdr app_sub_list))
		(cond
			((= 1010 xd_code)
				(cond
					((= cnt10 1)
						(setq cnt10 (1+ cnt10))
						(princ "\nPoint bas          : \t")
					)
					((= cnt10 0)
						(setq cnt10 (1+ cnt10))
						(princ "\nPoint haut         : \t")
					)
				)
				(princ
					(strcat 
						(rtos (car xd_data) 2 3)
						" , "
						(rtos (cadr xd_data) 2 3)
						" , "
						(rtos (caddr xd_data) 2 3)
					)
				)
			)
			((= 1040 xd_code)
				(cond
					((= cnt40 1)
						(setq cnt40 (1+ cnt40))
						(princ "\nPente en %                   : \t")
						(princ (rtos xd_data 2 3))
					)
					((= cnt40 0)
						(setq cnt40 (1+ cnt40))
						(princ "\nDiamètre du tuyau : \t")
						(princ (rtos xd_data 2 3))
					)
				)
			)
			((= 1070 xd_code)
						(princ "\nNombre de vannes : \t")
						(princ (itoa xd_data))
			)
		)
		(setq app_list (cdr app_list))
	)
	(setq xd_list (cdr xd_list))
)
(redraw ename 4)
(prin1)
)

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

Posté(e)

Très cher lecrabe,

 

Il y a un Bisontin qui manque aussi d'iode, et qui se ferait un plaisir de faire le plein avec quelque pince Descapodesque

 

:p

 

Mais avec le Vin Jaune fraîchement percé !!!

 

[Edité le 10/2/2006 par Maximilien]

Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier

Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To

GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office

 

PlaquetteDeplianteMars2024.pdf

Posté(e)
ké ke je t'è fé ?

 

Oh rien, c'est pas toi, juste mes cours de (lointain) latin !

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Merci a vous tous et particulierement a bonuscad.Le developpement est pratiquement termine.

 

Il s'agit d'un lips permettant d'executer une gaine rectangulaire suivant une polyligne 3d.

 

Ce programme permet en selection une polyligne3d de lancer une boite de dialogue qui calcule dimensions des gaines de ventilation a partir d'un debit et d'une vitesse (ou en donnant directement les dimensions) , de dessiner la gaine rectangulaire en suivant le profil de la polyligne. De plus les differantes valeurs sont affectées à la polyligne ce qui permet d'effacer la gaine,de modifier le profil de la polyligne et de relancer le programme qui va retrouver les anciennes valeurs de la gaine qui a été effacé pour la redessiner

 

Je metterai ce programme a disposition d'ici quelques jours

 

Salut a tous Daniel

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é