Aller au contenu

Créér une fenêtre personalisé? (ou un champs)


Messages recommandés

Posté(e)

Bonjour,

 

je me demande s'il est possible sous Autocad de se créér une fenêtre avec les champs que l'on souhaite, ou alors en rajouter à des fenêtre existantes.

 

Par exemple je souhaiterai rajouter à la fenêtre propriété un champs "Surface" qui soit en hectare.

 

Est ce que c'est possible?

Merci d'avance.

Posté(e)

Bonjour à toutes et tous,

 

personne ne s'est jamais penché dessus?

 

SI !

 

Fais une recherche sur le forum,...

 

J'avais même adapté le "tampon" de bonuscad avec des champs fenêtres,...

 

Désolé, pas le tps de chercher pour le moment,...

 

Mais il va falloir que tu développes un peu car je ne vois pas bien le rapport entre la taille de la fenêtre et une contenance en Ha,Ares, Ca ????

Civil 3D 2025 - COVADIS_18.3b

https://www.linkedin...3%ABt-95313341/

Posté(e)

Merci pour ta réponse lili.

J'avais tenté une recherche mais je me perdais un peu dans les résultats... Je vais retenter.

 

En fait pas de rapport entre la taille de la fenêtre et ce que je souhaite.

 

J'aimerai par exemple dans ma fenêtre propriété rajouter un champs surface qui me donne la valeur de mon objet selectionné en hectares. Donc sur le principe je cherche à savoir comment on crée un champs dans une fenêtre d'Autocad (la fenêtre propriété par ex) et comment on attribut la valeur qu'il renvoie.

 

J'espère que vous voyez mieux. Sinon dites moi je ferais un schéma ou un imprim' ecran.

Posté(e)

Bonjour,

 

J'avais proposé une adaptation d'un lisp de patrick_35 pour l'écriture des surfaces au format h, a, ca -> ici

 

De là a le faire apparaitre dans la fenêtre de propriété, à part peut être avec les od de map...

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

Posté(e)

Ok merci j'étais passé à côté de ce lisp.

 

L'idée de le mettre dans le champ d'une fenêtre c'est par ce que quand on importe via le menu map des données au format SIG par exemple Autocad crée de nouveau champ renseignés dans la fenêtre propriétés.

 

C'est pour ça que je me demandais si quelqu'un avait déjà creusé cette possibilité.

Posté(e)

Salut,

 

À m connaissance, il n'est pas possible de modifier la fenêtre/palette Propriétés ni en AutoLISP, ni en Visual LISP ni avec .NET. Peut être avec ARX/C++ mais ce n'est pas sûr et personnellement, je ne sais pas faire.

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

Posté(e)

Salut fabbcad,

 

Avec Map j'ai essayé ce code (c'est un premier jus, sans contrôles d'erreurs, de tables) et ça à l'air de fonctionner. Si ça t'inspire...

 

(vl-load-com)
(defun surf_cadastrale (xs / h a ca)
 (cond
   ((and xs (numberp xs))
     (setq
       h (fix (cvunit xs "mètre_carré" "hectare"))
       a (fix (cvunit xs "mètre_carré" "are"))
       ca (fix (cvunit xs "mètre_carré" "centare"))
     )
     (strcat
       (if (not (zerop h)) (strcat (itoa h) "h ") "")
       (if (not (zerop a)) (strcat (itoa (if (not (zerop h)) (- a (* h 100)) a)) "a ") "")
       (if (not (zerop ca)) (strcat (itoa (if (not (zerop a)) (- ca (* a 100)) ca)) "ca") "")
     )
   )
 )
)
(defun c:surf_cad2od ( / js tbl tbldef n target_obj obj_vlax data_lst tblstr fldnamelist fldtypelist fldtypelist)
 (or
   (setq js (ssget "_I"))
   (setq js (ssget "_P"))
 )
 (cond
   (js
     (sssetfirst nil js)
     (initget "Existant Nouveau _Existent New")
     (if (eq (getkword "\nTraiter jeu de sélection [Existant/Nouveau] : ") "New")
       (progn (sssetfirst nil nil) (setq js (ssadd) js (ssget)))
     )
   )
   (T (setq js (ssget)))
 )
 (cond
   (js
     (ade_oddefinetab 
     '(
       ("Tablename" . "SURFACES-AGRAIRES")
         ("TableDesc" . "")
         ("Columns"
           (
             ("ColName" . "NOM-SURFACE")
             ("ColDesc" . "Nomination de la surface")
             ("ColType" . "Character")
             ("DefaultVal" . "Où")
           )
           (
             ("ColName" . "CLASSE-SURFACE")
             ("ColDesc" . "Appartenance de la surface")
             ("ColType" . "Character")
             ("DefaultVal" . "Classe Surface")
           )
           (
             ("ColName" . "VALEUR-SURFACE")
             ("ColDesc" . "Valeur en Hectare Are Centiare")
             ("ColType" . "Character")
             ("DefaultVal" . "0ha0a0ca")
           )
         )
       )
     )
     (setq tbl "SURFACES-AGRAIRES" tbldef (ade_odtabledefn tbl))
     (repeat (setq n (sslength js))
       (setq obj_vlax (vlax-ename->vla-object (setq target_obj (ssname js (setq n (1- n))))))
       (cond
         ((vlax-property-available-p obj_vlax "Area")
           (setq data_lst
             (list
               (vlax-get obj_vlax 'Layer)
               (itoa (vlax-get obj_vlax 'Color))
               (surf_cadastrale (vlax-get obj_vlax 'Area))
             )
             tblstr (cdr (nth 2 tbldef))
             fldnamelist ()
             fldtypelist ()
           )
           (foreach fld tblstr
             (setq
               fldnme (cdr (nth 0 fld))
               fldtyp (cdr (nth 2 fld))
               fldnamelist (append fldnamelist (list fldnme))
               fldtypelist (append fldtypelist (list fldtyp))
             )
           )
           (ade_odaddrecord target_obj tbl)
           (mapcar
             '(lambda (x y) (ade_odsetfield target_obj tbl x 0 y))
             fldnamelist
             data_lst
           )
         )
       )
     )
   )
 )
 (prin1)
)

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

Posté(e)

Salut, et merci Bonuscad!

 

Effectivement c'est un bon avancement! Bon par contre je ne connais rien au lisp donc va me falloir un peu de temps pour tout déchiffrer (je viens du vba...).

 

Je n'arrive pas à le lancer en tapant "surf_cadastrale" est ce normal?

par contre en tapant "surf_cad2od" et en choisissant le jeu de sélection ça marche.

Un grand bravo.

 

Pour qu'il soit ultime il faudrait juste que ça se fasse en temps réel sans avoir à relancer la commande et la selection :p

 

En tout cas encore merci beaucoup pour ta contribution.

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é