Aller au contenu

LUDWIG

Membres
  • Compteur de contenus

    1 396
  • Inscription

  • Dernière visite

Tout ce qui a été posté par LUDWIG

  1. --> il ne faut surtout pas que je renomme mes calques ! Le but de mon bouton est juste de selectionner les objets qui sont sur des calques *D$*... --> C'est quoi WCMATCH ?
  2. LUDWIG

    Code DXF

    --> Je ne comprends pas trop ce que cela signifie... mais bon ! J'ai effectivement l'impression que le code 62 est inexistant quand la couleur est bylayer, c'est pour cela que j'ai testé : (if (/= (cdr (assoc 62 n)) nil)... mais bon, ça ne marche pô !
  3. LUDWIG

    Code DXF

    Rebonjour, Patrick_35 m'avait gentiment transmis un programme pour "normaliser" chaques entités constituant chaques blocs d'un dessin. (defun c:bl(/ i n tot) (setq i (tblnext "block" t) tot 1) ; RECHERCHE LA PREMIERE ENTREE DANS LA TABLE DES BLOCS (while i (setq n (cdr (assoc -2 i))); SELECTIONNE LA PREMIERE ENTITE QUI COMPOSE LE BLOC (while n (setq n (entget n)); RECUPERE LES VALEURS DES ENTITES QUI COMPOSE LE BLOC (if (/= (cdr (assoc 8 n)) "0") (progn (setq n (subst (cons 8 "0") (assoc 8 n) n)) ;SI L'ENTITE N'EST PAS SUR 0, LA DEPLACE SUR 0 (entmod n) ) ) (setq n (entnext (cdr (assoc -1 n)))) ;ENTITE SUIVANTE ) (setq i (tblnext "block") tot (1+ tot)) ;BLOC SUIVANT ) (princ (strcat "\nTraitement de " (itoa tot) " bloc(s)")) (princ) ) Je l'ai modifié pour que les entités soient également nomalisées en couleur dubloc : (defun c:bl2(/ i n tot) (setq i (tblnext "block" t) tot 1) ; RECHERCHE LA PREMIERE ENTREE DANS LA TABLE DES BLOCS (while i (setq n (cdr (assoc -2 i))); SELECTIONNE LA PREMIERE ENTITE QUI COMPOSE LE BLOC (while n (setq n (entget n)); RECUPERE LES VALEURS DES ENTITES QUI COMPOSE LE BLOC (if (/= (cdr (assoc 8 n)) "0") (progn (setq n (subst (cons 8 "0") (assoc 8 n) n)) ;SI L'ENTITE N'EST PAS SUR 0, LA DEPLACE SUR 0 (entmod n) ) ) [b] (if (/= (cdr (assoc 62 n)) 0) (progn (setq n (subst (cons 62 0) (assoc 62 n) n)) ;SI L'ENTITE N'EST PAS de couleur 0, la change en 0 (couleur 0 =dubloc) (entmod n) ) )[/b](setq n (entnext (cdr (assoc -1 n)))) ;ENTITE SUIVANTE ) (setq i (tblnext "block") tot (1+ tot)) ;BLOC SUIVANT ) (princ (strcat "\nTraitement de " (itoa tot) " bloc(s)")) (princ) ) Ca marche, sauf pour les entités qui sont définies en couleur Ducalque : elles restent en couleur Ducalque. J'ai essayé de rajouter : (if (/= (cdr (assoc 62 n)) "256") ; et aussi dubloc ; "dubloc" ; bylayer ; "bylayer" ; nil ; "nil"... (progn (setq n (subst (cons 62 0) (assoc 62 n) n)) (entmod n) ) ) Mais rien n'y fait. Je ne comprends pas d'où vient mon erreur. Quelqu'un pourrait-il m'aider ? Merci d'avance...
  4. LUDWIG

    Conversion en murs

    Mon problème a maintenant été traité... Inutile donc d'y répondre !
  5. Bonjour, Je fais de la "normalisation" de plans et dans ce cadre je renomme les calques XXXD$nom-du_calque (par exemple électricité devient BTED$électricité). J'ai fait un bouton de filtrer des objets pour sélectionner les objets qui sont sur calques "normalisés" (contenant donc *D$*). ^C^C(ssget "I" '((8 . "*D$*")));_pselect;p;; Mon problème est que Autodesk Architectural Desktop interprète le $ comme une commande Diesel alors qu'il faudrait qu'il ne le considère que comme texte. Y--a-t'il un moyen de contourner le problème ou suis-je soumis à l'abandon (je ne peux pas changer le $ pour un autre signe...). Merci de votre aide.
  6. bon je viens de me réintéressé à Begin/undo. J'ai eu du mal mais j'ai compris maintenant comment ça marche (je mettais begin juste après mon defun, undo à la fin, alors qu'il faut les mettre avant et après les " command" qu'on veut grouper) Par contre, qq peut me dire comment fonctionne le (defun *error* (msg)) ?
  7. LUDWIG

    OVERKILL dans un bouton

    Ah OK ! En gros si je voulais mettre mon ssget, il faudrait que je le fasse dans overkill.lsp... En tout cas, ta méthode fonctionne nickel ! (nickelle ?). Merci
  8. Merci quand même
  9. Hello Je veux me faire un overkill dans un bouton : ^C^C-overkill;_all;;f;0.001;i;.;p;y;t;y;e;y;; Le résultat est bien XX duplicate(s) deleted. mais ensuite Choix de l'option incorrect. et les entités ne sont en fait pas effacée. Apparement, c'est mon _all qui n'est pas apprécié, mais je n'arrive pas à restreindre la sélection l'espace objet : (ssget "x" '((410."Model"))) A l'aide SVP !!!
  10. j'ai changé de poste pour ne plus avoir le problème... Je crois qu'il va falloir que je réinstalle Autodesk Architectural Desktop...
  11. Merci je vais essayé ça. Je ne connaissait pas les options de la commande undo.
  12. Ma petite question du jour : Quand on fait un lisp qui lancent des commandes autocad (par exemple transférer des objets sur un nouveau calque du même nom que leur ancien calque mais avec un indice en plus), il est laborieux d'annuler... car il faut annuler moult "(expression lisp)". Existe-t'il un moyen pour que l'annulation se fasse en un seul clic sur "annuler" ?
  13. Un bloc peut avoir plus de 8 attributs ! Seulement quand tu inséres le bloc a plus de 8 attributs, il ne t'affiche que les 8 premiers... pour voir les suivants, il faut cliquer sur "suivant" en bas...
  14. Je crois que maintenant ça marche impec ! Merci encoe de ta générosité (et la générosité de tous les autres membres de CADxp). Un jour viendra, où c'est moi qui vous viendrais en aide (!)...
  15. Il suffit de pas grand chose... Bon, ça marche mais pas à tous les coups (juste 1 fois sur 10). Et je n'ai pas réussi à comprendre pourquoi ça marchait ou pas. Commande: pedit2 Choix des objets: Spécifiez le coin opposé: 153 trouvé(s) Choix des objets: 55 objets sélectionnés sur le calque 'CV-TUY'._pedit Sélectionnez la polyligne ou [Multiple]: _multiple Choix des objets: 55 trouvé(s) Choix des objets: Entrez une option [Clore/Ouvrir/Joindre/Epaiss/Lissage/sPline/Retrouver/Typeligne gén/Annuler]: _yes Choix de l'option incorrect. Mon ACADVER est 16.0s (LMS Tech). J'ai essayé de changé la ligne par (>= (substr (getvar "acadver") 1 4) "16. [b] 0[/b]") mais ça ne marche pas (oui, je n'ai pas tout compris au programme mais j'ai bidouillé, quoi... j'ai au moins compris que le PEDITACCEPT n'existe pas dans les versions antérieurs à 16 d'ou la nécessité de faire 2 lignes de commandes différentes): Commande: pedit2 Choix des objets: Spécifiez le coin opposé: 153 trouvé(s) Choix des objets: 5 objets sélectionnés sur le calque 'CV-CONDENSATS'.; erreur: type d'argument incorrect: (or stringp symbolp): nil Je me demande... Tu fais une comparaison >= sur des chaînes de textes (acadver). Est-ce que ça vient pas de là ? Sinon, au contraire, peut-être imposer le PEDITACCEPT à 0 pour faire une ligne unique de commande (celle avec le "yes"). En tout cas merci de ta précieuse aide...
  16. Merci à vous, Serge et BonusCAD ! Je n'ai pas réussi à fare fonctionner le programme de BonusCAD ("choix de l'option incorrect") et je n'ai pas vu d'où venait l'erreur. Le programme de Serge fonctionne. Mais il doit y rester une toute petite erreur au niveau de la recherche de la version pour le "PEDITACCEPT" : il me lance la ligne de commande ou il y a la réponse "YES" alors qu'il devrait lancer la ligne de commande précédente (sans le "YES") car je suis sur Autodesk Architectural Desktop 2004 avec un "PEDITACCEPT" à 1... Est-ce que ces deux lignes ne sont pas simplement inversées ? Merci les champions (vous faites quoi dans le vie pour être aussi calés en LISP ?)
  17. MERCI Serge mais ce n'est pas tout à fait ça que je recherche... En fait, la première sélection doit se faire sur plusieurs objets de calques différents, et le lisp doit joindre chaque objet calque par calque. Exemple : un plan avec 300 lignes/polylignes calques "eau froide" ; 200 lignes/polylignes calques "eau chaude" ; 150 lignes/polylignes calques "eau usée". On lance la commande. On sélectionne l'ensemble des entités du dessin (ou juste une partie) et le lisp fait : - Pedit/multiple/joindre sur les 300 lignes/polylignes calques "eau froide" - Pedit/multiple/joindre sur les 200 lignes/polylignes calques "eau chaude" - Pedit/multiple/joindre sur les 150 lignes/polylignes calques "eau usée". En résumé, on a lancer qu'une fos la commande pour l'ensemble des calques et il n'y a pas de jointure de calque différents. Euh... je sais pas si mes explications sont très claires ?
  18. Bonjour et bonne année à tous ! Mon problème du jour : quand je fais un Pedit multiple pour joindre différentes lignes/polylignes/... , j'obtiens un résultat abhérrant car autocad joint des entités de calques différents. Y-a-'il un moyen (variable, option) d'empêcher ce mélange (sans lancer la commande pour calque par calque) ? Sinon, en lisp, j'ai ben l'algorithme en tête mais après ces vacances, j'a vraiment du mal à le faire : 1 - Sélection des objets à joindre 2 - Sélection des objets appartenant au calque suivant du jeu de sélection 3 - Commande Pedit - Multiple - Joindre - Type de jointure : prolonger - Distance 0 4 - retour à 2 (désolé je faisais du basic quand j'étais petit)
  19. AHAHA Merci ! Je venais juste de le trouver dans l'aide ! Ben, veille de fête, je m'économisait à ne pas lire l'aide en entier ! Allez, JOYEUX NOEL ! http://images.google.fr/images?q=tbn:5-ydqBZ-SsQJ:www.neteconomie.com/dbphoto/Entreprises/P/20010302185456-350.jpeg
  20. Bonjour, quand j'utilise : (setq [i] fichier [/i](open "c:\\...\\ANALYSE.txt" "w")) (write-line "blabla" [i] fichier[/i]) il m'efface les lignes qui existaient déjà. Comment faire pour que les lignes ajoutées le soient à la fin du fichier ?
  21. Bonjour, Je découvre Autodesk Architectural Desktop 2004 (je connais bien autocad). J'ai une mission : convertir des plans avec murs "solide 3D" en plan avec murs "Autodesk Architectural Desktop". La fonction existe (clic droit > convertir en mur) et nécessite de définir la ligne de base du mur. Je pense pouvoir concevoir un lisp qui convertit chacun leur tour les solides 3D en murs, mais j'aurais un problème pour définir chaque ligne de base. Y-aurait-il un moyen d'automatiser la création des lignes de base, car j'ai une grosse quantité de plans à traiter ? Merci d'avance de vos contributions. PS : je vois la solution globalement comme ça : Chaque solide 3D est un paralépipède rectangle. Sa base (face inférieure) est un paralélogramme. il faudrait que la ligne de base commence du milieu du plus petit côté et s'arrête au milieu du deuxième plus petit côté.
  22. ah mince, Laurent avait déjà donné le truc des LTSCALE égaux dans tous les dessins. Moi qui était fier de pouvoir enfin aidé quelqu'un ! Sinon, j'avais eu des problèmes avec un plan qu'un logiciel archi ("star") avait transformé en dwg : tous les types de lignes étaient définis en anglais (dot, dashed, etc) et donc dans mon dessin et mon autocad français, toutes les lignes restaient en "continues".
  23. si l'Xref n'est pas à l'échelle 1, il se peut que les discontinuités soient tellement petites que la ligne paraît continue (mais la problème devrait être le même en espace objet si psltscale=0). Cela peut aussi provenir du fait que le LTSCALE du dessin servant d'Xref est différent du LTSCALE du dessin recevant l'Xref...
  24. Ah ! je viens de voir un autre message dans lequel est donné le lien vers StripMtext pour formater les Mtext... Super !
  25. Est-ce que ces routines changent les polices des Mtext (qui peuvent avoir plusieurs polices) ? [Désolé, je ne peux pas tester, j'ai un problème pour éditer les Mtext...] :casstet:
×
×
  • 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é