Aller au contenu

Insérer block plusieurs fois et décomposer


Hydro8

Messages recommandés

Bonjour,

 

J'ai besoin d'une lisp surement simple à réaliser mais j'ai toujours un problème pour y arriver.

 

Je veux insérer un block (qui est en faite un texte multiligne prédéfini) plusieurs fois et le décomposer à la volée.

 

Cependant je veux avoir un aperçu du texte sous le curseur avant de l'insérer.

 

Du coup la technique de mettre * devant le nom du block ne fonctionne pas car cela enlève l'aperçu.

 

Voila pour le moment à quoi je suis arrivé :

 

(defun C:MBALCON (/ BLK)                       
(setvar "INSUNITS" 6)
 (setq BLK "copro-piece_balcon")        
 (command "._-insert" BLK pause 1 1 0)
 (command "_.explode" "d" "")           
 (MBALCON_LOOP)                                       
 (princ))                                            

(defun MBALCON_LOOP ()
 (C:MBALCON)                                        
 (princ))

 

Le premier problème c'est que à chaque insertion j'ai le message : "Commande inconnue MBALCON", puis-je faire quelque chose pour ça ? Pourtant tout se passe bien.

 

Le deuxième problème, est-il possible de faire cela en une seule fonction ? Je n'aime pas trop le faite de créer deux fonctions pour chaque texte.

 

Enfin troisième problème / astuce, est-il possible d'avoir un argument pour une fonction lisp ? Cela me permettrait de faire une seule fonction et de donner le nom du dwg en argument dans le CUI que j'ai créé.

 

Merci pour votre aide !

Lien vers le commentaire
Partager sur d’autres sites

Bon j'ai trouvé pour mon deuxième problème, j'ai réussi à réduire la fonction à :

 

(defun c:MCHAMBRE()
   (setvar "INSUNITS" 6)
   (while t
    (command "_.-insert" "copro-piece_chambre" pause 1 1 0 "")
       (command "_.explode" "d" "")  
   )
)

 

Mais toujours le premier problème et mon interrogation pour les arguments.

Lien vers le commentaire
Partager sur d’autres sites

Salut.

 

Ayant fais énormément de copropriété, je serais toi, j’insérerai directement un bloc avec des attributs comme NumLot, NomPiece, Surf... Pour, ensuite, par exemple, cliquer sur la polyligne du contour de la pièce et sélectionner le bloc pour mettre à jour la surface de cette pièce...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Enfaite ces lisps me sont utiles quand je traite des copro en VEFA sur les plans architectes.

 

Je "nettoie" les plans de toutes informations techniques et j'y insère le nom des pièces sans considération de surface ni de polyligne.

 

Du coup au lieu d'ouvrir à chaque fois un ancien plan pour récupérer les écritures des pièces, j'ai fais ces lisp que j'ai intégré dans le CUI d'entreprise.

Lien vers le commentaire
Partager sur d’autres sites

Re.

 

Je faisais exactement la même chose. Mais j'utilisais les surfaces du dessin et jamais celles de l'archi... On ne sait jamais...

 

Que comporte ton texte multiligne ?

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Alors pourquoi insérer un bloc contenant un seul texte pour le décomposer après...?

 

Pourquoi ne pas écrire directement le texte ?

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Pour éviter la saisie des noms à chaque fois, je trouve sa plus rapide / simple de cliquer pour insérer le nom de la pièce que de copier un texte et changer son nom.

 

En plus cela permet d'avoir la même orthographe pour chaque pièce. On a déjà eu des personnes qui écrivaient pas les bonnes abréviations ou tous en majuscule etc...

Lien vers le commentaire
Partager sur d’autres sites

Ce petit bout de Lisp écrit un texte directement. Tout se fait en deux cliques, un sur l'icone et un autre à l'insertion du texte...

;;; Pour Hydro8 de CadXP.com
;;; Fait par DenisHen de CadXP.com
(defun c:CoproTxt (NomPiece / pt_ins)
 (if (not (tblsearch "style" "NomPiece"))
   (command "-style" "NomPiece" "arial.ttf" "" "" "" "" "" "")
   (command "textstyle" "NomPiece")
 ) ;_ Fin de if
 (setq pt_ins (getpoint "\nPoint d'insertion du texte : "))
 (command "_.text" "j" "mc" pt_ins 0.5 100 NomPiece)
 (princ)
) ;_ Fin de defun

 

Tu places dans un bouton : "^c^c(c:CoproTxt "Chambre");" et tu fais autant de bouton que de nom de pièce... Et vu que c'est un Lisp, tut peux aussi forcé le calque au cas ou tu travaillerais dans un autre pendant les écritures...

 

C'est juste un petit bout de code pour te montrer une autre solution.

 

Voici un extrait de mon fichier MNS de l'époque (fin des années 90... Oulala, quel coup de vieux...) :

Arrière boutique / Atelier / Boutique / Buanderie / Bureau / Cave / Céllier / Chambre / Chambre 1 / Chambre 2 / Chambre 3 / Chambre 4 / Chambre 5 / Chaufferie / Commerce / Couloir / Cuisine / Dgt / Dégagement / Entrée / Garage / Grenier / Pl. / Placard / Salle à manger / Salle de bains / Salle d'eau / Salon / Séjour / Vestiaire / Water-closet / W-c

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Je pense que ça te prendrais un gros quart d'heure pour te faire une palette d'outils avec tout ces noms de pièce...

 

En plus, j'ai oublié les pièces non closes : balcon / jardin / terrasse / loggia...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

De rien...

 

Une liste déroulante impose, outre de toucher au ruban, deux cliques, la palette n'en demande qu'un.

 

De plus, la palette est beaucoup plus facilement "transportable" et souple que le ruban.

 

Mais pour les deux, il faut créer une commande...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Oui mais du coup il faut ouvrir la palette :)

 

Bon sa fait deux cliques que la première fois.

 

Le principal problème avec la méthode texte, c'est qu'on ne voit pas le texte avant de l'insérer comme les blocks. Du coup sa peut être compliqué de placer le texte dès le début, on sera souvent amené a insérer le texte et le déplacer ensuite.

Lien vers le commentaire
Partager sur d’autres sites

On peut faire apparaître le texte, mais ça demande un clique de plus...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Voici comment :

;;; Pour Hydro8 de CadXP.com
;;; Fait par DenisHen de CadXP.com
(defun c:CoproTxt (NomPiece / Pt_Ins)
 (if (not (tblsearch "style" "NomPiece"))
   (command "-style" "NomPiece" "arial.ttf" "" "" "" "" "" "")
   (command "textstyle" "NomPiece")
 ) ;_ Fin de if
 (setq Haut 0.5) ; Hauteur du texte
 (setq Rotat 100) ; Rotation du texte
 (setq Pt_Ins (getpoint "\nPoint d'insertion du texte : "))
 (command "_.text" "j" "mc" Pt_Ins Haut Rotat NomPiece)
 (command "_move" "_last" "" "_non" Pt_Ins pause) ;  <-- Ajoute cette ligne ***********************
 (princ)
) ;_ Fin de defun

En premier lieu, ne place pas le texte là où il doit être. Place-le à coté, puis, après, positionne-le exactement là où tu veux...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Salut.

 

Tu fait un clic droit sur ta palette ou tu clic sur le petit rouage, et dans le menu déroulant tu sélectionne "Personnaliser les palettes".

 

Tu va avoir à gauche toutes les palettes, et à droite les groupes de palettes en arborescence tels qu'il t’apparaissent.

 

Pour créer une palette c'est clic droit "nouvelle palettes" sur une palette existante à gauche, pour les groupe idem à droite sur un groupe existant. Tu peut déplacer les groupes et les palettes par glissé-déposé.

 

Il est possible d'assigner une palette à plusieurs groupes (par exemple j'ais mis ma palette de cartouche dans tout mes groupes, de schéma ou d'implantation).

 

Pour ne pas être pollué par les palette par défaut d'acad je les ais toutes regroupées dans un même groupe parce qu'on perd moins de temps qu'a toutes les supprimer (aprés moi je suis du genre "on sait jamais, ça peut toujours servir").

 

Tu peut aussi créer un palette en faisant un clic droit sur l'onglet de ta palette d'outil, elle sera alors automatiquement placée dans le groupe actif.

 

Pour remplire une palette, pour des blocs il faut passer par le DisignCenter, pour des types de lignes, hachures, cotes ex... par simple glissé-déposé depuis le dessin (à vérifier, moi j'utilise pas), pour des commandes je sais pas.

 

Cordialy.

Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux.
Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage !
Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;])

Utilisateur d'AutoCAD 2021 sous Windows 10

Lien vers le commentaire
Partager sur d’autres sites

Bon j'ai trouvé pour mon deuxième problème, j'ai réussi à réduire la fonction à :

 

(defun c:MCHAMBRE()
   (setvar "INSUNITS" 6)
   (while t
   	(command "_.-insert" "copro-piece_chambre" pause 1 1 0 "")
       (command "_.explode" "d" "")  
   )
)

 

Mais toujours le premier problème et mon interrogation pour les arguments.

 

une vieille astuce

pour insérer un bloc et le décomposer, il suffit de mettre un Astérix devant le nom du bloc

(command "_.-insert" "*copro-piece_chambre" pause 1 1 0 "")

Vous fîtes ce que vous pûtes

et vous m'épatâtes !!!!

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é