Aller au contenu

Macro : Bloc


Messages recommandés

Bonjour Mesdames et Messieurs,

Avant de devenir fou je me suis dit et si tu allais faire un tour sur CadXP.

La macro

Citation

BLOC:

Permet de conserver ma sélection et de créer un bloc via la fenêtre de définition de bloc jusque la rien de sorcier 

Cependant la macro

Citation

BLOC;SELECT;D;;^C^C_CHPROP;CA;0;CO;DuCalque;TL;DuCalque;EP;DuCalque;;

Refuse de m'ouvrir la fenêtre de définition de bloc et me propose de faire ca en "ligne de commande"

J'ai essayer moulte variantes sans succès...

Merci d'avance 

 

Lien vers le commentaire
Partager sur d’autres sites

Coucou,

Petite question juste pour être sûre : tu cherches à remplacer les propriétés (calques, couleur, type de ligne) pour les objets devant composer la nouvelle définition de bloc, ou bien pour la nouvelle référence de bloc ?

Car si c'est bien les sous-objets, je pense qu'il est alors préférable de faire ces modifications en amont afin de lancer la commande BLOC à la toute fin. Le  problème des boîtes de dialogue dans une macro ou autre, c'est qu'une fois qu'elle est ouverte, le programme n'a plus la main sur quoi que ce soit et donc rien ne se fait. C'est pour cela que les commandes utilisant des boîtes de dialogue ont toujours une version homonyme qui utilisent uniquement la ligne de commande (il suffit d'ajouter un "-" devant le nom de la commande).

Je ne maîtrise pas les macros mais peut-être que dans ce genre de cas, afin de permettre à la macro de terminer son exécution, il utilise les versions sans boîtes de dialogue si jamais des actions sont nécessaires après l'exécution de la boîte de dialogue. 

Bisous, Luna

Lien vers le commentaire
Partager sur d’autres sites

Hello 

Mon but est de faire un commande qui créer mes bloc uniquement sur le calque 0 avec tout ses paramètres de base sans que j'ai à me soucier de les redéfinir 

J'ai en effet essayer de faire la manipulation dans l'autre sens mais cela me fait perdre ma sélection et donc ajoute 2-3 étapes supplémentaires dont je souhaiterais me passer et en ajoutant "SELECT" avant "BLOC" je n'arrive pas à récupérer l'intégralité de ma dernière sélection 

La commande ressemble à ça

Citation

_-LAYER;CH;"0"; _-COLOR;DUCALQUE;-TYPELIGNE;A;DuCalque;;-EPAISSLIGNE;DuCalque;; BLOC;

La bise

Lien vers le commentaire
Partager sur d’autres sites

Pas sûr d'avoir tout compris; une fois tous les objets sélectionnés, il faut

- changer leurs propriétés pour les mettre sur le calque 0, et leur affecter la couleur / type de ligne / épaisseur à Ducalque, puis resélectionner ces mêmes objets et lancer la commande BLOC

ou bien

- les laisser tels quels et lancer la commande BLOC, puis une fois le bloc créé (par conversion), il faut le mettre sur le calque 0 et lui affecter la a couleur / type de ligne / épaisseur à Ducalque.

 

Pour la 1ère solution, il vaut mieux utiliser la propriété Dubloc, plutôt que Ducalque => ça rend les blocs plus souples pour une utilisation ultérieure

Pour la 2eme solution, c'est la pire façon de créer des blocs, sauf si le but du jeu est d'empoisonner la vie des utilisateurs et leur faire perdre beaucoup de temps dans la réutilisation du plan.

 

Olivier

Lien vers le commentaire
Partager sur d’autres sites

Salut @Reyoh,

Pour ajouter un complément d'information à la réponse d'@Olivier Eckmann, concernant la propriété des objets d'un bloc en DUBLOC, DUBLOC, DUBLOC, voici une vidéo expliquant les subtilités d'un bloc créé en DUCALQUE ou en DUBLOC.

 

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

Bonjour @Olivier Eckmann,

Je choisit la solution 2 car j'ai déjà une commande qui redéfinit les calques avant création du bloc donc ma sélection doit rester tel qu'elle lorsque je crée mon bloc.

Mon soucis viens du fait que je jongle entre pas mal de calque et que lorsque je crée un bloc il n'est pas sur le calque 0 mais se met sur le calque courant ce qui lors de la publication peu engendrer des problèmes exemple : bloc sur calque defpoint et donc invisible à l'impression

Ce qui généralement m'oblige a corriger mes erreurs + refaire une publication ce qui est une perte de temps absolue 

La solution est donc de redéfinir les valeur courantes sur calque 0 / DuCalque puis créer le bloc ou inversement créer le bloc puis redefinir les valeurs du bloc sur calque 0 / DuCalque

à savoir que la commande de mon 2em message fonctionne mais m'oblige a refaire la sélection lors de la création du bloc ce qui m'ennuie mais reste une solution acceptable pour le moment (je souhaite sauter l'étape de la sélection et la faire avant de lancer ma commande tout en conservant la fenêtre "définition de bloc")

Citation

_-LAYER;CH;"0"; _-COLOR;DUCALQUE;-TYPELIGNE;A;DuCalque;;-EPAISSLIGNE;DuCalque;; BLOC;

Bonjour @Steven,

Merci pour le complément avec un peu de chance je trouverais la motivation de me farcir les 25min de video ^^'

La bise ! =)

Lien vers le commentaire
Partager sur d’autres sites

il y a une heure, Reyoh a dit :

Bonjour @Olivier Eckmann,

Je choisit la solution 2 car j'ai déjà une commande qui redéfinit les calques avant création du bloc donc ma sélection doit rester tel qu'elle lorsque je crée mon bloc.

Mon soucis viens du fait que je jongle entre pas mal de calque et que lorsque je crée un bloc il n'est pas sur le calque 0 mais se met sur le calque courant ce qui lors de la publication peu engendrer des problèmes exemple : bloc sur calque defpoint et donc invisible à l'impression

Ce qui généralement m'oblige a corriger mes erreurs + refaire une publication ce qui est une perte de temps absolue 

La solution est donc de redéfinir les valeur courantes sur calque 0 / DuCalque puis créer le bloc ou inversement créer le bloc puis redefinir les valeurs du bloc sur calque 0 / DuCalque

à savoir que la commande de mon 2em message fonctionne mais m'oblige a refaire la sélection lors de la création du bloc ce qui m'ennuie mais reste une solution acceptable pour le moment (je souhaite sauter l'étape de la sélection et la faire avant de lancer ma commande tout en conservant la fenêtre "définition de bloc")

Bonjour @Steven,

Merci pour le complément avec un peu de chance je trouverais la motivation de me farcir les 25min de video ^^'

La bise ! 😃

Se farcir 25 minutes de vidéo une seule fois peut peut-être faire gagner 25 minutes tous les jours 😉

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

@Olivier Eckmann

La commande que tu m'a fournie ne fonctionne pas "_.PSELECT" n'est pas reconnue.

Comme je le précisait dans mon 2em message en la remplaçant "_.PSELECT;P;;" par "SELECT;P;;" je perd ma sélection d'où l'intérêt de créer le bloc dans un premier temps et enfin changer le bloc de calque, type de ligne, etc

Au final le vrais problème de ma commande c'est qu'en exécutant celle qui suit il ne me propose de créer mon bloc en ligne de commande et ne m'ouvre pas la fenêtre de définition (voir screen) pour autant la commande "BLOC" seule m'ouvre bien cette fameuse fenêtre. 

Citation
BLOC;SELECT;D;;^C^C_CHPROP;CA;0;CO;DuCalque;TL;DuCalque;EP;DuCalque;;

image.png.89e38139064913d9a407bf2dd42baaf6.png

@Steven Certes mais en se recentrant sur le problème on parle bien de macro et non pas de création de bloc.

La bise ! ;) 

Lien vers le commentaire
Partager sur d’autres sites

@Olivier Eckmann

Merci ça marche exactement comme je l'entendait ! =) 

Par contre je m'interroge sur la fin de la macro : 

(sssetfirst nil (ssget "_P"))

C'est du code LISP ça ? ce qui veut dire que je peut intégrer des élément de LIPS dans les macros DIESEL. 

Ce qui veut également dire que malgré mon envie de ne pas m'y intéressé il faudra bien y passer un jour ^^'

La bise

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @Reyoh

mon envie de ne pas m'y intéresser

Alors là !, j'avais jamais vu ça, des gens qui n'ont pas le temps, OK, des gens qui n'ont pas le besoin, OK, mais ENVIE de ne pas le faire, jamais !
Quelque part, c'est respectable, car c'est une drogue dure et une fois le doigt mis dans l'engrenage, il n'est pas simple de le retirer.
Pour bien progresser, il faut se fixer un but pas trop éloigné et ensuite ça roule tout seul avec l'aide existante aujourd'hui sur la toile.

Amicalement

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

Bonjour @Reyoh,

 

Personnellement, je trouve le DIESEL bien plus indigeste que le LISP. Ceci dit, dans le code envoyé, hormis ce qui est entre parenthèse, le reste c'est de la macro simple et pas du Diesel.

Surtout que depuis LT 2024, le support du lisp permet de se passer de diesel dans bien des cas.

 

Mais je rebondis sur mes remarques précédentes. Dans AutoCAD, il n'y a aucune obligation, juste des recommandations de bonnes pratiques parmi lesquelles on peut citer :

- ne rien dessiner ou insérer sur le calque 0

- à de rares exceptions près, les objets constituant des blocs doivent avoir leurs propriétés mises à DUBLOC et être définis sur le calque 0

- si on crée un bloc, en règle générale, c'est qu'il va être utilisé plusieurs fois dans un même dessin.

- et bien d'autres choses...

Souvent ces bonnes pratiques ne sont pas respectées, par fainéantise ou par méconnaissance, mais rarement de manière délibérée.

Dans ton cas, tu as besoin d'une macro donc j'imagine que tu vas créer beaucoup de blocs avec des objets définis dans des calques autres que 0 et avec éventuellement des propriétés forcées et ces blocs sont ensuite insérés sur le calque 0.

Comme je l'avais dit, c'est vraiment la pire des manières de travailler et s'il y a une raison de pratiquer ainsi j'aimerais bien la connaître. S'il s'agit juste de regrouper des objets pour les manipuler ensemble de manière plus facile, il y a les groupes qui sont fait exactement pour cela.

Loin de moi l'idée de passer pour un moralisateur, mais on est sur un forum d'entraide, aussi bien pour répondre aux questions posées que sur la méthodologie, et parfois la réponse consiste à expliquer la bonne méthode de travail, plutôt que s'enfermer dans une méthode qui n'est peut-être pas la plus efficiente.

 

Olivier

Lien vers le commentaire
Partager sur d’autres sites

 @Olivier Eckmann Pour répondre à ta question il y a bien une raison au fait d'avoir un bloc avec des calques biens définis

Nous utilisions un logiciel métier qui nous permet de générer des dessins à partir d'un paramétrage effectuer en amont, afin de nettoyer ces dessins nous regroupons / gelons certain calques via une macro pour obtenir un ensemble cohérent à notre usage. A partir de la nous transformons notre résultat en bloc afin d'avoir un objet unique et non pas un groupe qui peu être scindé en cas d'inattention. Les bloc ainsi créer nous servent à établir nos plans qui n'ont pas vocation à être exploité par d'autres entreprises mais plutôt a être imprimer au format .pdf sachant que chaque calque a ses propre paramètre d'impression ce qui nous contraint a choisir le bon calque pour des objets bien définit. 

En espérant avoir répondu à tes interrogations ;)   

La bise !  

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é