bonjour;
comment inserer la valeur du resultat du calcul de l'air d'un objet automatiquement, car quand on utilse les outils de mesure de l'air le resultat s'affiche mais on ne peut pas l'inserer a moins de faire un copier coller lde a valeur.
donc ce que je cherche c'est transcrire directement la valeur de l'air de l'objet sur le plan. et si possible pouvoir specifier l'unité par exmple en m².
Le titre du sujet a été modifié par un modérateur pour faciliter la recherche. Titre original: inserer la valeur de la surface automatiquement
Résolu ! Accéder à la solution.
Bonjour;
Tout d'abord j'aimerais vous remercier pour ce sujet ar il m'a bien aidé.
Cependant, je désir faire quelque modification sur ce code pour l'adapter a mes besoins.
Ce que je veux:
- Supprimer l'encadrement du texte (quand on affiche le résultat un cadre en gris apparait)
et aussi l'unité du travail. Merci
Bonjour Zenda83,
Concernant le fond gris, il permet de distinguer les textes simples des champs (textes évolutifs). Le fond ne s'imprime pas mais tu peux désactiver l'affichage en mettent la variable FIELDDISPLAY à 0.
Concernant l'unité, en regardant l'avant dernier message de gloub, tu devrais facilement pouvoir le modifier toi même. D'ailleur tu n'as pas précisé quelle unité tu voulais.
Olivier
merci pour ce lisp,
y a t il moyen de modifier à la place de selectionner un point à l'interieur mais selectionner une polyligne car la selection d'un point à l'interieur prend en compte les bibliotheque type lavabo etc...
merci ca serait cool
Essayes avec ce code...
(vl-load-com) (defun c:surf_room ( / AcDoc Space js pt_ins htx rtx obj ename nw_obj) (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)) Space (if (= 1 (getvar "CVPORT")) (vla-get-PaperSpace AcDoc) (vla-get-ModelSpace AcDoc) ) ) (cond ((null (tblsearch "LAYER" "__ROOM_Field")) (vlax-put (vla-add (vla-get-layers AcDoc) "__ROOM_Field") 'color 3) ) ) (princ "\nSélectionnez un objet fermé") (while (setq js (ssget "_+.:E:S" '( (-4 . "<OR") (-4 . "<AND") (0 . "*POLYLINE") (-4 . "<AND") (-4 . "<NOT") (-4 . "&") (70 . 120) (-4 . "NOT>") (-4 . "&") (70 . 1) (-4 . "AND>") (-4 . "AND>") (0 . "CIRCLE") (-4 . "<AND") (0 . "ELLIPSE") (41 . 0.0) (42 . 6.283185307179586) (-4 . "AND>") (-4 . "OR>") ) ) ) (initget 1) (setq pt_ins (getpoint "\nSpécifiez le point d'insertion du champ: ")) (if (not htx) (progn (initget 6) (setq htx (getdist pt_ins (strcat "\nSpécifiez la hauteur du champ <" (rtos (getvar "TEXTSIZE")) ">: "))) (if htx (setvar "TEXTSIZE" htx)) (setq htx (getvar "TEXTSIZE")) ) ) (if (not rtx) (if (not (setq rtx (getorient pt_ins "\nSpécifiez l'orientation du champ <0.0>: "))) (setq rtx 0.0)) ) (setq obj (ssname js 0) ename (vlax-ename->vla-object obj) ) (setq nw_obj (vla-addMtext Space (vlax-3d-point (polar (trans pt_ins 1 0) (* pi 0.5) htx)) 0.0 (strcat "{\\fArial|b0|i0|c0|p34;" "%<\\AcObjProp.16.2 Object(%<\\_ObjId " (itoa (vla-get-ObjectID ename)) ">%).Area \\f \"%lu2%pr2%ps[S=," "m²]\">%" ) ) ) (mapcar '(lambda (pr val) (vlax-put nw_obj pr val) ) (list 'AttachmentPoint 'Height 'DrawingDirection 'InsertionPoint 'StyleName 'Layer 'Rotation) (list 5 (getvar "TEXTSIZE") 5 (polar (trans pt_ins 1 0) (* pi 0.5) htx) "Standard" "__ROOM_Field" rtx) ) ) (prin1) )
Merci pour votre partage de la fonctionnalité CHAMP pour le calcul des surfaces de pièces.
J'ai une question supplémentaires mon unité étant le cm, les surfaces sont donc en cm² et donc illisibles. Avez-vous une solution pour les passer en m²? Merci.
@m.dolegala a écrit :
Bonjour,
est il possible de cumuler des surfaces avec l'outil champs?
Bonjour,
Pour créer un champ qui indique le cumule de plusieurs aires ?
Procédez comme suit :
Tapez la commande champ puis validez > Dans la catégorie de champs Objets, choisissez comme nom de champ, Formule.
Dans l'encart Formule en bas à droite , faite un clic droit puis dans le menu contextuel, allez sur Insérer un champ. Dans la nouvelle fenêtre, dans la catégorie de champs Objets, choisissez Objet puis sélectionnez une première polyligne fermée > OK.
Dans l'encart des formules, un champ apparaîtra. Mettez le signe +, sans espace. Refaite un clic droit > Insérer un champ puis sélectionner une seconde polyligne fermée > OK. Refaite la même opération autant de fois qu'il y a de polylignes fermées à sélectionner.
Une fois que vous avez fini de sélectionner les polylignes dont vous souhaitez cumuler les aires, cliquez sur Evaluer, en bas de l'encart Formule > OK puis insérez le champs dans votre dessin.
Hello @m.dolegala
1) +1 avec @_Steven_ ... Si tu as un ACAD LT !?
C fastidieux mais ca marche !
2) Mais si tu as un vrai AutoCAD alors une routine Lisp / VLisp peut venir a ton secrours !?
Voir l'excellente routine "AddFields" de Gilles qui permet de cliquer successivement tous les champs dynamiques voulus et quand tu as fini, tu fais un simple Entree / Return et Hop tu inseres / poses le nouveau champ dynamique qui est la somme des valeurs des champs prealablement cliques / selectionnes !
Encore MERCI Gilles, La Sante, Bye, Patrice (The Old French EE Froggy)
Patrice BRAUD
Bonjour
Je cherche à afficher directement la valeur en m² lorsque je crée une polyligne ou rectangle qui s'ajusterait automatiquement en cas de modification du périmètre.
Je sais qu'il existe un lisp pour cela que j'ai trouvé dans le forum mais je ne sais pas le faire fonctionner.
Je suis sur la version 2023
L'ideal pour moi serait de l'inclure à un calque surfaces qui me permettrait pour chaque espace créé et fermé d'avoir automatiquement sur cette surface l'indication de l'air en m².
Quelqu'un pourrait m'expliquer ?
Merci
Bonjour @emycoqueletSUUEM,
Le sujet actuel étant résolu et étant un peu différent de votre demande, Il aurait été d'usage de créer un nouveau sujet avec votre demande.
Aussi, avez-vous tenteé d'utiliser le lisp de @CADaSchtroumpf, ici ?
Aussi, de quel lisp parlez-vous lorsque vous dites que vous avez trouver un lisp sur le forum ?
@emycoqueletSUUEM a écrit :
Bonjour
Je cherche à afficher directement la valeur en m² lorsque je crée une polyligne ou rectangle qui s'ajusterait automatiquement en cas de modification du périmètre.
Je sais qu'il existe un lisp pour cela que j'ai trouvé dans le forum mais je ne sais pas le faire fonctionner.
Je suis sur la version 2023
L'ideal pour moi serait de l'inclure à un calque surfaces qui me permettrait pour chaque espace créé et fermé d'avoir automatiquement sur cette surface l'indication de l'air en m².
Quelqu'un pourrait m'expliquer ?
Merci
Je parle bien de cette discussion
j’ai copié collé dans le bloc note mais je n’ai pas réussi à l’enregistrer sous en .lsp il reste enregistré .txt
pouvez vous me détailler cette procédure svp ?
@emycoqueletSUUEM a écrit :
Je parle bien de cette discussion
j’ai copié collé dans le bloc note mais je n’ai pas réussi à l’enregistrer sous en .lsp il reste enregistré .txt
pouvez vous me détailler cette procédure svp ?
Il faut renommer l'extension .txt en .lsp.
Tapez en suite, dans la ligne de commande, APPLOAD. Dans la fenêtre qui s'affiche,, allez cher votre lisp (1) puis cliquez sur CHARGER (2). Si vous souhaitez qu'il se charge à chaque lancement d'AutoCAD et à chaque ouverture d'un dessin, allez sur CONTENU (3) puis ajoutez-le dans le contenu au démarrage. Cliquez sur FERMER (4).
Vous n'avez plus qu'à lancer la commande SURF_ROOM.
Oui mais comment ?
je suis désolée mais j’ai essayé je n’y connais pas grand chose et je galère
quand je veux l’enregistrer sous
il me propose que txt ou tout les formats
@emycoqueletSUUEM a écrit :
Oui mais comment ?
je suis désolée mais j’ai essayé je n’y connais pas grand chose et je galère
quand je veux l’enregistrer sous
il me propose que txt ou tout les formats
A la place de .txt, vous mettez .lsp, manuellement...
Je n’y arrive pas
je peux soit cocher txt soit cocher tous les fichiers
Tapez tout simplement surfaces.lsp dans la zone de saisie Nom du fichier
Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.