Aller au contenu

Classement

Contenu populaire

Affichage du contenu avec la meilleure réputation depuis le 20/12/2024 dans toutes les zones

  1. Bonjour à Toutes et à Tous, Tout d'abord je vous souhaite une Très Belle et Heureuse Année 2025... Et voila J+1... ça y est je fais maintenant partie du Groupe des SAGES, je suis officiellement Retraité... une nouvelle carrière commence et comme souvent les retraités n'ont plus de temps ! Bien Amicalement, Christian
    4 points
  2. Bonjour à Tous, La mise à jour est faite. Merci Brice. Je me suis créé un petit raccourci pour récupérer la mise à jour : Uniquement le .EXE à remplacer (ça suffit) L'ensemble SCANDXF : https://app.box.com/s/15d6fd514e7599864834 Christian
    2 points
  3. Bonjour @kfran56 Voici un lien vers un webinaire dédié à cette question. C'est ICI Amicalement
    1 point
  4. Bonsoir à toutes et tous, Oui, il faut que ton point de référence du projet REVIT soit défini depuis ce même point de référence défini sur ton .dwg (dans ton cas en CC46). Quelques ressources ICI
    1 point
  5. Salut @lili2006, En promo sous les 1000€ : https://www.ldlc.pro/fiche/PB00542062.html Au même prix (24Go RAM au lieu de 16, et Ryzen 7 au lieu de i7), même si je suis "anti lenovo" : https://www.ldlc.pro/fiche/PB00628356.html Olivier
    1 point
  6. Bonjour, Il y a plusieurs soucis dans la macro. Déjà pour définir le point central, c'est \ et non / Ensuite, il vaut mieux faire un select au départ pour pouvoir utiliser la sélection précédente après. Le select permet de sélectionner autant d'objets que l'on veut et c'est seulement après avoir validé que la macro continue alors que la sélection dans la commande réseau demande autant de pause utilisateur \ que de nombre d'objets à sélectionner et ce nombre d'objets peut varier d'une utilisation à l'autre. La macro devrait donc plutôt ressembler à ceci : ^C^C_select;\RESEAUPOLAIRE;p;;\E;2;AN;270;Q;DECOMPOS;d;
    1 point
  7. Salut, En sélectionnant la fenêtre : (setpropertyvalue (car (entsel "\nSélectionnez une fenêtre flottante: ")) "CustomScale" 0.02)
    1 point
  8. Pour optimiser le temps d'exécution, tu peux remplacer les appels à 'command' par des 'entmake[x]'. Pour simplifier le processus, tu pourrais utiliser une lite d'association au lieu de définir une quarantaine de variables (LISP est très bien équipé pour traiter les listes. Un exemple avec les fonctions gc:InsertBlockReference et gc:SetDynPropValue extraites de la bibliothèque Blocks en bas de cette page. (while (< index nb-row) ;; Récupération de la liste courante (setq lst (nth index data-list)) ;; Liste d'association des noms de propriété dynamique aux valeurs récupérées (setq pairs (mapcar '(lambda (var index) (cons (vl-symbol-name var) (vlax-variant-value (nth index lst)))) '(ID A B phi H D C Nb N1 N1_larg N1_long S1 L1 fL1 fL2 N2 S2 E2 L2 fX2 fY2 N31 N312 S31 E31 L31 fY31 N32 N322 S32 E32 L32 fX32 V_béton P_tot Ratio pos_X pos_Y visi_sch) '(6 7 8 9 10 11 12 15 16 17 18 19 20 21 22 24 25 26 27 28 29 32 33 34 35 36 37 40 41 42 43 44 45 50 51 52 61 62 63) ) ) ;; Conversion explicite des coordonnées en réel (setq pos_X (if (numberp pos_X) pos_X (atof pos_X))) (setq pos_Y (if (numberp pos_Y) pos_Y (atof pos_Y))) ;; insertion du poteau (setq insertion-point (list pos_X pos_Y 0)) (if (setq ent (gc:InsertBlockReference "# ptx 2 rangs - Barre droite" insertion-point 0. 1.)) (foreach pair (reverse (cdddr (reverse pairs))) (gc:SetDynPropValue ent (strcat "AcDbDynBlockProperty" (car pair)) (cdr pair)) ) ) ;; insertion du schéma (setq insertion-point (list (+ 454 pos_X) (- pos_Y 17) 0)) (if (setq ent (gc:InsertBlockReference "# Schéma ptx Y2" insertion-point 0. 1.)) ;; Association des variables aux valeurs récupérées (progn (setq pairs (reverse pairs)) (foreach pair (list (car pairs) (cadr pairs) (caddr pairs)) (gc:SetDynPropValue ent (strcat "AcDbDynBlockProperty" (car pair)) (cdr pair)) ) ) ) ;; Incrémentation de l'index pour passer à l'itération suivante (setq index (1+ index)) )
    1 point
  9. Salut, Les entrées de type chaîne de caractère (STR) dans le filtres de sélection utilisent les caractères génériques (voir l'aide pour wcmatch). Plutôt que d'utiliser des points d'interrogation (caractère générique correspondant à n'importe quel caractère), il est plus robuste d'utiliser le "caractère d'échappement" (apostrophe inversée AltGr+7) qui permet de lire littéralement un caractère générique. (princ (sslength (setq entite_sel (ssget "_x" '((2 . "*POINT*")(8 . "TOPOJIS-2025-`[01]"))))))
    1 point
  10. Bonjour @PATRICE69 C'est bien connu qu'il faut éviter les caractères spéciaux dans les noms de calques ! On l'a dit, on l'a redit, et ça continue. On parle dans le vide dirait-on, c'est usant ! Chez moi, pas d'accents, pas d'espaces, rien qui dépasse ! et je ne suis jamais enquiquiné. Amicalement
    1 point
  11. Le moteur graphique ne permet pas d'accrocher facilement les bons objets. Les normes routières sont incomplètes. Lorsque tu fais de la route, c'est ennuyeux. Pas d'intégraption de l'arp 2022 , controle des visibilités poussifs si on compare à autopiste. Si tu accroches une polyligne 3D pour caler un dévers, la valeur du dévers est inversée. Ce problème n'a pas été résolu depuis plus de six mois. Il possède une fonction multiaxes, mais il ne crée pas un MNT pour l'ensemble du projet. En revanche, le module plate-forme est tout simplement génial et le module réseau est intuitif. Je fais égalemenrt des exports que je retraite dans autocad pour avoir un rendu client correct.
    1 point
  12. Salut, Dans quelle version enregistres tu tes fichiers ? De mon côté, le problème venait du fait que j'enregistrais en version DWG 2010. En enregistrant en version 2018, cela fonctionne maintenant (grâce à une brillante analyse de Geomedia 🙂 ) A +
    1 point
  13. Bonjour, j’utilise quotidiennement le logiciel de Bryce aussi pour calculer mes linéaires, je trouve ça très pratique pour savoir la quantité exacte de travail que j’ai fait! J’ai vu que la version viens d’expirer aussi 😅 serait il possible d’avoir une version non expirable? Quitte a faire un don pour le soutien du développement.
    1 point
  14. Salut, Les coordonnées X et Y du décalage sont relatives à l'angle spécifié. Voir le fichier HatchPattern.dwg joint à ce message.
    1 point
  15. Bonjour, Bonne année à tous, Peut être que la commande attsync va résoudre ton problème.
    1 point
  16. Et j'avais oublié le château de mon village : CHATEAU DE SALLES On avait fait un projet de rénovation sur ce château et une visite virtuelle réalisée sous Twinmotion, c'est ICI
    1 point
  17. Re, J'avais fait des pages web de certains projets issus de nuages de points => RENOVATION PRESBYTERE CARBON-BLANC CHATEAU DE VENTADOUR CHATEAU DE L'HERMITAGE PLAN DU PARC CHATEAU DE L'HERMITAGE PLAN DE FACADE TOUR CHATEAU VILLANDRAULT
    1 point
  18. Bonne Année à toutes et tous, Tu trouveras ton bonheur à ces adresses (Travaux de PFE d'étudiants de BTS Métiers du Géomètre Topographe et de la Modélisation Numérique) : RENOVATION PRESBYTERE CARBON-BLANC REAMENAGEMENT CHATEAU DE LANGOIRAN BASSIN DE DINASSAC (2019) RESTITUTION D'UNE GRAVIERE (Blanquefort)
    1 point
  19. Je ne serais à la retraite que dans 12 ans, il me reste encore quelques neurones, mais ils se font de plus en plus rares 😉
    1 point
  20. Oui,Pat @lecrabe mais en Vieux comme ceux du MouPêteFroid... Bien Amicalement, Christian
    1 point
  21. Bonjour, Je confirme, enregistré sous ANSI, UTF..., pas de A ! Une remarque, le LISP ne tient pas compte des UNITES du dessin (variable INSUNITS : 4 = mm / 5 = cm / 6 = m) ! Il donne la valeur BRUTE indiquée dans les PROPRIETES ! J'utilise souvent mes outils de surface avec une version AutoCAD LT et j'utilise la MACRO DIESEL suivante : $m=$(rtos,$(/,$(getvar,area),$(getvar,USERR2)),2,2); La valeur de USERR2 correspond au nombre diviseur suivant les unités du dessin : mm = 1 000 000 / cm = 10 000 / m = 1 Très facile à transposer en LISP... Ce qui donnera toujours un résultat affiché en M² quelque soit l'unité du dessin ! Christian
    1 point
  22. Bonjour @Scout Ce LSP est très ancien et n'a jamais posé de soucis, d'ailleurs j'ai refait le test avant de répondre et chez moi le A présenté n'existe pas. Peut-être un souci de police de caractères, laquelle utilisez-vous dans votre style courant ? Amicalement
    1 point
  23. @Maxime10 bonjour Je n'ai pas regardé le Lisp. Je ne l'ai pas non plus. Ce que tu as dis ( " Mais cela n'est pas systématique" ) me fait penser que le Lisp n'y est pour rien... J'ai juste ouvert ton dessin. Le contour de la cuisine que tu sites à un point double. Supprime le et retente.
    1 point
  24. Bonjour, Un sujet similaire. Le code proposé dans ce lien peut être facilement adaptable selon tes besoins mais il faut en savoir un peu plus...
    1 point
  25. Absolument d'accord avec PAtrice, merci encore PAtrick, c'est en partie grâce à toi et tes différents forums que j'ai aujourd'hui ce "niveau" sur les logiciels pros ! Et joyeux anniversaire à CadXP !!😀
    1 point
  26. Hello Le Jeune Australopitheque Alumini Autodeskien BRAVO tu etais un Precurseur ! La Sante, Bye, lecrabe
    1 point
  27. Bonjour, Ci-joint ce lisp qui te permet de copier les attributs d'un bloc A vers un autre bloc B, ou plusieurs blocs B, C, D...etc. (Les blocs peuvent avoir des noms différents) UNE SEULE CONTRAINTE, il faut que le(s) nom(s) des attributs de B, C, D...etc soient le même que les attributs du bloc source. Cat.lsp
    1 point
  28. Franchement je ne vois pas comment, le code d'Evgeniy emploi des fonctions récursives et utilise (entmake) pour la création d'entité. Ce procédé est la meilleure façon, même mieux qu'ActiveX qui est pourtant très bien aussi au niveau rapidité et plus simple à construire. En NetC se serait peut être plus rapide mais je ne pratique pas. Pour en revenir au programme; Lecrabe m'a pointé du doigt un dysfonctionnement (non prise en compte des arrondis dans le Mpolygone).J'ai repris l'écriture et pense avoir résolu le problème, voici cette version. (defun createhatchlist (e) (if e (vl-remove-if-not '(lambda (x) (member (car x) '(10 42))) (entget e)) ) ) (defun entmakex-hatch (l a n s lay) ;; By ElpanovEvgeniy ;; L - list point ;; A - angle hatch ;; N - name pattern ;; S - scale ;; return - hatch ename (entmakex (apply 'append (list (list '(0 . "HATCH") '(100 . "AcDbEntity") '(410 . "Model") '(100 . "AcDbHatch") '(10 0.0 0.0 0.0) '(210 0.0 0.0 1.0) (cons 2 n) lay (if (= n "SOLID") '(70 . 1) '(70 . 0) ) ;_ if '(71 . 0) (cons 91 (length l)) ) ;_ list (apply 'append (mapcar '(lambda (a) (apply 'append (list (list '(92 . 7) '(72 . 1) '(73 . 1) (cons 93 (/ (length a) 2))) a '((97 . 0)) ) ;_ list ) ;_ apply ) ;_ lambda l ) ;_ mapcar ) ;_ apply (list '(75 . 0) '(76 . 1) (cons 52 a) (cons 41 s) '(77 . 0) '(78 . 1) (cons 53 a) '(43 . 0.) '(44 . 0.) '(45 . 1.) '(46 . 1.) '(79 . 0) '(47 . 1.) '(98 . 2) '(10 0. 0. 0.0) '(10 0. 0. 0.0) '(451 . 0) '(460 . 0.0) '(461 . 0.0) '(452 . 1) '(462 . 1.0) '(453 . 2) '(463 . 0.0) '(463 . 1.0) '(470 . "LINEAR") ) ;_ list ) ;_ list ) ;_ apply ) ;_ entmakex ) (defun f (l i) (if (> i 0) (if (assoc 42 l) (cons (mapcar (function +) (car (member (assoc 10 l) l)) v) (cons (assoc 42 l) (f (cddr (member (assoc 10 l) l)) (1- i)))) (cons (mapcar (function +) (car (member (assoc 10 l) l)) v) (f (cdr (member (assoc 10 l) l)) (1- i))) ) ) ) (defun c:MP2PHATCHOD (/ hList tmp e dxf_e jspl v tbldef lst_data numrec tmp_rec nwent ct l lst ll p nbe) ;; by ElpanovEvgeniy, modified by Valsecchi Bruno ;; convert MPolygon to Lwpolyline and Hatch with OD for map ;; version 0.2 ;; 2012.07.11 ;; mailto: elpanov@gmail.com ;; web: elpanov.com (if (setq v (ssget '((0 . "MPOLYGON")))) (foreach e (mapcar (function cadr) (ssnamex v)) (setq hList nil tmp nil lst_data nil) (cond ((eq (type e) 'ENAME) (foreach n (ade_odgettables e) (setq tbldef (ade_odtabledefn n)) (setq lst_data (cons (mapcar '(lambda (fld / tmp_rec numrec) (setq numrec (ade_odrecordqty e n)) (cons n (while (not (zerop numrec)) (setq numrec (1- numrec)) (if (zerop numrec) (if tmp_rec (cons fld (list (cons (ade_odgetfield e n fld numrec) tmp_rec))) (cons fld (ade_odgetfield e n fld numrec)) ) (setq tmp_rec (cons (ade_odgetfield e n fld numrec) tmp_rec)) ) ) ) ) (mapcar 'cdar (cdaddr tbldef)) ) lst_data ) ) ) (setq dxf_e (entget e) jspl (ssadd) v (cons 0 (mapcar (function -) (cdr (assoc 11 dxf_e)) (cdr (assoc 10 dxf_e)))) l (vl-remove nil (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") (assoc 67 dxf_e) (assoc 410 dxf_e) (assoc 8 dxf_e) (if (assoc 63 dxf_e) (cons 62 (cdr (assoc 63 dxf_e))) ) (if (assoc 421 dxf_e) (cons 420 (cdr (assoc 421 dxf_e))) ) '(100 . "AcDbPolyline") ) ) lst dxf_e ll nil ) (while (setq lst (member (assoc 93 (cdr lst)) (cdr lst))) (setq p (f (cdr lst) (cdar lst)) ll (append ll (list '(92 . 7) '(72 . 0) '(73 . 1) (car lst)) p '((97 . 0))) ) (entmakex (vl-remove nil (append l (list (cons 90 (cdar lst)) '(70 . 1)) p (list (assoc 210 dxf_e))))) (setq nwent (entlast)) (cond (lst_data (mapcar '(lambda (x / ct) (while (< (ade_odrecordqty nwent (caar x)) (ade_odrecordqty (cdar dxf_e) (caar x))) (ade_odaddrecord nwent (caar x)) ) (foreach el (mapcar 'cdr x) (if (listp (cdr el)) (progn (setq ct -1) (mapcar '(lambda (y / ) (ade_odsetfield nwent (caar x) (car el) (setq ct (1+ ct)) y) ) (cadr el) ) ) (ade_odsetfield nwent (caar x) (car el) 0 (cdr el)) ) ) ) lst_data ) ) ) (setq jspl (ssadd nwent jspl)) ) (repeat (setq nbe (sslength jspl)) (if (setq tmp (CreateHatchList (ssname jspl (setq nbe (1- nbe))))) (setq hList (cons tmp hList)) ) ) ) ) (entmakex-hatch (reverse hList) 0.0 "_SOLID" 1.0 (assoc 8 dxf_e)) (setq nwent (entlast)) (cond (lst_data (mapcar '(lambda (x / ct) (while (< (ade_odrecordqty nwent (caar x)) (ade_odrecordqty (cdar dxf_e) (caar x))) (ade_odaddrecord nwent (caar x)) ) (foreach el (mapcar 'cdr x) (if (listp (cdr el)) (progn (setq ct -1) (mapcar '(lambda (y / ) (ade_odsetfield nwent (caar x) (car el) (setq ct (1+ ct)) y) ) (cadr el) ) ) (ade_odsetfield nwent (caar x) (car el) 0 (cdr el)) ) ) ) lst_data ) ) ) ) ) (princ) )
    1 point
  29. Comme la demande est récurente et que je commence à me lasser de répéter... J'ouvre donc un nouveau sujet qui servira, j'espère, aussi bien aux utilisateurs novices de routines qu'aux débutants qui se lancent dans l'aventure de la programmation en LISP. 1 Pour charger une routine LISP 1.1 Sans enregistrer de fichier C'est la méthode à utiliser pour les expressions simple et les fonctions "lambda" : ((lambda ...)). Elle peut aussi être utilisée pour les "defun" : (defun ...). Il suffit de copier le code (rien que le code, tout le code) et de le coller sur la ligne de commande et de valider (Entrée ou Espace) Dans le cas d'expression simple ou de fonction "lambda", l'expression est immédiatement évaluée, s'il s'agit d'un "defun", il faut ensuite lancer la commande (voir "2 Pour lancer une commande LISP", plus bas) 1.2 Enregistrer un fichier .lsp Après avoir copié le code (tout le code et les commentaires précédés de point virgule), le coller dans le bloc-note (ne pas utiliser d'éditeur de texte sofistiqué -type Word- qui rajoute des caractères de mise en pages). Enregistrer le fichier, peu importe le nom, avec l'extension .lsp (par exemple : Toto.lsp). Si le LISP est amené à resservir, il peut être judicieux de l'enregistrer dans un dossier du chemin de recherche des fichiers de support (menu Outils >> Options ... onglet Fichiers). Depuis AutoCAD 2014, il faut aussi ajouter le chemin du répertoire contenant les fichiers LISP dans les "Emplacements approuvés" (menu Outils >> Options ... >> onglet Fichiers). Si le chemin du dossier se termine par "\...", tous ses sous-dossiers sont également approuvés. 1.3 Charger dans le dessin courant 1.3.1 Commande APPLOAD Taper APPLOAD à la ligne de commande ou menu Outils >> AutoLISP >> Charger une application. Charger le LISP depuis le dossier où il a été enregistré. 1.3.2 Cliquer/déposer Depuis l'explorateur Windows, sélectionner le fichier et le déposer dans la fenêtre d'AutoCAD. 1.3.3 Depuis la ligne de commande Utiliser la fonction LISP load : Si le fichier est enregistré dans un dossier du chemin de recherche, entrer l'expression LISP : (load "Toto.lsp") ou (load "Toto") Sinon, spécifier le chemin complet (dans ce cas les anti-slashes doivent être remplacés par des slashes ou des doubles anti-slashes) exemple : (load "C:/MesLisp/toto.lsp") ou (load "C:\\MesLisp\\toto.lsp") 1.4 Charger automatiquement un fichier .lsp Si le LISP est amené à être utilisé régulièrement, il peut être intéressant qu'il soit automatiquement chargé au démarrage d'AutoCAD et/ou dans tous les dessins. 1.4.1 Commande APPLOAD Dans la boite dialogue de la commande APPLOAD, dans la case Au démarrage (valise), cliquer sur Contenu et ajouter le fichier. 1.4.2 Fichiers de chargement automatique Les fichiers AutoCAD.LSP, ACADDOC.LSP (à crééer dans un dossier du chemin de recherche, s'ils n'existent pas) et les fichier MNL (associés aux fichier de menu MNS ou CUI de même nom) sont des fichiers contenant des routines et expressions LISP qui sont chargées automatiquement au démarrage (acad.lsp) ou dans chaque dessin (acaddoc.lsp et mnl). Voir dans l'aide Guide de personnalisation >> Introduction aux interfaces de programmation >> AutoLISP et VisualLISP >> Chargement et exécution automatiques des routines AutoLISP. NOTA : ne pas modifier les fichiers ACAD200*.LSP et ACAD200*DOC.LSP. 2 Pour lancer une commande LISP On définit une commande en LISP en faisant précéder le nom de la commande/fonction par 😄 au début de la routine, juste après (defun , exemple : (defun c:toto (...)) Dans ce cas il suffit de taper à la ligne de commande : toto et de valider. 3 Éditeur VisualLISP AutoCAD intègre un éditeur de programmes LISP (commande VLIDE ou VLISP ou menu Outils >> AutoLISP >> Editeur VisualLISP). Dans celui-ci, il est aussi possible, entre autre choses, de coller, écrire, modifier, enrgistrer, charger, évaluer des routines ou des expressions LISP, mais son utilisation (que je recommande fortement) ferait l'objet d'un sujet entier (voir ici). 4 Boites de dialogue (DCL) Certains LISP fonctionnent avec une (ou des) boite(s) de dialogue. Le fichier LISP est alors accompagné d'un (ou de plusieurs) fichier(s) .DCL. Ces fichiers sont appelés par le LISP pour ouvrir la boite de dialogue. Pour qu'AutoCAD les trouvent ils doivent être enregistrés sous le nom qui leur a été donné, avec l'extension .dcl, dans un répertoire du chemin de recherche des fichiers de support (menu Outils >> Options... >> onglet Fichiers >> Chemin de recherche des fichiers de support). Il est préférable, à mon avis, de créer son propre répertoire de fichiers LISP et DCL et d'ajouter ce chemin à la liste. 5 Les fichiers VLX Les fichier VLX sont des fichiers compilés (et cryptés) qui peuvent être la compilation de plusieurs fichiers LISP et DCL. Ils se chargent de la même manière que les fichiers LISP et permettent d'éviter d'avoir à s'occuper des fichiers DCL. En espérant que je n'en ai pas trop oublié, si c'est le cas, faites le savoir... [Edité le 6/4/2007 par (gile)][Edité le 16/6/2007 par (gile)][Edité le 28/12/2007 par (gile)]
    1 point
  30. Bonjour à tous, moi j'ai le pb inverse, je suis sous Cova. Bref, apparemment, j'ai un menu déroulant : Cov.Echanges >>>echange LANDXML >>>LECTURE >>>ECRITURE Je n'en sais pas plus pour l'instant, Ca à l'aire simple, et forcement ca m’inquiète!!! je suis donc à la recherche d'une notice...si je trouve je transmet. à bientôt
    1 point
  31. Salut x_all, Ça devrait tourner sous 2006 sans problème, j'ai effectivement oublié de glisser un (vl-load-com) en début de routine, mais il me semble que ceci n'est plus nécéssaire depuis les versions 2004. Telle quelle la routine fonctionne sur tous les calques (actif/inactif, gelé/dégelé, vérouillé/dévérouillé) si tu veux écarter certains calques, il faut remplacer : (ssget "_X" '((0 . "LWPOLYLINE"))) par : (ssget "_A" '((0 . "LWPOLYLINE"))), et les calques gelés ne seront pas traités. Quelque chose comme ça ? ((lambda (/ ss tot nb n long obj lst lay l_lay) (vl-load-com) (if (setq ss (ssget "_X" '((0 . "LWPOLYLINE")))) (progn (setq nb (sslength ss) n 0 tot 0.0) (princ (strcat "\n\nLe dessin contient : " (itoa nb) " polylignes") ) (repeat nb (setq obj (vlax-ename->vla-object (ssname ss n)) long (vlax-curve-getDistAtParam obj (vlax-curve-getEndParam obj) ) tot (+ tot long) lay (vla-get-Layer obj) ) (princ (strcat "\nP" (itoa (setq n (1+ n))) " = " (rtos long) "\tCalque : " lay ) ) (if (setq l_lay (assoc lay lst)) (setq lst (subst (cons lay (+ long (cdr l_lay))) l_lay lst)) (setq lst (cons (cons lay long) lst)) ) ) (mapcar '(lambda (x) (princ (strcat "\nLongueur totale sur le calque " (car x) " : " (rtos (cdr x)) ) ) ) lst ) (princ (strcat "\nLongueur totale dans le dessin = " (rtos tot))) (textscr) ) (princ "\nLe dessin ne contient pas de polylignes.") ) (princ) ) ) [Edité le 1/10/2006 par (gile)]
    1 point
×
×
  • 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é