Steven Posté(e) le 9 juin 2017 Posté(e) le 9 juin 2017 Salut à tous, J'ai reçu des blocs en 3D qui n'ont manifestement pas été créés dans dans le SCU Général, vue en plan, au moment de la création. Pour exemple, voici un caisson à roulette. Je travail en plan. La vue est donc vue de dessus (Haut) et la Vuecube est dans la position "Haut".Lorsque j'insère le bloc, celui est en vue de face. Si je souhaite voir le bloc de dessus, je doit me mettre en vue "Arrière".Lorsque je me mets en vue "Bas", je vois le caisson de dos.Lorsque je me mets en vue "Droite", je vois le caisson couché sur le dos.Bref, c'est du sans dessus dessous. J'ai plusieurs bloc en 3D avec lesquels c'est le même soucis. La question est: Existe-t-il un moyen pour basculer tous les bloc dans le bon sens, dans un bon SCU ou dois-je me palucher tous les blocs un par un en les basculant dans la bonne vue et dans le bon SCU de manière à ce que lorsque je les insèrerai dans un plan vue de dessus, ils s'insèreront en vue de dessus et non en vue de face. Je vous joint un fichier avec un bloc dessus pour que vous puissiez vous rendre compte de mon soucis.Le bloc en question. 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.
philsogood Posté(e) le 9 juin 2017 Posté(e) le 9 juin 2017 helloj'opterai pour la solution mano mais je ne sais pas combien de blocs il y a...++Phil Projeteur Revit Indépendant - traitement des eaux/CVC
(gile) Posté(e) le 9 juin 2017 Posté(e) le 9 juin 2017 Salut, Si tous les blocs ont la même orientation que celui en exemple et que ce sont des DWG séparés, tu peux utiliser SuperAutoScript avec un script qui leur fait faire une rotation 3d sur X de 90° : _ROTATE3D _all _X 0,0,0 90 Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Steven Posté(e) le 9 juin 2017 Auteur Posté(e) le 9 juin 2017 Salut (gile), Les blocs que j'ai reçu sont sur un seul fichier mais je peux les mettre sur des fichiers séparés. 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.
(gile) Posté(e) le 9 juin 2017 Posté(e) le 9 juin 2017 Ce LISP devrait traiter toutes les définitions de bloc du dessin (defun c:BASCULEBLOC (/ doc) (setq doc (vla-get-ActiveDocument (vlax-get-acad-object))) (vlax-for blk (vla-get-Blocks doc) (if (= :vlax-false (vla-get-IsLayout blk) (vla-get-IsXref blk)) (vlax-for obj blk (vla-TransformBy obj (vlax-tmatrix '((1. 0. 0. 0.) (0. 0. -1. 0.) (0. 1. 0. 0.) (0. 0. 0. 1.) ) ) ) ) ) ) (vla-Regen doc acActiveViewport) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
(gile) Posté(e) le 9 juin 2017 Posté(e) le 9 juin 2017 Oupss, il y a des blocs imbriqués (les poignées et les roulettes) dans le bloc exemple et le LISP ci-dessus risque de donner résultats inattendus. Il faudrait un critère dans les nom de bloc pour différencier les définitions de bloc à traiter (ou ceux à éviter). Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
(gile) Posté(e) le 9 juin 2017 Posté(e) le 9 juin 2017 Ou, plus simplement, si les références des blocs à traiter sont insérées dans le dessin, en les sélectionnant (encore une fois, ce sont les définitions de bloc qui sont traitées). (defun c:BASCULEBLOC (/ ss doc name lst) (if (ssget '((0 . "INSERT"))) (progn (setq doc (vla-get-ActiveDocument (vlax-get-acad-object))) (vlax-for obj (setq ss (vla-get-ActiveSelectionSet doc)) (if (not (member (setq name (vla-get-Name obj)) lst)) (setq lst (cons name lst)) ) ) (vla-Delete ss) (vlax-for blk (vla-get-Blocks doc) (if (member (vla-get-Name blk) lst) (vlax-for obj blk (vla-TransformBy obj (vlax-tmatrix '((1. 0. 0. 0.) (0. 0. -1. 0.) (0. 1. 0. 0.) (0. 0. 0. 1.) ) ) ) ) ) ) (vla-Regen doc acActiveViewport) ) ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Steven Posté(e) le 10 juin 2017 Auteur Posté(e) le 10 juin 2017 Salut (gile), Les lisps sont super, en particulier celui qui traite la redéfinition des blocs.En fait, je crois que je vais redéfinir tous les blocs du dessin, puis en faire des blocs et wblocs, un par un.Voici le fichier entier en question après avoir demandé et avoir eu l'accord pour le partager.Ça donnera un aperçu complet de ce que j'ai reçu.Le fichier. 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.
(gile) Posté(e) le 10 juin 2017 Posté(e) le 10 juin 2017 Attention, avec le LISP qui redéfinit toutes les définitions (réponse #5), le blocs imbriquée (poignées, roulettes) vont subir la rotation dans les blocs parents, ce qui n'est pas souhaitable. À mon avis le plus sûr serait d'insérer les blocs devant subir la rotation dans un dessin vierge avec le Design Center, puis d'utiliser le LISP de la réponse #7 en sélectionnant tous les blocs insérés. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Steven Posté(e) le 11 juin 2017 Auteur Posté(e) le 11 juin 2017 À mon avis le plus sûr serait d'insérer les blocs devant subir la rotation dans un dessin vierge avec le Design Center, puis d'utiliser le LISP de la réponse #7 en sélectionnant tous les blocs insérés. C'est ce que j'ai fais mais on ne pourra pas en faire des Wbloc.Au pire, ce n'est pas très grave, je ferai une palette d'outil. 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.
(gile) Posté(e) le 11 juin 2017 Posté(e) le 11 juin 2017 C'est ce que j'ai fais mais on ne pourra pas en faire des Wbloc.Au pire, ce n'est pas très grave, je ferai une palette d'outil. Si, tu peux en faire des fichiers bloc avec WBLOC parce que ce sont les définitions de bloc qui ont été modifiées. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Steven Posté(e) le 11 juin 2017 Auteur Posté(e) le 11 juin 2017 C'est beau La grande classe, encore une fois http://www.smileys-gratuits.com/smiley-content/content-29.gif Merci http://www.smileys-gratuits.com/smiley-merci/merci-1.gif 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.
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