Aller au contenu

DenisHen

Membres
  • Compteur de contenus

    4 029
  • Inscription

  • Dernière visite

  • Jours gagnés

    21

Tout ce qui a été posté par DenisHen

  1. 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...
  2. Si (gile) s'en mêle... Je ne pourrais jamais faire mieux... ;)
  3. 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...
  4. Re. La variable CLAYER peut aussi être intérogée. Je ne suis pas très sûr d'avoir compris... Tu veux dessiner une flèche avec un texte au bout et ce texte serait le nom d'un calque sélectionné par le choix d'une entité ?
  5. 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...) :
  6. Alors pourquoi insérer un bloc contenant un seul texte pour le décomposer après...? Pourquoi ne pas écrire directement le texte ?
  7. 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 ?
  8. Salut. As-tu essayé avec la variable CLAYER ?
  9. 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...
  10. Salut et bienvenue à toi...
  11. DenisHen

    Nouveau Site Perso

    Salut didier, chez moi, c'est nickel sur Chrome 62 (64 bits).
  12. Bonjour messieurs, et merci pour votre aide. Étant donné que mes Xref sont toujours "brutes", c'est à dire insérées à 0,0, pas de rotation et une échelle de 1, les deux lignes de didier me suffisent. Mais pour une plus grande utilisation, je vais utiliser les lignes de Maître (gile). Bien que je ne comprend pas tout... J'en saisi le sens... Encore merci à vous...
  13. Bonjour à vous, et merci de votre aide... Je vais fouiller NCOPY que je ne connaissais absolument pas... Très précieux ces ExpressTools... Encore merci à vous...
  14. Bonjour à tous. Voilà, j'aimerais, en cliquant sur une polyligne d'une Xref, l'inclure dans le dessin courant. Je ne pense pas à un copier/coller, mais plutôt à récupérer les sommets de la polyligne avec un nentget et la redessiner dans le dessin courant... Mais je ne sais pas trop par quoi commencer, je n'ai jamais manipulé de polyligne. Si quelqu'un a une astuce, un conseil... je suis preneur...
  15. Bonjour à tous, et merci pour votre aide... C'est mieux comme ça, merci BonusCAD...
  16. Bonjour à tous. Voilà, aujourd'hui, je cherche à sélectionner plusieurs textes dans plusieurs bloques, je concatène le tout et je fais un MText avec. Pour l'instant, je n'arrive pas à sortir de ma boucle (while lorsque je ne clique plus de texte, donc, au moment ou j'écrirais le MText. Voici mon bout de code : (defun c:DHTest () (while (/= Text "") (setq Obj (entget (car (nentsel "\nSélectionnez le texte dans le bloc :")))) (setq Text (cdr (assoc 1 Obj))) (princ Text) ) ;_ Fin de while (princ) ) ;_ Fin de defun Et voici le résultat, je sélectionne deux textes (22-03-05 et 22-03-04) puis, je fais [ENTRER], voici le résultat : Donc, je ne sors jamais de ma boucle, elle s'interrompt toute seule... Avec "lentityp", et je ne trouve pas grand-chose là-dessus... Si quelqu'un a une astuce, un conseil... Je suis preneur...
  17. Et voilà, (gile) passe et la solution est là...
  18. C'est le but, content de t'aider... Là, je ne vois pas trop comment faire...
  19. Oui, on peut (je l'ai déjà lu) mais le chemin dans la base de registre est différent selon la version d'AutoCAD... Mais on s'éloigne du petit bout de code fait pour gagner quelques petites heures...
  20. Re. 1) De rien... 2) j'ai cherché si c'était une variable, mais je n'ai rien trouvé... Entièrement d'accord sur la rapidité du lisp dans ce cas...
  21. Si tu veux placer les hachures dans le même calque que les contours 1 par 1 : ;;; hachure selon contours dans même calque, pour La Lozère de CadXP ;;; DenisHen... (defun c:hs (/ ss n) (setq old_layer (getvar "clayer")) (while (setq ent (car (entsel "\nSélectionnez le contour :"))) (setq NomCalq (cdr (assoc 8 (entget ent))) ) ;_ Fin de setq (setvar "clayer" NomCalq) (command "_bhatch" "_select" ent "" "") (setvar "clayer" old_layer) (princ (strcat "\nNomCalq=" NomCalq)) ) ;_ Fin de while (princ) ) ;_ Fin de defun J'ai choisi de hachurer chaque contour un par un... Je trouve ça plus "propre"... On aurait pu aussi créer un calque NomCalq + "_HACH" pour faire plus pratique. Exemple, si le contour est dans le calque Contour, on créé un calque Contour_HACH et on place les hachures dedans...
  22. Salut La Lozère. PS : le message suivant est le bon...
  23. Puisque vous insistez, voici la ligne à ajouter après "_explode" : (command "-purger" "bl" (substr (nth b ListFich) 1 (- (strlen (nth b ListFich)) 4)) "n") Mais attention, je n'ai pas le temps de tester... Encore merci pour vos aides et remarques... ;)
  24. Je préfère laisser les autres utilisateurs de cette routine faire ce qu'ils voudront. Perso, j'ai un autre bouton qui fait environ ce que tu dis.
  25. Salut à vous. @didier : je n'en attendais pas plus, et je te remercie pour ton aide toujours précieuse et... Minimaliste ;) @lecrabe : merci pour ce conseil, mais je ne traite que de DXF issus du Cadastre, donc, pas d'attributs. Pour les autres, voici la routine que je viens d'écrire : ;;; Insert les feuilles du Cadastre en DXF (defun c:InsCadDXF (/) (princ "\nDéveloppé par Denis H.") (setq RepDXF (getvar "dwgprefix")) (setq ListFich (vl-directory-files RepDXF "*.dxf")) (setq a 0) (while (/= (nth a ListFich) nil) (setq a (+ a 1))) (setq b 0) (while (/= (nth b ListFich) nil) (princ (strcat "\nProgression : " (rtos (+ b 1) 2 0) "/" (rtos a 2 0))) (command "_insert" (strcat RepDXF (nth b ListFich)) '(0 0 0) 1 1 0) (command "_explode" "_last") (command "zoom" "et") (setq b (+ b 1)) ) ;_ Fin de while (princ) ) ;_ Fin de defun Cette commande insert tous les DXF inclus dans le répertoire du DWG actif. Chaque DXF sera décomposé après leur insertion... Encore merci à didier... Denis...
×
×
  • 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é