brunomu Posté(e) le 6 avril 2010 Posté(e) le 6 avril 2010 Bonjour forum ! Je dessine des plans en cm, mais quand il s'agit de mesurer des surfaces de pièces, les cm² ça le fait pas !Je sais bidouiller des lisp existants, mais je ne suis pas capable d'inventer un lisp tout simple, qui me permettrait d'obtenir, sur la ligne de commande, la surface d'une polyligne exprimée en m² (disons avec 1 décimale). Quelqu'un pourrait-il m'aider siouplé ? Merci !
ACAD666 Posté(e) le 6 avril 2010 Posté(e) le 6 avril 2010 Salut. Je ne sais pas comment tu procèdes précisément mais tu peux: a) dessiner ta pièce en cm b) l'insérer en bloc dans un dessin en mètres pour faire tes métrés Je crais qu'un lisp qui bidouille les résultats ne soit plus une source d'erreurs qu'autre chose (à part éventuellement une hérésie, je rigole bien sûr) Le mieux c'est tout de même de bosser dans l'unité des résultats qu'on veut obtenir. Par exemple, en VRD je saisis des mètres (plus partique pour moi) dans des dessins 'sans unité' (pour ne pas rencontrer de problèmes lors de l'insertion de plans en unités alien). Et AutoCAD se tourna vers le dessinateur à bout de nerfs, et lui dit:"ERREUR FATALE: Unhandled Access Violation Reading 0x5e43dff0 Exception at 5e43dff0h"Ce à quoi le dessinateur répondit:"Ca tombe bien je vais en profiter pour écouter un peu de rock qui décrasse les esgourdes"http://www.facebook.com/pages/Ex-Voto/206836112741129?sk=wall
Tramber Posté(e) le 6 avril 2010 Posté(e) le 6 avril 2010 Je me suis inspiré de cela pour créer ceci : *^C^C_area;o;\texteval;1;-texte;auc;@;;;Surface=$m=$(rtos,$(/,$(getvar,area),10000),2,2);deplacer;d;;auc;@;auc;\ Donc, ca n'est pas du lisp mais du DIESEL. Bon à glisser dans un bouton ou sur une palette.Voir si ca convient. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
lecrabe Posté(e) le 6 avril 2010 Posté(e) le 6 avril 2010 Hello Et si tu veux traiter N polyligne, cercle, region, spline, MPolygon en une seule fois Voici ma bonne vieille routine ZTOTM / ZTOTCM , ici dans sa version ZTOTCM ou les resultats sont divises par 100 (pour les longueurs) et 10000 (pour les surfaces) Je l'utilise tres souvent sur dessins de batiments en CM ! Le Decapode ;;; 1st Routine for AUTOCAD R13, R14, R15 (OUPS ! 2000) - 04/2000 ;;; ;;; ZTOTM ou ZTOTCM.LSP - Version 1.0 by H LORIOT (C) 2000 ;;; ZTOTCM.LSP et Fonction ZTOTCM (Because DWG en CENTIMETRE) ;;; ;;; H LORIOT PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS. ;;; H LORIOT SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. ;;; H LORIOT DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM ;;; WILL BE UNINTERRUPTED OR ERROR FREE. ;;; ;;; Modification par Patrice B. - Version 1.1 en Lisp ;;; +SPLINE, +ELLIPSE ;;; ;;; Modification par Gilles C. - Version 2.0 en Visual-Lisp ;;; +MPOLYGON (de MAP ou CIVIL), +REGION ;;; ;;; Version 2.1 : Modif pour traiter AUSSI les Polylignes NON FERMEES/ NON CLOSES ;;; VITAL pour faire la somme de polylignes "ouvertes" : Reseaux par exemple ;;; ;;; Commande au clavier : ZTOTCM (defun c:ztotcm (/ ss cnt area len) (vl-load-com) ;; (setq cnt 0 area 0.0 len 0.0) (setq cnt 0 area 0.0 len 0.0 cm_area 0.0 cm_len 0.0) (if (ssget (list '(-4 . "'(0 . "CIRCLE") '(-4 . "'(0 . "ELLIPSE") '(41 . 0.0) (cons 42 (* 2 pi)) '(-4 . "AND>") '(-4 . "'(0 . "LWPOLYLINE") ;;; '(-4 . "&") ;;; '(70 . 1) '(-4 . "AND>") '(0 . "MPOLYGON") '(-4 . "'(0 . "POLYLINE") ;;; '(-4 . "&") ;;; '(70 . 1) '(-4 . "'(70 . 8) '(-4 . "AND>") '(0 . "REGION") '(-4 . "'(0 . "SPLINE") '(-4 . "&") '(70 . 9) '(-4 . "AND>") '(-4 . "OR>") ) ) (progn (vlax-for obj (setq ss (vla-get-ActiveSelectionSet (vla-get-ActiveDocument (vlax-get-acad-object) ) ) ) (setq cnt (1+ cnt) area (+ area (vla-get-area obj)) len (+ len (if (member (vla-get-ObjectName obj) '("AcDbMPolygon" "AcDbRegion") ) (vla-get-Perimeter obj) (vlax-curve-getDistAtParam obj (vlax-curve-getEndParam obj) ) ) ) ) ) ;; 2 NOUVELLES LIGNES (Because DWG en CENTIMETRE) (setq cm_area (/ area 10000.0)) (setq cm_len (/ len 100.0)) (princ "\nATTENTION: on suppose le DWG en CENTIMETRE et on donne un resultat en METRE") (princ "\n DONC: le perimetre est divise par 100.0 et la surface par 10000.0 ") (princ "\nZTOTCM v2.1 - Cercle, Polyligne, Ellipse, Spline, Region, MPOLYGON") (princ (strcat "\n""TOTAUX -Surface: "(rtos cm_area) " -Périmètre: "(rtos cm_len)" -Objets: "(itoa cnt) ) ) (vla-delete ss) ) (prompt "\n*** Rien de Valable ") ) (princ) ) (princ "\n==> ZTOTCM (Version 2.1) ") (princ) Autodesk Expert Elite Team
brunomu Posté(e) le 6 avril 2010 Auteur Posté(e) le 6 avril 2010 Merci beaucoup pour vos réponses ! @ACAD666 :Je souhaite obtenir la surface de tas de polylignes, donc une solution qui passe par la création de blocs me parait trop lourde... @Tramber : Je saurais mettre en place cette expression DIESEL dans AutoCad 2004 les doigts dans le nez. Mais, étant novice en AutoCAD 2010, je suis à la peine. Par ailleurs, un lisp aurait l'intérêt à mes yeux de pouvoir être répété un grand nombre de fois sans avoir à faire d'allers-retours à la souris entre le bouton à créer et chacune des polylignes... @lecrabe :tout ça m'a l'air bel et bon, mais mon AutoCad 2010 n'aime pas. Il me répond : ; error: no function definition: VLAX-GET-ACAD-OBJECT A tous les 3 (et aux autres) : ce qui correspondrait le mieux à mon usage d'AutoCad serait un lisp qui récupère la valeur de la surface d'une polyligne, la divise par 10000, puis l'affiche dans la ligne de commande avec le suffixe "m²". D'avance, merci !
(gile) Posté(e) le 6 avril 2010 Posté(e) le 6 avril 2010 Salut, Regarde TotalArea sur cette page. C'est effectivement plutôt 'du lourd' avec :- 4 commandes et 2 variables système- possibilité de d'ajouter les aires de plusieurs objets ;- utilisation d'un bloc/attribut (exemple fourni) ;- mise à jour automatique en cas de modification (réacteurs) ;- possibilité d'utiliser un facteur de conversion entre l'unité de dessin et l'unité affichée (variable AREACONV) ;- un fichier d'aide Mais c'est tout fait et offert... Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lecrabe Posté(e) le 7 avril 2010 Posté(e) le 7 avril 2010 Hello Je n'ai pas un AutoCAD 2010 sous la main ! Qq'un peut il verifier si le Lisp (ZTOTCM.lsp) fourni fonctionne ou pas ! Merci d'avance, Le Decapode Autodesk Expert Elite Team
Tramber Posté(e) le 7 avril 2010 Posté(e) le 7 avril 2010 Qq'un peut il verifier si le Lisp (ZTOTCM.lsp) fourni fonctionne ou pas ! Ca a l'air. gloubPour répondre à ta remarque me concernant, il y a un * qui répète indéfiniment la routine. Mais il faudrait l'adapter si tu ne veux pas déposer de texte et affichier seulement une fois la valeur. Ceci dit je suis d'accord qu'un lisp sera plus adapté. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
brunomu Posté(e) le 7 avril 2010 Auteur Posté(e) le 7 avril 2010 @ gile Merci pour ta réponse. Ça a l'air super. Malheureusement, j'ai trop peu de temps, et mes dessins sont trop avancés pour pouvoir les adapter maintenant à l'organisation qu'impose ton lisp (en revanche, je l'appliquerai volontiers si on gagne le concours).
lili2006 Posté(e) le 7 avril 2010 Posté(e) le 7 avril 2010 Bonsoir à toutes et tous, Qq'un peut il verifier si le Lisp (ZTOTCM.lsp) fourni fonctionne ou pas ! Tourne également sur une V2011,... Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
MNE Posté(e) le 15 avril 2010 Posté(e) le 15 avril 2010 bonjour gloubj'ai un lisp que j'utilise pour faire mes métré je souhaite te le donner voici mon adresse mail (martial.nouzille@icade-arcoba.fr)tu n'auras plus qua l'adapter à tes besoin @+
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