Aller au contenu

[Résolu] Bloc 3D créer dans un SCU non général


Steven

Messages recommandés

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.

Lien vers le commentaire
Partager sur d’autres sites

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 -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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 -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

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 -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

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 -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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 -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

À 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.

Lien vers le commentaire
Partager sur d’autres sites

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 -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

C'est beau smile.gif

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.

Lien vers le commentaire
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • 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é