Aller au contenu

LUDWIG

Membres
  • Compteur de contenus

    1 396
  • Inscription

  • Dernière visite

Tout ce qui a été posté par LUDWIG

  1. LUDWIG

    Purger tout : bug ?

    Ce qui est bien, c'est que l'on puisse utiliser une version vo et une version vf d'une commande. Ce qui est dommage, c'est que le nom de la version vf ne soit pas donné, ni la traduction des options.
  2. LUDWIG

    Purger tout : bug ?

    En fait le problème est plus grave : [surligneur] l'option lancée n'est pas toujours celle choisie [/surligneur]: BL --> Blocs COT --> Style de côtes CA --> Calques TY --> Types de lignes TR --> Choix de l'option incorrect (plutôt que style de tracé) F --> Formes TE --> Styles de textes M --> Style de Multilignes TA --> Style de tracé (plutôt que style de tableau) R --> Style de tableau (plutôt que application) TO --> Applications (plutôt que tout)
  3. Ah super ! Je ne savais pas qu'on pouvait purger dans le style manager... Autre question : peut-on lancer le style manager en ligne de commande ?
  4. Hello Problème avec la commande purger en ligne de commande. Je me suis fait un bouton [surligneur] "^C^C-purger;to;*;n;"[/surligneur], et cela ne purge pas tout ! J'ai résolu le problème en remplaçant "to" (ou "tout" c'est pareil) par "_all" et la ça fonctionne. Est-ce un bug ou c'est moi qui ait un problème ?
  5. Bonjour, Deux petites questions sur l'utilisation des blocs à vues multiples pour les connaisseurs : [surligneur] *1*[/surligneur] pour définir un nouveau bloc à vue multiple, j'en charge un existant puis je change son nom et ses blocs de visualisations (en général 1 pour le 3D et 1 pour le 2D). Existe-t'il un autre moyen de définir un [surligneur] nouveau [/surligneur]bloc à vue multiple ? [surligneur] *2*[/surligneur] - parceque je définis mes nouveaux blocs à vue multiples à partir de blocsVM existant, mon fichier est " pollué". Exemple : je veux créer un blocVM d'extincteur à partir de blocs "normaux" 2D et 3D que j'ai déjà. J'insère le bloc à vue multiple "WC", puis clic droit, je redéfini son nom et ces blocs de visualisations. Bien que je purge, le blocMV "WC" et les blocs "WC_2D" et "WC_3D" qui ne sont pourtant pas insérés restent . Y-a-t'il donc un moyen de purger ce blocMV (je suppose qu'une fois que ce blocMV ne sera plus défini, les blocs de visualisations WC_2D et WC_3D seront purgés sans problème).
  6. LUDWIG

    Je perds mes murs

    Le SP1 était appliqué... bon, je prends l'habitude de faire un regen très régulier...
  7. cette option est inacessible (grisée) à cause des options que j'ai mis dans la zone "ligne de foulée". De toute façon, elle est décochée. Quelqu'un m'a répondu sur un autre forum, je 'ai pas eu le temps de vérifier...
  8. Bonjour, Sur Autodesk Architectural Desktop 2005, je dessine un escalier en U pour lequel je dois représenter les " lignes de foulées" des escaliers. Or, je n'arrive pas à modifier le style des flèches. Mes flèches sont définies sur le style de côtes " Escalier AEC" dans toutes les représentations d'affichage (Plan, plan détaillé, non détaillé, recouvrement, réfléchi). J'ai aussi modifié l'option " taille de la flèche selon le style de côte uniquement". J'ai régénéré après chaque tentative... [surligneur] Les flèches qui apparaissent à l'écran sont toujours les mêmes [/surligneur](fermées pleines) alors que celles définies dans le style de côte "Escalier AEC" sont "fermées vides". Si quelqu'un peut m'aiguiller pour régler ce léger problème. Merci d'avance.
  9. Bonjour, J'ai posté une question dans la partie Autodesk Architectural Desktop mais je ne suis pas sûr que les LISPiens la consulte alors je me permet de faire un renvoie : Inverser Longueur et Largeur de mur Merci d'avance...
  10. Bonjour, Je cherche à faire un lisp pour inverser la longueur et la largeur d'un mur sélectionné, puis faire une rotation de ce mur de 90°... Je n'arrive pas à récupérer les codes dxf pour ces largeurs et longueurs... Si quelqu'un sait faire, je suis preneur. Merci d'avance.
  11. Bonjour à tous, J'ai un problème bien embettant. J'avais un plan notamment constitué de murs. Pendant que je faisais d'autres manipulations (pour créer des aires) mes murs ont disparu ! J'ai remarqué qu'à priori, si je déplace mes murs sur un calque gelé ou inactif et que je réactive ce calque, le mur disparaît. Quelqu'un connaît-il ce problème et le moyen d'y remédier ? Merci d'avance... Edition du message : Je suis sur ADT2005. Après des tests, ce problème n'est pas sur Autodesk Architectural Desktop 2004. En faisant un regen, le mur revient... [Edité le 14/2/2005 par LUDWIG]
  12. LUDWIG

    Conversion en murs

    Bonjour Loupigne, Un développement interne à ma société a du être développé pour automatiser au maximum la transformation de plan "au trait" en fichier Autodesk Architectural Desktop (murs, fenêtre, portes, aires). Le premier problème est qu'il est conçu pour traiter mes fichiers sources qui ont une norme semblable (c'est-à-dire que les calques se retrouvent d'un fichier à l'autre et désignent la même chose, les blocs utilisés sont les mêmes d'un dessin à l'autre, etc...) Le deuxième problème est que c'est la propriété de ma boîte donc je ne peux pas te le transmettre (à moins qu'il puisse y avoir un accord entre nos deux sociétés ?). Désolé.
  13. LUDWIG

    Aires sur ADT

    je sais que ce message est vieux mais il y a la commande AreaToolToAutoDetection qui permet de sélectionner les objets formant les limites de contours (filtres sur les MURS par exemple). Ensuite, il n' y a plus qu'à cliquer dans les pièces...
  14. Ah merci ! Je savais qu'une telle formulation existait pour l'avoir déjà vue... J'en été arrivé à : (while not (= "INSERT" (cdr (assoc 0 (entget (car setq OBJ (entsel))))))) qui, bien sûr, ne fonctionne pas ! Merci encore, Grands Maîtres !
  15. Bonjour, Dans un lisp, j'utilise enget pour sélectionner 1 objet. Or il faut absolument que ce soit un bloc. Comment faire pour répéter le entget tant que l'entité sélectionnée n'est pas un bloc ? Merci d'avance...
  16. LUDWIG

    Code DXF

    ah oui il faut que je rajoute : - extraction du nom du calque sur lequel est inséré le bloc - deverouillage de ce calque s'il était verrouillé - traitement - reverrouillage s'il était verrouillé Sinon, je dirais que c'est surtout du code "Patrick_35"
  17. LUDWIG

    Code DXF

    Et voici donc la version finale (j'espère) du programme que vous m'avez aider à constituer. J'espère que ça servira à d'autres... ;**************************************** ;- NORMALISER BLOCS - ;**************************************** ;Patrick_35 de CadXP modifié par Ludwig (defun c:bl (/ i n tot) ;Normalisation des blocs dans la table des blocs ;----------------------------------------------- (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) ) ) (if (not (assoc 62 n));SI L'ENTITE N'A PAS LE CODE DXF 62 (=DuCalque), LE CREE ET LUI AFFECTE LA VALEUR 0 (=DuBloc) (setq n (append n (list (cons 62 0)))) (if (/= (cdr (assoc 62 n)) 0);SI L'ENTITE N'EST PAS DE COULEUR 0, LA CHANGE EN 0 (=DuBloc) (setq n (subst (cons 62 0) (assoc 62 n) n)) ) ) (entmod n) (setq n (entnext (cdr (assoc -1 n))));ENTITE SUIVANTE ) (setq i (tblnext "block") tot (1+ tot));BLOC SUIVANT ) ;Normalisation des étiquettes d'attributs de blocs dans le dessin (car une étiquette peut avoir des valeurs de calque, couleur, etc. différentes de l'attribut) ;----------------------------------------------- (setq sel (ssget "x" (list (cons 0 "INSERT")))) (setq j 0) (while (ssname sel j) (setq n (entget (ssname sel j))) (if (assoc 66 n) (progn (setq i (entget (entnext (cdr (assoc -1 n))))) (while (/= (cdr (assoc 0 i)) "SEQEND") (setq i (subst (cons 8 "0") (assoc 8 i) i)) ; mettre l'attribut sur le même calque que celui du bloc par exemple (setq i (subst (cons 62 0) (assoc 62 i) i)) ; mettre l'attribut sur le même calque que celui du bloc par exemple (entmod i) ; modifier l'entité (entupd (cdr (assoc -1 i))) ; mettre à jour sur l'écran l'entité (setq i (entget (entnext (cdr (assoc -1 i))))) ) ) ) (setq j (1+ j)) ) ;Résultat ;----------------------------------------------- (princ (strcat "\nTraitement de " (itoa (+ tot j)) " bloc(s) (" (itoa tot) " dans la table des blocs et " (itoa j) " étiquettes d'attributs de blocs dans le dessin")) (princ) ) (prompt "\bl : Normaliser les blocs du dessin (calque 0 - Couleur Dubloc")
  18. Mon $ bloque toujours le reste de ma macro. C'est pas grave, laissez tomber... Par contre très bien l'utilisation de sssetfirst car en effet un simple (ssget "_I" '((0 . "LINE"))))garde toute la sélection s'il n'y a pas de ligne...
  19. LUDWIG

    Code DXF

    (setq n (append n (list (cons 60 0)))) ça marche ! sauf que c list (cons 6 20)))) Pour ce qui est des attributs, je testerai plus tard.. Merci Patrick_35... Est-ce que ces réponses te viennent instinctivement ? Le Lisp est-il ta langue maternelle ?
  20. LUDWIG

    Code DXF

    Aîe ! Aîe ! Aîe ! En plus, je viens de remarquer que : - AVEC EDITREF : un bloc avec attributs peut avoir tous ces éléments constituants sur le calque 0 - AVEC L'EDITEUR D'ATTRIBUTS ETENDU : les étiquettes sont en fait définies sur un autre calque... Par exemple, 1 dessin avec 1 seul bloc inséré en 0 et constitué de 1 seul attribut défini sur le calque 0. Normalement, après avoir purgé, il ne doit rester que le calque 0. Or quand on double clique sur le bloc pour ouvrir l'éditeur d'attributs étendu, on s'aperçoit que l'étiquette du bloc est définie sur un autre calque qui, du coup n'est pas purgé... Vous connaissez ce problème ? Comment le résoudre dans mon code de "normalisation" des blocs ?
  21. J'ai mixé le tout et maintenant ça marche : burst des blocs (même imbriqués) dans toutes les présentations, retour à la présentation courante et comptage. ;**************************************** ; ------ Exploser tous les blocs ------- ;**************************************** ; By Ludwig DESMIER corrigé par Patrick_35 ; Permet d'exploser tous les blocs d'un dessin (même imbriqués) dans toutes les présentations (defun c:XB (/ layouts jeu n j i cmd) (setq cmd (getvar "cmdecho")) (setvar "cmdecho" 0) (command "_.undo" "_group") (setq expl (getvar "explmode")) (setvar "explmode" 1) (setq ESP (getvar "CTAB")) (if (vl-position "Model" layouts) () (setq layouts (cons "Model" (layoutlist))) ) (setq i 0) (foreach n layouts (while (setq jeu (ssget "x" (list (cons 0 "INSERT") (cons 410 n)))) (setq j 0) (command "_.layout" "_set" n) (while (ssname jeu j) (setq NB (sslength JEU)) (sssetfirst nil JEU) (c:burst) (setq j (+ NB j)) ) (setq i (+ i j)) ) ) (setvar "CTAB" ESP) (setvar "explmode" expl) (command "_.undo" "_end") (setvar "cmdecho" cmd) (prompt "\n ") (print i) (if (<= i 1) (prompt " bloc décomposé") (prompt " blocs décomposés") ) (prin1) ) ;fin du defun (prompt "\nXB : Exploser tous les blocs (même imbriqués)")
  22. LUDWIG

    Code DXF

    Malgré tous mes efforts (!), ça ne veut pas marcher ! (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) ) ) [b] (cond ((/= (cdr (assoc 62 n)) 0);SI L'ENTITE N'EST PAS DE COULEUR 0, LA CHANGE EN 0 (=DuBloc) (setq n (subst (cons 62 0) (assoc 62 n) n)) (entmod n) ) ((null (assoc 62 n));SI L'ENTITE N'A PAS LE CODE DXF 62 (=DuCalque), LE CREE ET LUI AFFECTE LA VALEUR 0 (=DuBloc) (setq n (append (cons 62 0) n)) (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) )
  23. SSSETFIRST : je ne me rappelle plus, je l'ai récupéré d'un autre programme... BURST : c'est la commande d'express équivalente à édécomposer" mais qui transforme les attributs des blocs en textes.
  24. Pourtant tout mes autres boutons de sélections utilisant SSGET "I" fonctionnent : ^C^C(ssget "I" '((0 . "INSERT")));_pselect;p;; [b] POUR LES BLOCS[/b] ^C^C(ssget "I" '((-4 . " [i] inf[/i]NOT")(0 . "INSERT")(-4 . "NOT>")));_pselect;p;; [b] POUR TOUT CE QUI N'EST PAS BLOC[/b] ((-4 . " [i] inf[/i]AND")(0 . "INSERT")(-4 . " [i] inf[/i]NOT")(2 . "*")(-4 . "NOT>")(-4 . "AND>"));_pselect;p;; [b] POUR LES BLOCS ANONYMES[/b] etc Non, vraiment, le plantage, c'est quand autocad lit le caractère $ qu'il interprète comme une commande diesel... Mais ce n'est qu'un texte !!! [Edité le 20/1/2005 par LUDWIG]
  25. J'avais créer un code pour exploser tous les blocs d'un espace. Je l'ai modifié pour qu'il explose tous les blocs de tous les espaces. Mais cela ne marche pas. Quelqu'un pourrait-il m'ouvrir les yeux sur mon erreur ? ;**************************************** ; ------ Exploser tous les blocs --------- NE MARCHE PAS ENCORE CORRECTEMENT (présentations) ;**************************************** ; By Ludwig DESMIER ; Permet d'exploser tous les blocs d'un dessin (même imbriqués) dans toutes les présentations (defun c:XB (/ layouts LAYOUT cmd expl Esp NB JEU C) (graphscr) (setq cmd (getvar "CMDECHO")) (setvar "CMDECHO" 0) (setq expl (getvar "explmode")) (setvar "explmode" 1) (setq Esp (getvar "CTAB")) (setq C 0) (setq layouts (cons "Model" (layoutlist))); A RECTIFIER : ne marche pas dans toutes les présentations (Foreach n layouts (setvar "CTAB" n) (setq LAYOUT (getvar "CTAB")) (setq JEU (ssget "x" '((0 . "INSERT")(410.LAYOUT)))) (If (= JEU Nil) (setq NB 0) (setq NB (sslength JEU)) ) (while (> NB 0) (progn (setq JEU (ssget "x" '((0 . "INSERT")))) (If (= JEU Nil) (setq NB 0) (progn (setq NB (sslength JEU)) (sssetfirst nil JEU) (c:burst) (setq C (+ C NB)) ) ) ;fin du if ) ;fin du progn ) ;fin du while ) ;fin du Foreach (setvar "CMDECHO" cmd) (setvar "explmode" expl) (setvar "CTAB" Esp) (prompt "\n ") (print C) (if (<= C 1) (prompt " bloc explosé") (prompt " blocs explosés") ) (prin1) ) ;fin du defun (prompt "\nXB : Exploser tous les blocs (même imbriqués)")
×
×
  • 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é