Arcasdk
Membres-
Compteur de contenus
279 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Arcasdk
-
Bonjour aprés avoir bossé sur des routines, je ne comprend toujours pas pourquoi certaines choses ne fonctionne pas. 1) Pourquoi la ligne suivante ne me retourne pas les valeurs de x y et z dans la liste???? (setq x 0 y 0 z 0) (setq pos '(x y z )) pos me retourne (x y z) au lieu de (0 0 0) et 2) Pourquoi ce genre de phrase ne fonctionne pas???? (setq chemin (strcat (chr 91) name (chr 44) name (chr 93) ("^C^C-INSERER ") name (echelle;1;rotation;0))) Je pensais devenir fort en lisp.... Ben je vois que je suis loin du compte ;-) ;-) Merci à tous
-
Ou aprés il existe le moteur pantone. Une petite modif qui êut faire économiser 30%
-
Réponse trouvée ici Merci Gile [Edité le 5/3/2008 par Arcasdk]
-
Bonjour bonjour, je voulais savoir si il existait une commande justement pour passer de l'espace objet à l'espace papier. Je ne parle pas de la commande 'ep' (_pspace) et 'eo' (_mspace) mais bien d'une commande qui fait ce que je fait avec la souris ou en fesant "Ctrl+ pg down" ou "Ctrl+ pg up" Merci à tous
-
Routines d\'impression de dossier
Arcasdk a répondu à un(e) sujet de Arcasdk dans Pour aller plus loin en LISP
Merci Patrick. Est ce que tu pourais rapidement m'expliquer les quelques lignes de ce programme.. Comme les AutoCAD push dbmob et le reste....merci -
Routines d\'impression de dossier
Arcasdk a répondu à un(e) sujet de Arcasdk dans Pour aller plus loin en LISP
Bon j'ai compris le problème des antislash.... Dans le code Lisp il faut multiplier les \ par 4 , si j'en veux 2 à l'arrivée dans ma barre de commande je dois en mettre 2x4 = 8 dans mon fichier lisp. (si j'en veux 1 -> 1x4 = 4) :casstet: Donc ca c'est bon maintenant il faut réussir à ouvrir un fichier. C'est normalement le plus simple et pourtant ca coince [surligneur]_.open "N:\CUAUTLA II\AS-BUILT HORNO\316-JEM-CTS-17-330-00-1126_5.dwg"[/surligneur] (acad-push-dbmod) (command "zoom" "et") (command "-traceur" "o" "" "\\\\10.128.236.3\\KONICA MINOLTA 420 RDC Hall 18" "A3" "" "a" "n" "e" "p" "c" "o" "monochrome2.ctb" "o" "n" "n" "n" "n" "n" "o") (acad-pop-dbmod) (if (zerop (getvar "sdi")) (command "_.close" "o" ) ) -
Bonjour jeunes gens. Juste une petite question pour savoir comment faire apparaitre les anti-slash dans un script Je m'explique...: J'ai utilisé le programme SCR V2.00 de Patrick qui génère un fichier .scr. J'ai besoin d'imprimer une multitude de plans et lorsque qu'il me demande le nom de l'imprimante je suis embêter car le chemin est du style --> \\10.128.236.3KONICA MINOLTA 420 RDC Hall 18 Voici la commande du lisp (write-line "(command \"-traceur\" \"o\" \"\" \[surligneur]"\\10.128.236.3\KONICA MINOLTA 420 RDC Hall 18\"[\surligneur] \"A3\" \"\" \"a\" \"n\" \"e\" \"p\" \"c\" \"o\" \"monochrome2.ctb\" \"o\" \"n\" \"n\" \"n\" \"n\" \"n\" \"o\")" fscr) Voici le résultat du script _.open "N:\Barile\CUAUTLA II\AS-BUILT FLOTADO\416-JEM-CTS-17-405-01-1140_2.dwg" (acad-push-dbmod) (command "zoom" "et") (command "-traceur" "o" "" [surligneur]"\10.128.236.3KONICA MINOLTA 420 RDC Hall 18"[/surligneur] "A3" "" "a" "n" "e" "p" "c" "o" "monochrome2.ctb" "o" "n" "n" "n" "n" "n" "o") (acad-pop-dbmod) (if (zerop (getvar "sdi")) (command "_.close" "o" ) Comme vous le voyez, il enlève un slash et si j'en met un de plus dans le code lisp, il m'affiche un symbole bizarre en script..... Donc fatallement il ne trouve pas le nom de l'imprimante:casstet: Que dois je écrire dans le code lisp pour que le code script fonctionne correctement. Merci à tous
-
Remplir un tableau.dcl avec les attributs d\'un bloc
Arcasdk a répondu à un(e) sujet de Arcasdk dans Pour aller plus loin en LISP
Ah parfait Gile l'incrémentation. C'est ce qu'il me fallait. Je vais essayer avec ça. Merci Patrick, je connaissais Rbloc, j'irai certainement piocher deux trois choses. Je continue.... -
Remplir un tableau.dcl avec les attributs d\'un bloc
Arcasdk a posté un sujet dans Pour aller plus loin en LISP
Bonjour à tous, Alors là j'annonce du lourd.... (Et je compte bien y arriver au bout) Seulement voilà sans vous je ne vais pas aller bien loin!!:P • J'aimerai mettre le même cartouche dans tous les plans d'un dossier. • Les cartouches qui sont déjà dans les plans ne sont pas les mêmes, mais certain attribut le sont. Le but de la macro est de remplir un tableau.dcl (dans des edit_box) avec tous les tagstrings ou les (cdr (assoc 2(entget entité))) d'un bloc. Et le problème est là. C'est que j'arrive à tous relever (les tagstring et les textstring) mais comme c'est une boucle qui le fait, je ne sais pas si il existe un moyen d'enregister chaques données dans une variable bien précise ou une variable que je saurai retrouver.. (while (setq ent (entnext ent)) (if (eq (cdr (assoc 0 (entget ent))) "ATTRIB") (setq str (strcat str "\n" (cdr (assoc 2 (entget ent))) " ->\t" (cdr (assoc 1 (entget ent))) (setq [surligneur]x[/surligneur] (getstring "\nSelectionner la variable")) ) ) ) ) (alert str) Est il possible de mettre a chaque fois une variable différente à la place de x Dans ce cas il me sera possible d'écrire le titre du cartouche dans l'edit_box qui porte le nom titre.... Quand ces blocs ont été créé les attributs n'ont pas été saisie dans le même ordre. Donc je ne peut garantir que quand j'aurai la liste des attributs, ce soit "titre" en premier ou "numéro".... Voila voila....Je pense avoir été clair...Mais n'hésitez pas à m'embêter.. -
Il devient fort le Vinz.... ;) J'essai de suivre mais c'est pas évident!!!
-
Renommer un bloc (A$C3056...) par un nom plus explicite.
Arcasdk a répondu à un(e) sujet de Arcasdk dans Débuter en LISP
:casstet: Ben à part les parenthèse c'est la même chose......:casstet: ps: C'est normal que tu arrives à poster à 12h05 alors qu'il n'est même pas 11h45....:casstet: ouhhh là faut que j'arrête le thé [Edité le 4/2/2008 par Arcasdk] -
Renommer un bloc (A$C3056...) par un nom plus explicite.
Arcasdk a répondu à un(e) sujet de Arcasdk dans Débuter en LISP
Navré d'avoir parlé si vite.... Je suis confus.... Vous savez ce que c'est l'euphorie de la victoire... Ca fesait quand même pas loin de cinq heures que je bossé la dessus :o Enfin bon, pas besoin de récompense y avait rien de terrible..(Mais quand même ;)) Merci vinz de t'être permis d'optimiser mes lignes de code, celà me permettra d'étendre mon vocabulaire et ma façon de l'écrire. En revanche tu as laissé dans le code la variable "bnewname " Je dois la laisser ou la changer...voir la delete? (while (not nouveaunom) (setq nouveaunom (getstring "\nIndiquez le nouveau nom :")) (if (tblsearch "block" nouveaunom) (progn (alert "Ce nom de bloc existe déjà") (setq [surligneur]bnewname [/surligneur] nil)))) -
Renommer un bloc (A$C3056...) par un nom plus explicite.
Arcasdk a répondu à un(e) sujet de Arcasdk dans Débuter en LISP
Coucou Vinz, je n'ai pas testé ton programme mais à première vue si un bloc porte le même nom que le nouveau ton programme s'arête... (Dis moi si je me trompe) Tu devrais mettre une boucle qui ne continue pas le programme tant que le nouveau nom ne change pas..... Sinon ton programme à l'air bcp plus court et donc surement plus rapide que le mien..... Bravo -
Calcul dans une expression : se passer de \'cal
Arcasdk a répondu à un(e) sujet de mouais.mouais dans AutoCAD 2008
Ce que dit Matt666 est peut-être bon mais pour moi lorsque je dois décalé une ligne ou une autre forme d'une valeur X/2, Je trace d'abord une ligne perpendiculaire de dimension X ensuite je lance la commande Décaler et quand il me demande la valeur je clique l'extrémité de la ligne perpendiculaire puis son milieu.... En fait Autocad, c'est d'abord, avant de dessiner directement les lignes de l'objet, dessiner des lignes de construction pour éviter justement à avoir à faire des calculs comme ceux que tu fais avec 'cal...... C'est peut être aussi une technique à se prendre la tête mais à la longue ca vient tous seul.... Bon courage -
Déparamétrage de la sauvegarde automatique
Arcasdk a répondu à un(e) sujet de schpountz dans AutoCAD 2008
Pas de problème de mon côté non plus.... J'ai 3 cases de cochée.. v Enregistrement automatique v Créer copie de sauvegarde à chaque enregistrement v Afficher les informations de signature numérique 5 minutes entre enregistrements et ac$ comme Extension des fichiers temporaires J'ai autocad 2008 -
Pour ma part je me met dans l'espace papier, Je vérifie que l'echelle de type de ligne de mes lignes est à 1 et je règle aussi le ECHLTP à 1. Ensuite je joue sur le ECHLTP (1, 10, 50, 100, 200,......) jusqu'a temps que j'ai un pas de ligne correct.
-
Si tu ouvres le fichier de base, (Celui que tu insères) et que tu le modifies, normalement tu n'aurais plus besoin de le faire. tu l'insères comment le bloc avec la commande "inserer....? [Edité le 31/1/2008 par Arcasdk]
-
Renommer un bloc (A$C3056...) par un nom plus explicite.
Arcasdk a répondu à un(e) sujet de Arcasdk dans Débuter en LISP
Bon j'ai la première partie qui fonctionne. C'est à dire renommer le bloc (Avec (Command "-renommer" (defun c:cnbloc (/ bloc anciennom nouveaunom) (while (or (not (setq bloc (car (entsel "\nSélectionner un bloc :")))) (/= (cdr (assoc 0 (entget bloc))) "INSERT") ) ) (setq anciennom (cdr (assoc 2 (entget bloc)))) (princ "\nVoici le nom actuel:") (print anciennom) (setq nouveaunom (getstring "\nIndiquez le nouveau nom :")) (command "-renommer" "bl" anciennom nouveaunom "") ) Maintenant je cherche pour vérifier que le nouveau nom n'existe déjà pas. et là ca donne un truc dans le genre (MAIS CA NE FONCTIONNE PAS)(....encore) (defun c:cnbloc (/ bloc anciennom nouveaunom) (while (or (not (setq bloc (car (entsel "\nSélectionner un bloc :")))) (/= (cdr (assoc 0 (entget bloc))) "INSERT") ) ) (setq anciennom (cdr (assoc 2 (entget bloc)))) (princ "\nVoici le nom actuel:") (print anciennom) (setq nouveaunom (getstring "\nIndiquez le nouveau nom :")) ;VERIFICATION DU NOUVEAU NOM (setq js (ssget "X" '((0 . "INSERT")))) (sslength js) (setq x 0) (while (/= x (sslength js)) (setq nom_ent (ssname js x)) (setq ent (entget nom_ent)) (setq name (cdr (assoc '2 ent))) (princ "\nBloc :") (print name) (if (= name nouveaunom) (progn (while (/= name nouveaunom) (alert "Ce nom de bloc existe déjà") (setq nouveaunom (getstring "\nIndiquez le nouveau nom :")) ) ) ) (setq x (+ x 1)) ) (command "-renommer" "bl" anciennom nouveaunom "") ) je continue de chercher..... (quelques minutes plus tard...) ......Et voilà (defun c:cnbloc (/ bloc anciennom nouveaunom js x nom_ent ent name) (while (or (not (setq bloc (car (entsel "\nSélectionner un bloc :")))) (/= (cdr (assoc 0 (entget bloc))) "INSERT") ) ) (setq anciennom (cdr (assoc 2 (entget bloc)))) (princ "\nVoici le nom actuel:") (print anciennom) (setq nouveaunom (getstring "\nIndiquez le nouveau nom :")) ;VERIFICATION DU NOUVEAU NOM (setq js (ssget "X" '((0 . "INSERT")))) (sslength js) (setq x 0) (while (/= x (sslength js)) (setq nom_ent (ssname js x)) (setq ent (entget nom_ent)) (setq name (cdr (assoc '2 ent))) (if (= name nouveaunom) (progn (while (= name nouveaunom) (alert "Ce nom de bloc existe déjà") (setq nouveaunom (getstring "\nIndiquez le nouveau nom :")) ) ) ) (setq x (+ x 1)) ) (command "-renommer" "bl" anciennom nouveaunom "") ) Reste à rendre plus lisible, et celà sera bon... Merci à tous [Edité le 31/1/2008 par Arcasdk] -
Sélectionner le contenu de calques \"non-purgeables\"
Arcasdk a répondu à un(e) sujet de Azerty dans AutoCAD 2007
Tu parles de quel Code??? Celui de la réponse 15... Si c'est le cas, moi je n'ai pas de souci particulier..... Ahhhhhhhhhhh la la ....Les erreurs fatales... :mad: Ca peut être dû à bcp de choses. Mais on ne sait jamais à quoi. -
Renommer un bloc (A$C3056...) par un nom plus explicite.
Arcasdk a posté un sujet dans Débuter en LISP
Bonjour j'ai essayé de développer une petite macro qui me permet, comme le titre l'indique, de renommer un bloc. J'ai déjà récupérer tous ce qu'il me faut. Maintenant faut juste lancer l'execution. Voici mon bout de code (defun c:cnbloc () (while (or (not (setq bloc (car (entsel "\nSélectionner un bloc :")))) (/= (cdr (assoc 0 (entget bloc))) "INSERT") ) ) (setq noma (cdr (assoc 2 (entget bloc)))) (princ "\nVoici le nom actuel:")(print noma) (setq clef (strcat "(2. " (getstring "\nIndiquez le nouveau nom :") ")" ) ) (subst clef (assoc 2 (entget bloc)) (entget bloc)) ) La substitution fonctionne mais celà n'a rien changé dans le bloc...!!!! Quelle est l'astuce?? :casstet: [Edité le 31/1/2008 par Arcasdk] -
Bonjour, Sinon y a ce site qui n'est pas mal du tout: http://aidacad.com/fr/autolisp.htm Voila voila, bonne journée, bon lisp
-
Sélectionner le contenu de calques \"non-purgeables\"
Arcasdk a répondu à un(e) sujet de Azerty dans AutoCAD 2007
J'ai bien enregistré... :) Rapide et précis...Tout ce qu'il y a de mieux Merci -
Sélectionner le contenu de calques \"non-purgeables\"
Arcasdk a répondu à un(e) sujet de Azerty dans AutoCAD 2007
Tout simplement.... Donc si c'est du Vlisp je peux écrire en début de programme "(vl-load-com)" pour ne plus être embêté? Merci! ;) -
Sélectionner le contenu de calques \"non-purgeables\"
Arcasdk a répondu à un(e) sujet de Azerty dans AutoCAD 2007
Bonjour, bonjour.... Je vais remettre ce post au gout du jour, (j'aime bien les vieux dossiers) Dans un souci permanent d'avoir des plans nikel chrome (vanadium) je crois bien que ma commande la plus utilisée est "Purger" Sauf que souvent, lorsque des blocs sont "imbriqués" dans d'autres blocs.....Eh bien on peut purger autant de fois que l'on veut...Rien n'y fait. J'ai déjà lu ce post en long, en large, en travers. J'ai parcouru tous les liens qui mennent vers des liens qui mennent vers d'autres liens. J'ai aussi bien sur charger l'incontournable "Edit_Bloc". (Et même que c'est la v3.5) ET CEPENDANT....J'ai encore quelques calques qui n'ont leur place que dans une corbeille. donc j'ai lancé la ptite macro de Gile qui est la suivante pour afficher les blocs qui possède ce genre de calques: Commande: (defun test (lay / lst) (_> (vlax-for bloc (vla-get-Blocks (((_> (vla-get-ActiveDocument (vlax-get-acad-object)) (((_> ) ((_> (vlax-for obj bloc (((_> (if (= (vla-get-Layer obj) lay) ((((_> (or (member (vla-get-Name bloc) lst) (((((_> (setq lst (cons (vla-get-Name bloc) lst)) (((((_> ) ((((_> ) (((_> ) ((_> ) (_> (mapcar 'print lst) (_> (textscr) (_> (princ) (_> ) (test "CACHE") jusque là ca va...mais juste aprés... ; erreur: no function definition: VLAX-GET-ACAD-OBJECT Me replongeant dans le lisp que depuis peu j'ai dû louper un épisode.Je me suis aperçu en revanche que ceci n'est pas de l'autolisp mais du V-Lisp (Chose nouvelle pour moi) Je suis en Autocad 2008. Messires les pros du Lisp...Je suis tout ouie.. ;) ;) ;) [Edité le 31/1/2008 par Arcasdk] -
Je n'ai pas dis que c'était obligatoire, Mais si il fait de la 2D à part Autocad et Microstation (qui pour moi sont les deux principaux dans ce domaine) y a pas trop le choix. Donc oui, il faut prendre le problème à l'envers et faire en fonction de ce que tu trouves..... Cependant j'ai souvent vu des personnes faire de la 3D à partir de plan 2D fait auparavant. Encore une fois tout dépend du domaine d'application. Chez nous on utilise la 3D uniquement pour avoir une meilleur visu... Pas pour de la conception...Mais c'est chez nous! [Edité le 22/1/2008 par Arcasdk]
