• Ce forum est la traduction générée par la machine de www.cad3d.it/forum1 - la communauté italienne du design. Plusieurs termes ne sont pas traduits correctement.

Exploser un bloc contenu dans un autre bloc

  • Auteur du sujet Auteur du sujet rdilecce80
  • Date de début Date de début

rdilecce80

Guest
Salut, les gars.
Bonnes fêtes à tous.
Je n'ai jamais eu de problème à Autocad.
crème pour couper la peau.
Chaque centime en autocad est un bloc à lui-même.
cette fois, cependant, j'ai obtenu un fichier qui contient toutes les lames mais, dans les lames il y a les talons célèbres qui, cependant, sont des "blocs dans les blocs" ou, l'entaille est une ligne mais un bloc.
Comme ils sont de 280 cents et que je dois les sauver en dxf et les importer dans le programme spécifique, je n'aurais besoin d'exploser que le bloc talon.
résultat final pour chaque centime, sera un ensemble de lignes, txt et polylinee regroupés dans un bloc.

La procédure à suivre est la suivante:
1 - ouvrir le bloc "dima1" dans l'éditeur de blocs
2 - Bloc d'explosion "tacca"
3 - fermer et économiser.

Merci à quiconque pourrait me décevoir sur cette question
 
sélectionnez tous les blocs de tac en utilisant les commandes _filter
_filter lance, choisir dans le menu déroulant "block name" (ou block name) et écrire dans la caselle vos encoches, puis ajouter.
a fait cela lorsque vous donnez ok acad vous permet de sélectionner tous les dwg et il rejette les blocs des encoches de nom, vous laissant comme sélection tous les blocs encoches.
d'une explosion et aux objets de sélection répondent avec un p (précédent) et voilà le jeu est fait.
 
Merci pour la réponse.
n'agit pas :

Alors :
1. il y a 280 blocs chacun avec son nom propre (par exemple bloc1; bloc2; bloc3... )
2. chaque bloc est formé par une polylinea, un txt et un autre bloc appelé entchs2 (qui est la célèbre entch)
3. Je vais dans filtre - nom du bloc - ajouter encotchs2 bloc - appliquer - me dit: sélectionner des objets.
4. J'essaie de sélectionner tous les blocs mais me dit: 0 trouvé
 
votre commande est valide si les 280 blocs ont explosé mais pour filtrer seulement le bloc dans le bloc, il ne va pas
 
En attendant au lisp je suggère un escamotage, qui peut ne pas être rapide cependant:
entrez le bloc que vous voulez exploser
insérer une figure qui la met en évidence du reste du dessin comme un cercle d'une couleur non présente ou sur une couche dédiée
Sors du bloc et sauve-le.
maintenant vous avez tous les blocs contenant le bloc à exploser
sélectionnez un cercle et changez le bloc de premier niveau où vous explorez le contenu et supprimez le cercle. pour accélérer la procédure associe le double-clic sur le bloc sa modification.
 
En attendant au lisp je suggère un escamotage, qui peut ne pas être rapide cependant:
entrez le bloc que vous voulez exploser
insérer une figure qui la met en évidence du reste du dessin comme un cercle d'une couleur non présente ou sur une couche dédiée
Sors du bloc et sauve-le.
maintenant vous avez tous les blocs contenant le bloc à exploser
sélectionnez un cercle et changez le bloc de premier niveau où vous explorez le contenu et supprimez le cercle. pour accélérer la procédure associe le double-clic sur le bloc sa modification.
Hmm déjà essayé de mettre tous les talons sur une couche entrant dans le bloc encoches2. Si j'éteins tous les niveaux sauf ça, ça me fait voir seulement les talons mais je ne peux pas les exploser autrement chaque bloc explose: froncement:
 
déjà essayé de mettre tous les talons sur une couche entrant dans le bloc entchs2
Ce n'est pas ce que j'ai écrit.
Cependant, c'est aussi un système valide ; identifier le bloc encoches2 que vous entrez dans la modification du bloc qui le contient et vous pouvez exploser encoches2.
utilisant la commande modifrif vous travaillez sans entrer dans le mode de gestion de bloc permettant une plus grande vitesse d'exécution.
comme vous le voyez dans l'image avec la commande modifrif ouvre une fenêtre montrant les blocs modifiables à plusieurs niveaux et vous pouvez décider sur quel agir ; dans le cas concerné, vous sélectionnerez le bloc supérieur à enchs2 afin de pouvoir exploser le bloc à l'intérieur. vous sortez avec le commandement chiudirif qui sauve le blocImmagine.jpg
 
Merci beaucoup pour les réponses.
Maintenant je commence donc à attendre quelques bonnes âmes qui créent un lisp pour accélérer considérablement le travail.

J'ai désactivé toutes les couches à l'exception du "4" de sorte qu'il ne devrait pas toujours zoomer sur chaque pièce :rolleyes:

Bonne année! :finger:
 
Essayez ce programme qui n'explose que les talons, sans exploser les lames. la sélection requise est uniquement pour les blocs. les blocs qui ne contiennent pas de crans2 ne sont pas traités.
Code:
(défun c:esptac (/ blocs gru dima index listadima count)
(blocs setq(blocs vla-get-blocks (document vla-get-active(vlax-get-acad-object))))
gru(ssget '((0 . " insérer"))
)
(répétition (indice de setq(longueur gru))
(setq dima(ssname gru (setq index(1- index))))
listadima (blocs d'éléments vla (cdr(assoc 2))))
nombre 0
)
(vlax-pour elem listadima
(si (et (égal (vla-get-objectname (vla-item listadima compter)) "acdblockreference")
(égal (vla-get-name (vla-item listadima count)) "notchs2")
)
(vla-item listadima compte)
)
(nombre défini (1 + nombre))
)
)
)
 
confutatis, merci beaucoup pour la réponse.

C'est une lèvre ou je la mets en vba ?

Si vba comment puis-je l'insérer ? Je ne planifie pas vraiment. Excusez-moi.
 
J'ai essayé de créer un lis appelé esptac.

Je l'ai téléchargé mais l'erreur suivante ressort:
commande: _appload esptac.lsp caricato.
commande & #160;:
commande & #160;:
commande & #160;:
; erreur: aucune définition de fonction: vlax-get- acad-object
uso autocad 14 64bit su win7
 
Dernière édition:
après une recherche google, je suis venu à la conclusion que vous avez dû ajouter la ligne (vl-load-com) et Travaux.

Code complet:
(défun c:esptac (/ blocs gru dima index listadima count)(vl-load-com)(blocs setq(blocs vla-get-blocks (document vla-get-active(vlax-get-acad-object))))
gru(ssget '((0 . " insérer"))
)
(répétition (indice de setq(longueur gru))
(setq dima(ssname gru (setq index(1- index))))
listadima (blocs d'éléments vla (cdr(assoc 2))))
nombre 0
)
(vlax-pour elem listadima
(si (et (égal (vla-get-objectname (vla-item listadima compter)) "acdblockreference")
(égal (vla-get-name (vla-item listadima count)) "notchs2")
)
(vla-item listadima compte)
)
(nombre défini (1 + nombre))
)
)
)

problème résoluMerci beaucoup à tous pour votre patience et votre soutien
 
Je vois que vous avez annulé votre demande d'insérer l'entaille explosée sur la couche "4". cette version résout le problème
 

Pièces jointes

Oui, j'avais supprimé la demande d'insérer l'entaille explosée sur le calque "4" parce que je suis entré dans le bloc entchs2, je l'ai inséré manuellement sur le calque 4 et tout fonctionne.
J'ai ensuite essayé ce dernier lsp que vous m'avez envoyé mais ne les met pas automatiquement sur la couche 4. cmq peu importe.
Pour moi, l'important était d'exploser les talons tous ensemble et pas un bloc à la fois.

Merci beaucoup pour tout :
 
à la limite, si vous voulez changer le calque, changez simplement la ligne (vla-put-layer écoute "4"), où "4" est le nom du calque
 

Statistiques du forum

Sujets
58 521
Messages
499 056
Membres
104 110
Dernier membre
ChristianR

Membres en ligne

Aucun membre en ligne actuellement.
Retour
Haut