-
Compteur de contenus
2 160 -
Inscription
-
Dernière visite
-
Jours gagnés
16
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par bryce
-
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)) ) ) )
-
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...
-
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:
-
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... ;)
-
Bonjour, MSLTSCALE à 0 pour désactiver la mise à l'échelle des types de ligne dans l'onglet Objet. ;)
-
Connaitre le volume et la surface d'un objet maillé
bryce a répondu à un(e) sujet de fpascal13 dans AutoCAD 2012
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: -
Connaitre le volume et la surface d'un objet maillé
bryce a répondu à un(e) sujet de fpascal13 dans AutoCAD 2012
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... <_< -
Bonjour, Je ne vois pas trop ce qui empêcherait de hachurer directement les splines... :huh:
-
[Résolu] Sélection de blocs par les attributs
bryce a répondu à un(e) sujet de Steven dans AutoCAD 2011
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) ) -
(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) ) ;)
-
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:
-
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. ;)
-
Connaitre le volume et la surface d'un objet maillé
bryce a répondu à un(e) sujet de fpascal13 dans AutoCAD 2012
En effet, je l'ai rajoutée. -
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.
-
Editeur Etendu des Attributs dans les Palettes d'outils
bryce a répondu à un(e) sujet de Fraid dans AutoCAD 2011
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. -
Connaitre le volume et la surface d'un objet maillé
bryce a répondu à un(e) sujet de fpascal13 dans AutoCAD 2012
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) ) -
Bonjour, J'étais passé à côté des optimisations les plus évidentes, le temps de traitement est passé à 1s sur le dessin test. :o
-
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.
-
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:
-
Connaitre le volume et la surface d'un objet maillé
bryce a répondu à un(e) sujet de fpascal13 dans AutoCAD 2012
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. ;) -
Bonjour, Pour envoyer un dwg, il faut le zipper. ;)
-
Connaitre le volume et la surface d'un objet maillé
bryce a répondu à un(e) sujet de fpascal13 dans AutoCAD 2012
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. -
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. ;)
-
Bonjour, http://cadxp.com/index.php?/topic/36530-quel-variable-gere-copyclip/
