MiniMinus
Membres-
Compteur de contenus
25 -
Inscription
-
Dernière visite
MiniMinus's Achievements
Newbie (1/14)
0
Réputation sur la communauté
-
OK et merci pour les réponses. Je vais devoir me mettre aux raccourcis. Moi qui ne voulait pas de trop (c'est plus dur de pianoter que de glisser la souris !! lolll) mais tout le monde me le dit pour tous les programmes alors je vais m'y coller. Encore merci MiniMinus
-
Bonjour, Cela fait deux fois que cela arrive : les icones sont remplacées par des carrés noirs dans l'éditeur LISP. Aurrais-je tapé une mauvaise commande ou un marabout m'aurait-il jeté un sort ?La première fois, j'ai réinstallé Autocad mais là, je préfère plus. A L'AIDE !!!! MiniMinus
-
Coordonnées relatives ou absolues
MiniMinus a répondu à un(e) sujet de MiniMinus dans Débuter en LISP
Merci à tous les deux L'ignare que je suis, ne connaissais pas "OSMODE". Encore une chose que j'ai apprise. Je progresse, je progresse... Encore vingt ans et je pourrais passer à cinquante lignes de programme. MiniMinus -
Bonsoir à tous Avant toute chose, pourrait-on me dire ce que signifie l'apostraophe ( ' ) devant certaines données. Ceci étant fait, j'ai fait un petit programme pour dessiner un poteau (à partir de mon fichier txt des profils) vu de profil (c-à-d 2 lignes d'épaisseur d'aile à equidistance de l'axe), mais je n'arrive pas à avoir le bon dessin. Mes lignes ne sont pas toutes parallèles alors que les points de coordonnées sont exacts. Quelqu'un pourrait-il me dire si c'est une question de coordonnées absolues ou relatives et comment remédier à ce problème? Merci d'avance MiniMinus PS : je sais qu'il y a moyen de faire plus court mais pour l'instant j'essaye surtout que cela marche correctement. (je ferais des oeuvres d'art plus tard :D ) Programme : (defun LireFic (); / choix Profil x MonFic) (setq MonFic "C:/Documents and Settings/Manuel/Application Data/Autodesk/AutoCAD 2004/R16.0/fra/Support/Fichier_Profils.txt") (setq x (open MonFic "r")) (setq choix (getstring "Le profil :")) (while (/= choix Profil) (setq Profil (read-line x)) (if (= Profil "fin") (progn (princ "Profil non répertorié !!!") (close x) (exit) ) ) (setq Haut (read-line x)) (setq Large (read-line x)) (setq Ame (read-line x)) (setq Aile (read-line x)) (setq Conge (read-line x)) ) (close x) (princ) ) (defun main (); / l1 l2 l3 h1 h2 h3 X1 X2 Y1 Y2 Xtemp Ytemp) (setq P1 (getpoint "1er point :") P2 (getpoint P1 "2ème point :") X1 (car P1) Y1 (cadr P1) X2 (car P2) Y2 (cadr P2)) (if (< Y2 Y1) (setq Xtemp X1 Ytemp Y1 X1 X2 Y1 Y2 X2 Xtemp Y2 Ytemp) ) (setq l1 0 h1 0 l2 0 h2 0 l3 0 h3 0) (LireFic) (setq l1 (- X2 X1) h1 (- Y2 Y1) alpha (atan h1 l1)) (setq alpha (- (/ pi 2) alpha)) (setq l2 (* (/ (atof Haut) 2) (cos alpha))) (setq h2 (* (/ (atof Haut) 2) (sin alpha))) (setq l3 (* (- (/ (atof Haut) 2) (atof Aile)) (cos alpha))) (setq h3 (* (- (/ (atof Haut) 2) (atof Aile)) (sin alpha))) (princ (strcat (rtos l2) " " (rtos h2) "===" (rtos l3) " " (rtos h3))) (setq P3 (list (- X1 l2) (+ Y1 h2))) (setq P4 (list (- X2 l2) (+ Y2 h2))) (setq P5 (list (- X1 l3) (+ Y1 h3))) (setq P6 (list (- X2 l3) (+ Y2 h3))) (setq P7 (list (+ X1 l3) (- Y1 h3))) (setq P8 (list (+ X2 l3) (- Y2 h3))) (setq P9 (list (+ X1 l2) (- Y1 h2))) (setq P10 (list (+ X2 l2) (- Y2 h2))) (command "_line" P1 P2 "") (command "_line" P3 P4 "") (command "_line" P5 P6 "") (command "_line" P7 P8 "") (command "_line" P9 P10 "") (princ) )
-
Merci à tous Pour ma part, j'ai choisi pour le moment la solution à Patrick_35 qui est la plus simple pour moi qui veut me contenter pour l'instant d'AutoLISP. J'ai mis le mot "fin" à la fin de mon fichier pour le tester même quand je rajoute des profils. Ce ne doit pas être la méthode la plus orthodoxe mais pour l'instant j'en suis encore aux balbutiements. MiniMinus
-
Merci à tous pour vos différentes réponses. l faut maintenant que j'étudie tout cela (des maux de tête en perspective !!!). Hier, j'avais retenu la solution de Patrick_35 (qui marche très bien) mais seulement il me faut lire 6 lignes par profil or je ne voudrais en lire qu'une seule par profil. La solution de BonusCad me semble prometteuse car je me retrouve alors avec le nom du profil puis une liste avec ses caractéristiques. Pour une recherche avant extraction, cela devrait être plus rapide. Une petite question subsidiaire : quelles sont les limites d'un programme pour qu'il puisse tourner sous LT ? En effet, je crée mes routines sous version complète (ce qui est évident !! loll) mais elles devront principalement tourner sous version LT. MiniMinus
-
Bonsoir à toutes et à tous Quelqu'un peut-il me dire comment écrire un fichier avec le bloc-note pour que le petit programme ci-dessous puisse le lire ? Je n'arrive pas à séparer le nom du profil de ses mensurations. Le programme me met l'erreur suivante : ; erreur: type d'argument incorrect: consp "IPE80 80 46 3.8 5.2 5". J'ai essayé en mettant des parenthèses, des apostrophes, des virgules mais rien n'y fait. Merci MiniMinus Routine : (defun c:LireFic () (setq MonFic "C:/Documents and Settings/Manuel/Application Data/Autodesk/AutoCAD 2004/R16.0/fra/Support/Fichier_Profils.txt") (setq x (open MonFic "r") ct 0) (while (< ct 43) (setq Profil (read-line x)) (princ Profil) (princ "\n") (setq debut (car Profil)) (princ debut) (setq ct (1+ ct)) ) (close x) (princ) ) Fichier : (du moins quelques lignes seulement mais il en compte 42) IPE80 80 46 3.8 5.2 5 IPE100 100 55 4.1 5.7 7 IPE120 120 64 4.4 6.3 7 IPE140 140 73 4.7 6.9 7 IPE160 160 82 5.0 7.4 9
-
Merci pour les réponses. Je vais essayer de voir ça ce soir (il est 6h). Patrick, voici en faite le fichier que je voudrais me constituer : ("Profil","Largeur","Hauteur","Aile","Ame","Congé"). Seul "Profil" serait alphanumérique et cela me servirait à dessinait des attaches, profils,..en entrant seulement le nom du profil. Je n'y mettrais que les plus courants (IPE, HEA,UPN) quitte à les faire choisir dans une boîte de dialogue. Encore merci à tous. MiniMinus
-
Bonjour, Je voudrais créer un fichier de données utilisable dans mes routines, dont chaque enregistrement aurait à peu près la forme suivante : ("nom", "val1", "val2", "val3","val4", "val5"). Ce fichier aurait un nombre fini d'enregistrements. Aussi voilà ma question : vers quel genre de commandes dois-je me diriger pour étudier la question ? Je voudrais aussi que mon fichier soit accessible à chaque nouvelle application (dessin). Quelqu'un peut-il me diriger dans l'une ou l'autre direction ? Je ne demande pas une routine mais plutôt vers quel paragraphe de l'aide me diriger et peut-être une petite explication du principe. Merci à tous ceux qui me répondront et bonsoir à tous. MiniMinus :casstet:
-
Erreur: type d\'argument incorrect
MiniMinus a répondu à un(e) sujet de MiniMinus dans Débuter en LISP
Merci BonusCad Je vais étudier ton programme mais seulement ce week-end car je n'aurais pas assez de temps avant. (Si je veux bien comprendre, je dois prendre mon temps ! Que veux-tu ! C'est ça les vieux !). Ton programme est plus conséquent que mes petites routines, du moins par rapport à ma connaissance du langage. Encore merci @+ MiniMinus -
Jouer avec les arguments ou sans ?
MiniMinus a répondu à un(e) sujet de MiniMinus dans Débuter en LISP
Tout d'abord merci à vous deux. Gile je peux te dire que tu avais été clair mais c'est certainement moi qui n'avait pas compris qu'avec "c:fonction" , on ne pouvait pas donner d'argument (toujours la fatigue car ENORMEMENT de boulot plus apprendre le LISP !!!!). Mais ce coup-ci la leçon est retenue. Merci également Tiboulen pour le racourci. Je l'avais remarqué après avoir écrit mes routines et comme c'était le passage d'argument qui me gênait, je n'avais rien changé. Pour ce qui est d'écrire des fonctions d'une ligne, il est dit "Qu'il faut diviser pour régner". Aussi je crée des petites routines que je peux manipuler plus facilement et ainsi mieux les comprendre. Mais ne vous en faites pas, quand je veux les utiliser vraiment, j'insère simplement la ligne de code dans le programme. Je trouve que c'est plus facile pour moi cerner le langage au début. En tous cas, cela réchauffe le coeur de ne pas se sentir seul dans cette froide jungle du langage informatique. MiniMinus -
Voilà les petites routines que j'ai concoctées pour pouvoir faire appel à un calque avant de créer un objet puis remettre l'ancien actif. Seulement, si je mets "Nom1" en argument, cela bloque. Par contre telles qu'elles sont là, elles fonctionnent très bien. Quelqu'un peut-il m'expliquer pourquoi ? Merci et bonne journée à tous MiniMinus -------------------------------------------------------------------------------------------- Sans arguments... (defun c:Chang_Calq () (setq Nom1 (getstring "Nom du calque :")) (setq old_lay (getvar "clayer")) (if (not (tblsearch "LAYER" Nom1)) (c:creer_calq) (setvar "clayer" Nom1) ) (princ) ) (defun c:Remet_Calq ( ) (setvar "clayer" old_lay) ) (defun c:creer_calq ( ) (command "_layer" "E" Nom1 "CO" 3 "" "") ) ------------------------------------------------------------------------------------------------------------- ... et avec argument: (defun c:Chang_Calq (Nom1 / ) (setq Nom1 (getstring "Nom du calque :")) (setq old_lay (getvar "clayer")) (if (not (tblsearch "LAYER" Nom1)) (c:creer_calq) (setvar "clayer" Nom1) ) (princ) ) (defun c:Remet_Calq ( ) (setvar "clayer" old_lay) ) (defun c:creer_calq ( Nom1 / ) (command "_layer" "E" Nom1 "CO" 3 "" "") )
-
Erreur: type d\'argument incorrect
MiniMinus a répondu à un(e) sujet de MiniMinus dans Débuter en LISP
Merci Gile, pour l'explication. J'ai cependant trouvé sans consulter l'aide en anglais. Ma femme est américaine et j'en ai parfois marre de l'anglais surtout pour le côté technique. Simplement avec un peu de logique, beaucoup d'essais et de l'observation, on y arrive aussi parfois. Je voulais te demander : t'es tout seul sur ce site ? Il n'y a que toi à me répondre ! loll Je plaisante. Je te souhaite une bonne soirée et encore merci pour ton aide et ta disponibilité. MiniMinus -
Erreur: type d\'argument incorrect
MiniMinus a répondu à un(e) sujet de MiniMinus dans Débuter en LISP
A tous et particulièrement à Gile, Merci car j'apprends beaucoup avec vous. J'ai donc trouvé mon erreur. Il ne faut pas mettre l'appel de la fonction "BlsFace" dans "progn" mais après le "unload_dialog". Ok j'ai résolu ce tout petit problème (ce qui n'est pas un grand exploit) mais je ne peux pas expliquer pourquoi. Si quelqu'un peut me l'expliquer, il est le bienvenu. J'ai bien une petite idée que je vous soumet pour ce qu'elle vaut : tant que la boîte de dialogue n'est pas fermée, les variables ne sont pas véritablement mises à jour. Bon dimanche à tous. MiniMinus -
Erreur: type d\'argument incorrect
MiniMinus a répondu à un(e) sujet de MiniMinus dans Débuter en LISP
Merci Gile, Mais je ne comprends pas car ma variable "Dia_Cho" prend bien la valeur dont j'ai besoin. C'est au passage à la fonction "BlsFace" que cela bloque. Après l'appel "(BlsFace Dia_Cho)", ma variable "Dia_Cho" a bien la valeur 24 (en exemple) mais la variable "Dia" est à "nil". Même avec des réels. J'ai quand même essayé ta façon et cela ne marche pas ! Il est des mondes où tout n'est qu'illusions, je crois !!! Pas facile le LISP. MiniMinus
