danielito Posté(e) le 9 février 2006 Posté(e) le 9 février 2006 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 infosDaniel
lecrabe Posté(e) le 9 février 2006 Posté(e) le 9 février 2006 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
Tramber Posté(e) le 9 février 2006 Posté(e) le 9 février 2006 "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 ./__\. (.°=°.)
lecrabe Posté(e) le 10 février 2006 Posté(e) le 10 février 2006 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
bonuscad Posté(e) le 10 février 2006 Posté(e) le 10 février 2006 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
BIM G CO Posté(e) le 10 février 2006 Posté(e) le 10 février 2006 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
Tramber Posté(e) le 10 février 2006 Posté(e) le 10 février 2006 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 ./__\. (.°=°.)
danielito Posté(e) le 15 février 2006 Auteur Posté(e) le 15 février 2006 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
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant