Aller au contenu

bryce

Membres
  • Compteur de contenus

    2 160
  • Inscription

  • Dernière visite

  • Jours gagnés

    16

Tout ce qui a été posté par bryce

  1. Bonjour, Essaie ça (écris vite fait, pas pu tester car je n'ai qu'une LT sous la main...): (defun c:TOTO ( / n ) (vlax-for b (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) (setq n (vla-get-name B)) (if (= "*U" (substr n 1 2)) (vla-put-name b (substr n 2)) ) ) )
  2. bryce

    couleurs icones aides au dessin

    Bonjour, La barre d'état, c'est toute la barre du bas, y compris l'affichage des coordonnées du réticule, les outils d'annotativité, la zone de notification, etc... et les boutons d'aides au dessin. ;) 100% d'accord. Personnellement je déteste ces icônes, et même en formation je les désactive pour afficher les boutons texte (en montrant bien aux stagiaires comment les activer/désactiver). Les avis sont partagés, certains préfèrent les icônes, beaucoup d'autres non... chacun son truc...
  3. bryce

    Valeur de ZOOM

    Tiens, c'est vrai, un coup en avant un coup en arrière et on retrouve la vue de départ, ce qui n'était pas le cas jusqu'à la 2012... :blink:
  4. bryce

    Opération sur commande

    Bonjour, L'expression Lisp directement en ligne de commande, c'est le top, ça permet par exemple d'utiliser le résultat pour entrer une distance en utilisant le repérage polaire (ce que ne permet pas 'cal). Mais attention aux divisions avec des nombres entiers !!! (/ 100 3) -> 33 (/ 100 3.) -> 33.333... ;)
  5. bryce

    Annotatif: uniquement le texte

    Bonjour, MSLTSCALE à 0 pour désactiver la mise à l'échelle des types de ligne dans l'onglet Objet. ;)
  6. Bonjour, J'ai finalement réussi à obtenir un solide de la manière suivante: - transformation du maillage en surface avec la commande CONVENSURFACE (réglage: à facettes optimisée) - création d'une boîte solide englobant la statue, sauf en bas où le socle doit dépasser un peu de la boîte (j'ai laissé environ 2.5cm, ça ne marchait pas avec moins) - utilisation de la commande SECTION avec l'option Surface pour couper le solide en deux morceaux, dont un à l'intérieur de la statue - suppression de la surface et du solide externe. On obtient donc un moulage solide de l'intérieur de la surface de départ, dont le volume est d'environ 0.025 (résultat pas tout à fait exact puisque le socle a été raccourci un peu). Petite vidéo:
  7. Bonjour, Ah ben oui, tout simplement... J'ai dégainé le Lisp direct, je n'ai même pas pensé à essayer la commande Aire sur le maillage... :(rires forts): Pour le volume, ça va être plus dur. J'ai essayé de convertir le maillage en solide de différentes manières, mais aucune n'a fonctionné. Il y a sans doute des mailles incohérentes ou des trous, mais pour les trouver parmi les 45519... <_<
  8. bryce

    spline

    Bonjour, Je ne vois pas trop ce qui empêcherait de hachurer directement les splines... :huh:
  9. Bonjour, Facile, en modifiant légèrement le Lisp sstag de (gile) ! ;) (defun ssattval (val / ss res ref name blk) (vl-load-com) (or *acad* (setq *acad* (vlax-get-acad-object))) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument *acad*))) (setq res (ssadd)) (if (ssget "_X" '((0 . "INSERT") (66 . 1))) (progn (vlax-for ref (setq ss (vla-get-ActiveSelectionSet *acdoc*)) (setq has nil) (foreach att (vlax-invoke ref 'GetAttributes) (if (wcmatch (strcase (vla-get-TextString att)) (strcase val)) (setq has T) ) ) (if has (ssadd (vlax-vla-object->ename ref) res) ) ) (vla-delete ss) ) ) (if (< 0 (sslength res)) res ) ) (defun c:ssattval (/ val) (if (setq val (getstring "\Entrez la valeur d'attribut: ")) (sssetfirst nil (ssattval val)) ) (princ) )
  10. bryce

    SVP Routine pour 3DFace

    (defun c:SIMPLF ( / acdoc filter ss tol mod tot i f dist ) (vl-load-com) (setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object)) filter '( (0 . "3DFACE") )) (if (cadr (ssgetfirst)) (setq ss (ssget "_I" filter)) (progn (prompt "\nSélectionnez les faces 3D à simplifier ou <entrée pour toutes> : ") (or (setq ss (ssget filter)) (setq ss (ssget "_X" filter)) ) ) ) (if ss (progn (vla-startundomark acdoc) (setq tol (getreal "\nTolérance (distance mini entre sommets 1 et 4) : ") mod 0 i 0) (repeat (setq tot (sslength ss)) (setq f (entget (ssname ss i)) dist (distance (cdr (assoc 10 f)) (cdr (assoc 13 f)) ) ) (if (and (<= dist tol) (> dist 0)) (progn (entmod (subst (cons 13 (cdr (assoc 12 f))) (assoc 13 f) f)) (setq mod (1+ mod)) ) ) (setq i (1+ i)) ) (prompt (strcat "\n" (itoa tot) " faces 3D sélectionnées, " (itoa mod) " simplifiées.")) (setq ss nil) (vla-endundomark acdoc) );progn (prompt "\nAucune face 3d sélectionnée.") ) (princ) ) ;)
  11. bryce

    SVP Routine pour 3DFace

    Bonjour, C'est exactement ce que fait le Lisp posté plus haut: si la distance entre les points 3 et 4 est supérieure à la tolérance, les coordonnées du point 4 sont remplacées par celles du point 3 -> le point 4 est éliminé. :unsure:
  12. bryce

    Symetrie de piece

    doublon...
  13. bryce

    Symetrie de piece

    Bonjour, L'important est de créer une IPièce qui fonctionne correctement. Il n'est absolument pas nécessaire de l'intégrer au centre de contenu pour pouvoir l'utiliser, tu peux la placer dans un ensemble comme une pièce normale. ;)
  14. En effet, je l'ai rajoutée.
  15. bryce

    SVP Routine pour 3DFace

    Bonsoir, Désolé, je ne comprends pas ce que tu veux dire. Pour rappel, les faces 3D ont toujours 4 sommets. Simplement, dans le cas de faces triangulaires les sommets 3 et 4 sont confondus.
  16. Bonjour, En résumé : - si ATTREQ = 0, AutoCAD ne demandera pas de renseigner les attributs, quelle que soit la manière dont le bloc a été inséré (commande INSERER ou via une palette) - si ATTREQ = 1 et ATTDIA = 0, il faut renseigner les attributs en ligne de commande lors de l'utilisation de la commande INSERER. En utilisant une palette d'outils, c'est l'éditeur d'attributs simple qui s'affiche - si ATTREQ = 1 et ATTDIA = 1, l'éditeur d'attributs simple s'affiche lors de l'insertion (avec la commande INSERER ou via une palette). L'éditeur étendu ne s'affiche que lors de la modification (double-clic sur le bloc après insertion). Il n'existe pas (à ma connaissance) de moyen simple pour afficher l'éditeur étendu directement au moment de l'insertion, en remplacement de l'éditeur simple. :( Si tu as envie de tester (à tes risques et périls :P ), j'ai bricolé avec des réacteurs un truc qui marche pas trop mal a priori : (vl-load-com) (if (= (type *insertionreactor*) 'VLR-Command-Reactor) (progn (vlr-remove *insertionreactor*) (setq *insertionreactor* nil) ) ) (setq *insertionreactor* (vlr-command-reactor "insertionreactor" '( (:vlr-commandWillStart . beforeinsertion) (:vlr-commandEnded . afterinsertion) (:vlr-commandCancelled . insertionfailed) (:vlr-commandFailed . insertionfailed) )) ) (defun beforeinsertion ( rea data / commande ) (setq commande (strcase (car data))) (if (or (= commande "EXECUTETOOL") (and (= (getvar 'attdia) 1) (member commande '("INSERT" "-INSERT"))) ) (progn (setq *attreq* (getvar 'attreq)) (setvar 'attreq 0) ) ) (princ) ) (defun afterinsertion ( rea data / lastent commande ) (setq commande (strcase (car data))) (if (or (= commande "EXECUTETOOL") (and (= (getvar 'attdia) 1) (member commande '("INSERT" "-INSERT"))) ) (progn (setvar 'attreq *attreq*) (if (and (= *attreq* 1) (setq lastent (vlax-ename->vla-object (entlast))) (= "ACDBBLOCKREFERENCE" (strcase (vla-get-objectname lastent))) (= (vla-get-hasattributes lastent) :vlax-true) (or *acdoc* (setq *acdoc* (vla-get-activedocument (vlax-get-acad-object)))) ) (vla-sendcommand *acdoc* "_eattedit _l ") ) ) ) (princ) ) (defun insertionfailed ( rea data / commande ) (setq commande (strcase (car data))) (if (or (= commande "EXECUTETOOL") (and (= (getvar 'attdia) 1) (member commande '("INSERT" "-INSERT"))) ) (setvar 'attreq *attreq*) ) (princ) ) (princ) Il suffit de charger le code, il n'y a aucune commande à exécuter.
  17. Bonjour, Je trouve pour le maillage tel quel (base du socle ouverte) une surface d'environ 0.599024m² (je suppose que le fichier est en m, la hauteur de la statue étant d'environ 0.75 unités). J'ai obtenu cette surface en décomposant le maillage, ce qui donne 45519 faces 3D triangulaires, puis en cumulant l'aire de ces faces avec un petit programme en Lisp vite fait : (defun bs:triangleArea ( coords / longueurs a b c ) ; Argument : une liste de 3 points, chaque point étant une liste de 2 ou 3 coordonnées ; Retour : la surface du triangle (nombre réel) (setq longueurs (cons (distance (car coords) (cadr coords)) longueurs) longueurs (cons (distance (cadr coords) (caddr coords)) longueurs) longueurs (cons (distance (caddr coords) (car coords)) longueurs) longueurs (bs:sort longueurs '>); tri décroissant ) (apply '(lambda (a b c) (/ (sqrt (* (+ a b c) (- c (- a B)) (+ c (- a B)) (+ a (- b c)) ) ) 4.0)) longueurs) ) (defun bs:sort ( l fun / ) ; fonctionne comme vl-sort, mais sans supprimer les doublons de la liste (mapcar '(lambda (x) (apply 'nth (list x l))) (vl-sort-i l fun)) ) (defun c:3DFAREA ( / ss i f aire ) (setq ss (ssget '((0 . "3DFACE")))) (if ss (progn (setq i 0 aire 0.0) (repeat (sslength ss) (setq f (entget (ssname ss i)) aire (+ aire (bs:triangleArea (list (cdr (assoc 10 f)) (cdr (assoc 11 f)) (cdr (assoc 12 f))))) i (1+ i)) );repeat (prompt (strcat "\n" (itoa i) " faces 3D traitées, aire totale : " (rtos aire 2 8))) );progn );if (princ) )
  18. Bonjour, J'étais passé à côté des optimisations les plus évidentes, le temps de traitement est passé à 1s sur le dessin test. :o
  19. Bonjour, J'ai indiqué quelle était la valeur par défaut... Apparemment c'était 0 dans les versions plus anciennes d'AutoCAD, et 16 maintenant. Je ne sais pas pourquoi elle est à 0 sur Map, mais si tout fonctionne normalement je ne vois pas de raison d'y toucher.
  20. bryce

    [Résolu] calque DefPoints

    Bonjour, Effectivement, je n'avais jamais remarqué ça (je n'utilise jamais le calque Defpoints)... :blink: Quand le calque 0 est désactivé ou gelé, les objets sur le calque Defpoints ne sont pas sélectionnables. :mellow:
  21. Si c'est un maillage, tu peux utiliser la commande CONVENSOLIDE pour en faire un solide. Si tu pouvais poster un exemple de fichier, ce serait plus simple de t'aider, car il y a plusieurs types de maillages dans AutoCAD. ;)
  22. bryce

    Affichage porte / mur

    Bonjour, Pour envoyer un dwg, il faut le zipper. ;)
  23. Bonjour, C'est quel genre d'objet maillé exactement (maillage, surface maillée, Faces 3D) ? Pour connaître le volume, il faudra sans doute un solide.
  24. Bonjour, Quelques modifs: - ajout de la possibilité de changer la couleur et/ou le calque des textes traités - correction d'une erreur dans le code (les textes n'étaient pas effacés quand on le demandait). Je pense que ce sera la version finale, à mois d'un gros bug. ;)
  25. bryce

    problème style "PICKFIRST"

    Bonjour, http://cadxp.com/index.php?/topic/36530-quel-variable-gere-copyclip/
×
×
  • 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é