lili2006 Posté(e) le 15 mai 2021 Posté(e) le 15 mai 2021 Bonjour à toutes et tous, Super !! MErci @bonuscad🙃 Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Steven Posté(e) le 15 mai 2021 Posté(e) le 15 mai 2021 On 09/05/2021 at 20:13, bonuscad said: J'ai donc amélioré le lisp proposé dans ce fil. Il permet dorénavant de choisir son unité de départ supposé du dessin, de faire une conversion du résultat dans une autre unité et de choisir la précision du résultat. Par exemple on a réalisé un dessin en mm mais on souhaite avoir le résultat de la surface en cm² (sans changer l'unité de départ) avec une précision de 6 chiffres après la virgule. Ces paramètres restent valables tant qu'on reste dans la boucle du choix d'un objet fermé, si on relance la procédure il faudra redéfinir les options. Je suis resté dans le système métrique uniquement. (vl-load-com) (defun c:surf_curve-closed ( / AcDoc Space unite u_source u_target factor prec js nw_obj ename ent_text dxf_ent key) (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)) Space (if (= 1 (getvar "CVPORT")) (vla-get-PaperSpace AcDoc) (vla-get-ModelSpace AcDoc) ) ) (initget "KM M CM MM") (setq unite (getkword "\nChoisir l'unité source utilisé dans le dessin [KM/M/CM/MM] <M>: ")) (if (not unite) (setq unite "M")) (setq u_source (cond ((eq unite "KM") "sq_km") ((eq unite "M") "sq_m") ((eq unite "CM") "sq_cm") ((eq unite "MM") "sq_mm") ) ) (initget "KM M CM MM") (setq unite (getkword "\nChoisir l'unité cible à utiliser pour le résultat [KM/M/CM/MM] <M>: ")) (if (not unite) (setq unite "M")) (setq u_target (cond ((eq unite "KM") "sq_km") ((eq unite "M") "sq_m") ((eq unite "CM") "sq_cm") ((eq unite "MM") "sq_mm") ) ) (setq factor (cvunit 1 u_source u_target)) (initget "0 1 2 3 4 5 6 7 8") (setq prec (getkword "\nPrécision du résultat [0/1/2/3/4/5/6/7/8] <2>: ")) (if (not prec) (setq prec "2")) (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 . "SPLINE") (-4 . "&") (70 . 1) (-4 . "AND>") (-4 . "<AND") (0 . "ELLIPSE") (41 . 0.0) (42 . 6.283185307179586) (-4 . "AND>") (-4 . "OR>") ) ) ) (if (zerop (getvar "USERR1")) (setvar "USERR1" (/ (getvar "VIEWSIZE") 75.0))) (setq nw_obj (vla-addMtext Space (vlax-3d-point (trans (getvar "VIEWCTR") 1 0)) 0.0 (strcat "S="(rtos (* factor (vlax-get-property (setq ename (vlax-ename->vla-object (ssname js 0))) "Area")) 2 (atoi prec)) (strcase unite T) "²") ) ) (mapcar '(lambda (pr val) (vlax-put nw_obj pr val) ) (list 'AttachmentPoint 'Height 'DrawingDirection 'StyleName 'Layer 'Rotation 'BackgroundFill 'Color) (list 1 (getvar "USERR1") 5 (getvar "TEXTSTYLE") (getvar "CLAYER") 0.0 -1 250) ) (setq ent_text (entlast) dxf_ent (entget ent_text) dxf_ent (subst (cons 90 1) (assoc 90 dxf_ent) dxf_ent) dxf_ent (subst (cons 63 255) (assoc 63 dxf_ent) dxf_ent) ) (entmod dxf_ent) (while (and (setq key (grread T 4 0)) (/= (car key) 3)) (cond ((eq (car key) 5) (setq dxf_ent (subst (cons 10 (trans (cadr key) 1 0)) (assoc 10 dxf_ent) dxf_ent)) (entmod dxf_ent) ) ) ) (vlax-put (vlax-ename->vla-object (entlast)) 'TextString (strcat "{\\fArial|b0|i0|c0|p34;" "%<\\AcObjProp.16.2 Object(%<\\_ObjId " (itoa (vla-get-ObjectID ename)) ">%).Area \\f \"%lu2%pr" prec "%ps[S=," (strcase unite T) "²]\%ct8[" (rtos factor 2 12) "]\">%" ) ) ) (prin1) ) Top, ton, lisp, Bonuscad Y aurait-il moyen de pouvoir supprimer S= et de faire en sorte que le champ se mette dans le calque courant ? Steven________________________________________ Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD. Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD. En rêve; AutoCAD sous Linux.
bonuscad Posté(e) le 16 mai 2021 Posté(e) le 16 mai 2021 On 15/05/2021 at 13:55, Steven said: Top, ton, lisp, Bonuscad Y aurait-il moyen de pouvoir supprimer S= et de faire en sorte que le champ se mette dans le calque courant ? Merci, Pour enlever le S=, c'est assez simple à la ligne 69 tu retires "S=" et à la ligne 103 tu retires S= (en laissant bien le "[" et la "," avant et après) Pour le calque courant, c'est déjà le cas ?!? Mais peut être ce qui te perturbe est la couleur forcée du texte qui n'est pas "ducalque" Si c'est cela, change simple à la ligne 77 le dernier nombre entier fourni 250 en 256 (pour "bylayer") Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Steven Posté(e) le 17 mai 2021 Posté(e) le 17 mai 2021 23 hours ago, bonuscad said: Merci, Pour enlever le S=, c'est assez simple à la ligne 69 tu retires "S=" et à la ligne 103 tu retire S= (en laissant bien le "[" et la "," avant et après) Pour le calque courant, c'est déjà le cas ?!? Mais peut être ce qui te perturbe est la couleur forcée du texte qui n'est pas "ducalque" Si c'est cela, change simple à la ligne 77 le dernier nombre entier fourni 250 en 256 (pour "bylayer") Je ne dirais qu'une seule chose : Steven________________________________________ Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD. Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD. En rêve; AutoCAD sous Linux.
drault Posté(e) le 23 mai 2021 Posté(e) le 23 mai 2021 On 14/05/2021 at 19:31, Steven said: Si tu préfères rester dans un univers Autocadien, j'avais fait une vidéo pour montrer un exemple de ce qu'on peut faire avec AutoCAD Architecure et le calcul de surfaces. Peut-être que ça pourrait t'intéresser. Effectivement, puissante cette version ! Malheureusement, actuellement en collectivité, j'ai peur que l'on ne puisse pas décoller de MAP3D de si tôt... Je vais voir avec le service info...😁 Je vais me contenter d'une reconnaissance par hachure pour le moment. Étape suivante trouver la mise en tableau sur autocad de toutes les données😅 @bonuscadTrès bizarre, j'ai un "Â" qui s'introduit => "S=139651.98m²" Une idée de la raison ?
bonuscad Posté(e) le 24 mai 2021 Posté(e) le 24 mai 2021 Quote @bonuscadTrès bizarre, j'ai un "Â" qui s'introduit => "S=139651.98m²" Une idée de la raison ? Certainement un problème de codage du fichier. Dans ton éditeur en récupérant en copié-collé depuis un navigateur internet tu l'a certainement récupéré en UFT-8, il faudrait le basculer en ANSI. Notepad3 permet de faire cela aisément ... Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
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