ScoAD
Membres-
Compteur de contenus
56 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par ScoAD
-
Avec beaucoup de mal, j'ai REUSSI !!! Voici mon exploit (merci de ne pas rire) :) : Cela fonctionne mais, pour moi cela tiens de la magie! Quel est l'origine de ces coordonnées? pourquoi: "(setq x (+ -1.5 (cadr (assoc 11 att))))" fonctionne et pas "(setq x (- 1.5 (cadr (assoc 11 att))))" ? pourqoui pour Y c'est caddr et pas cadr et pourqoui "(setq y (- 0.5 (caddr (assoc 11 att))))" envoie mon attribut sur la lune ? Enfin le résultat est là. Encore merci à super Patrick_35.
-
Tout d'abord merci pour les parentheses en trop. Et je n'ai pas compris comment "enregistrer" la valeur du code 10 dans une varible pour ensuite la modifier avec des "car" ou "cadr"... [Edité le 5/11/2008 par ScoAD]
-
merci, mais je n'y arrive pas: ce qui suis n'a aucun éffet? pour le point d'insertion le code 10 est une liste, comme je peux la recuperer pour la modifier? Merci encore pour ton aide!
-
un autre jour, un autre probleme: Je voudrais modifier la valeur de l'attibut (Ok ça j'y arriver) et ensuite le remettre à l'horizontal, et ça je n'y arrive pas, d'après ce que j'ai vu c'est le code 50! Et tant que j'y suis comment modifier la position d'un attribut dans le bloc? Merci d'avance [Edité le 5/11/2008 par ScoAD]
-
ça c'est de l'explication ! Merci
-
j'ai déjà essayer. mes essayer: fonction c:fonction (fonction) (c:fonction) merci qu'en même
-
Bonjour, Dans un fichier .lsp, j'ai plusieurs routines, et je voudrais en appeler une dans une autres (Ce que j'appele fonction c'est ce qui commence par "(defun", je prefere le dire car cela n'est peut etre pas le bon terme). Merci d'avance
-
merci beaucoup, je juste modifier: Parqu'il completait les attributs avec NEWVAL1, NEWVAL2 ....
-
Ok je suis vraiment nul, mais je m'accroche! En frafouillant sur le forum j'ai trouvé un exemple sympa cela marche tres bien avec une selection manuel, mais je suis incapable de trouver la syntaxe pour sélectionner automatiquement mon bloc! Même en copiant ton exemple! (defun c:TEST (/ NEWVAL1 NEWVAL2 NEWVAL3 BlocSelec att n newval) (setq NEWVAL1 (getstring t "\nEntrez le repere : ")) (setq NEWVAL2 (getstring t "\nEntrez le diametre : ")) (setq NEWVAL3 (getstring t "\nEntrez les donées élec : ")) (Command "-inserer" "Z:\\AUTOCAD\\XXX.dwg" BOCPt1 1 1 0) ;;(setq BlocSelec (entlast)) ;;(setq BlocSelec (car(entget BlocSelec))) ; pour sélectionner un bloc contenant des attributs (setq BlocSelec (car (entget (entlast)))) (setq att (entget (entnext BlocSelec))) ; pour trouver le premier attribut (setq n 0) ; mise du compteur à 0 (while (= (cdr (assoc 0 att)) "ATTRIB") ; boucle tant que att est un attribut (setq n (1+ n)) ; incrémentation du compteur (setq newval (eval (read (strcat "NEWVAL" (itoa n))))) ; valeur de NEWVALn (setq att (subst (cons 1 newval) (assoc 1 att) att)) ; pour changer la valeur de l'attribut (entmod att) (entupd (cdr (assoc -1 att))) (setq att (entget (entnext (cdr (assoc -1 att))))) ; données de l'attribut suivant (setq att (subst (cons 1 NEWVAL2) (assoc 1 att) att)) ; pour changer la valeur de l'attribut (entmod att) (entupd (cdr (assoc -1 att))) ) ; fin de while (princ) ) Je suis vraiment un boulet!
-
merci, mais il y a un truc que je ne pige décidemment pas! Pourqoui ce qui suit ne fonctionne pas ? (setq ent (car (ENTLAST))) ; erreur: type d'argument incorrect: consp
-
Lorsque je charge mon CUI d'entreprise : mes menus apparaissent avant ce de l'Acad.cui La seule solution que j'ai trouvé c'est t'intervertir mon cui (en principal) et AutoCAD (en entreprise), mais le soucis c'est que mon cui n'est plus en lecteur seule, et je ne veux pas que mes gars y touche. Merci d'avance pour vos suggestions. J'ai réglé mon problème: En faite, j'ai presonnalisé les 3 espaces de travail de l'acad.cui (en ajoutant mes menus, car ils n'apparaissent pas :o ), et la je choisi les positionner à ma guise. :exclam: [Edité le 3/11/2008 par ScoAD]
-
Merci Patrick_35, Je me suis suis contente de copier/coller ta citation dans mon lisp, mais le truc qui me gene c'est que je ne voudrais pas avoir de sélectionne à faire par clic,dans une routine qui va inserer des blocs (Hormis un Pt d'insertion!) . J'ai essayé de modifier tes quelques lignes pour arriver à mes besoins, mais je capitule: Je voulais modifier la boucle pour qu'il cherche l'attribut dont le code 2 correspond à "diamétre" dans un bloc précedement inserer! Merci encore. Un veritable boulet :) [Edité le 31/10/2008 par ScoAD]
-
Bonjour, tout d'abord je m'excuse car ce sont des sujets déjà existant sur le forums. Me je n'arrive pas à tout comprendre :( . Dans une routine je souhaite 1- Dans un 1er temps: inserer plusieurs blocs(les uns apres les autres) sans compléter les differents attributs qu'ils contient. 2- a la fin compléter les attributs par des valeurs contenu dans des variables. 3- Donner un angle de rotation à ces divers attributs. 1r- J'ai compris ATTDIA, mais pas ATTREQ (Si l'attribut n'as pas de valeur pas défaut?). 2r- Pour éditer mes attributs, je compte utiliser (SETQ OB1 (SSGET "L")) et ensuite (command "-attedit". 3r- je compte utiliser la fonction entget (Mais pour le moment je n'y comprends rien. Voilà j'espere avoir été clair, Merci d'avance. Le boulet du moment!
-
Merci, Mais qu'est ce qu'un "string" (Dans le language de la programmation bien sûr!)pour la parenthese sup. c'est celle d'un while, vive les copier/coller. Ok, je compris (Je suis un boulet) La valeur de BOC_FOR1 est " "(Espace). Alors c'est qui le plus grand boulet. :P Merci qu'en même de ton aide. [Edité le 28/10/2008 par ScoAD]
-
merci bien, mon probleme est maintenant résolu. Sinon, pourqoui lorsque je tape dans ma routine: Cela ne prends pas en compte: "_A" BOC_FOR1 Mais si je colle dans la command line : Cela fonctionne?
-
Bonjour, J'aurais besoin d'éclaircissement au sujet de la déclaration d'un chemin d'acces à une imprimante dans mon lisp, j'ai ça: Mais cela "bug" ! (Une fois de plus :) ) Mais lorsqe que je teste en ligne de commande et que je met \\XXX\XXXX au même moment (Entrez un nom de périphérique de sortie ou [?] :) cela fonctionne? Si quelqu'un peut m'expliquer, ce serait sympa. Merci d'avance.
-
merci pour cette nouvelle leçon. Et sinon pour: Comment peut t'on définir la mise en page (Imprimante, zone d'impression, echelle...)? a défaut de réponse, une autre question! pourquoi ce qui suit ne fontionne pas? : [Edité le 14/10/2008 par ScoAD] [Edité le 20/10/2008 par ScoAD]
-
merci bien pour cette leçon. L'expression (member BOCLAYNAM (BOCLAYLSIT)) je compte m'en servir pour faire "presentation 1/2... " Merci encore à tous Comment peut t'on définir la mise en page (Imprimante, zone d'impression, echelle...)? Autrement je cherche à obtenir le nombre de presentation dans le plan, j'ai esssyer ça : (setq LAYOUTNUM (sslength (layoutlist))) , mais comme d'jab cela ne marche pas! Et pour finir: pour se qui suis me fonctionne pas! [Edité le 13/10/2008 par ScoAD]
-
Merci beaucoup, grace à vous j'ai reussi à pondre ça: (Ne rigoler pas, merci) (setq BOCLAYLSIT layoutlist) (member BOCLAYNAM (BOCLAYLSIT)) (if (/= BOCLAYNAM nil) (setq BOCLAYNAM (strcat (getvar "DWGNAME")"_01")) (setq BOCLAYNAM (strcat (getvar "DWGNAME")"_02")) ) (Command "-presentation" "N" BOCLAYNAM) (setvar "CTAB" BOCLAYNAM) Cela fonctionne la premiere fois, mais apres cela continu d'aller sur ( "DWGNAME")"_01). Et de tout maniere si cela fonctionnait je serait coincé à la 3eme presentation . Concernant la fonction DWGNAME commen puis-je récupéré le nom sans le ".dwg à la fin"? AU SECOURS, LES SUPER LISPEURS
-
Rebonjour les pros du lisp. Je séche une fois de plus. Dans ma routine, je cree une nouvelle présentation: 1er probleme: Comment vérifier que que le nom de ma présentation n'existes pas déjà (Je ne peux pas utilsé comme pour les calque : (tblsearch "layer" "NomDuCalque") peut etre parce que je ne sais pas quoi mettre a la place de layer! je n'arrive pas utiliser la fonction (Entget(enlast) il ne renvoi les infos de l'élément créer juste avant le présentation (Une fenetres "viewports"). 2em probleme: Comment basculer sur ma nouvelle présentation. TILEMODE ne me premet que de passer de l'EO à l'EP utile si je n'est qu'un présentation dans mon fichier dwg. merci d'avance
-
Je cherche des informations sur la gestions des erreurs. Si quelqu'un pouvait me donner un lien ou tous simple des infos, cela serait bien aimable. Merci d'avance
-
Merci encore pour tous ces conseils. Pour le nom de calque, c'est imposé par notre client.
-
oK merci, mais ta soluce (Seb67) ne pas ? si mon test et OK (Command "-CALQUE" "CH" "$___FORMAT" "") sinon (Command "-CALQUE" "N" "$___FORMAT" "CH" "$___FORMAT" "") . j'espere que je ne dit pas de betise! Quoi qu'il en soit, je vais reste sur ce qui suit puisque cela marche :D (if (tblsearch "layer" "$___FORMAT") (Command "-CALQUE" "CH" "$___FORMAT" "") (Command "-CALQUE" "N" "$___FORMAT" "CH" "$___FORMAT" "") ) Merci encore pour votre aide à tous. Et concernant la gestion des erreurs?
-
merci beaucoup pour votre aide (Surtout Didier). Mais (et oui : boulet tu es boulet tu resteras!) Pourqoui ce qui suis ne marche pas? ;) (defun C:Text2 () (setvar "cmdecho" 0) (setq BOCVAL1 (tblsearch "layer" "$___FORMAT")) (prompt "etape 1") (if (= BOCVAL1 "nil") (Command "-CALQUE" "N" "$___FORMAT" "CH" "$___FORMAT" "") (Command "-CALQUE" "CH" "$___FORMAT" "") ) (princ) ) [Edité le 9/10/2008 par ScoAD]
-
merci, je vais faire bouillir mon cerveau. Et juste pour info. ces longues années de silence sont dut au faite que ne bosse pas que sur AutoCAD. Je suis également à la recherche d'info. sur la gestions des erreurs (Je ne comprends rien au la documentation fournis avec AutoCAD. [Edité le 9/10/2008 par ScoAD]
