Aller au contenu

Nom de calque avec 2 variables utilisateur


Messages recommandés

Posté(e)

Bonjour les lispeurs <img src='http://cadxp.com/public/style_emoticons/<#EMO_DIR#>/laugh.gif' class='bbc_emoticon' alt=':(rires forts):' />

 

Je reviens vers vous car je patauge (comme d'hab :P ).

 

J'essaye de créer un calque avec 2 noms de variables sans succès.

 

J'ai écris le code suivant :

 

;CREATION D'UN CALQUE EN FONCTION DE DEUX NOM TAPPER
(defun c:NVCN() 

(setq nnom(getstring"\nNom ou numéro ? ")) 

(setq nnom2(getstring"\nNom ou numéro n°2 ? ")) 

(command "calque" "E" nnom & nnom2 "") 

(princ)

)

 

Cela me crée un calque avec nnom mais pas avec nnom2.

J'ai également essayé de supprimer le & et le remplacer par un espace mais cela ne fonctionne pas.

 

En plus de cela, j'aimerais que le nom du calque devienne "00_nnom_nnom2" (ex. 00_VRD_01 ou 00_A1_ELEC)

 

Voilà, merci de votre aide.

Posté(e)

Salut,

 

Regarde la fonction strcat.

 

 

Merci Gile.

 

 

;CREATION D'UN CALQUE EN FONCTION DU NOM TAPPER
(defun c:NVCN() 

(setq nnom(getstring"\nNom du calque ? ")) 


(setq nnom2(getstring"\nNom du calque ? ")) 


(command "calque" "E" (strcat "00_" nnom nnom2 )  "")

(princ)

)

Posté(e)

Une autre question, pourquoi la commande :

 

(command "calque" "E" "test" "")

 

Arrête mon lisp.

Si je tape par exemple

(command "calque" "E" "test" "")

(alerte"test")

 

le lisp crée le calque, le rend courant (se que je désire) mais il ne m'affiche pas le message.

 

Pourquoi ?

Posté(e)

Bonjour à tous.

 

Attention, dans ton (strcat, tu écris nnom, avec 2 "n", c'est nom avec un seul "n" qu'il faut...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Effectivement... Je pensais juste aider...

 

Comme nom et nom2, on pourrais écrire nom1 et nom2...

 

Il n'a pas déclaré ses variables non plus...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Coucou

 

je répondais en reprenant ta remarque car s'il la prenait à la lettre (et suivant son niveau) il pouvait y avoir confusion

pour mémoire en lisp on ne déclare pas les variables.

 

lors de leur affectation il avait bien écrit nnom et nnom2 donc le strcat est correct (quant aux deux p de taper c'est une autre histoire ...)

 

et pour répondre au message #4 : c'est du même acabit

la commande alerte (avec un e à la fin) n'existe pas en natif on peut la créer certes mais je ne pense pas qu'il en soit question ici

attention à ce que vous tapez, le souci est comme dans bien des cas, entre la chaise et l'écran...

pour afficher un message d'alerte la commande est ALERT avec une string en argument.

 

amicalement

Posté(e)

Coucou

 

je répondais en reprenant ta remarque car s'il la prenait à la lettre (et suivant son niveau) il pouvait y avoir confusion

pour mémoire en lisp on ne déclare pas les variables.

 

lors de leur affectation il avait bien écrit nnom et nnom2 donc le strcat est correct (quant aux deux p de taper c'est une autre histoire ...)

 

et pour répondre au message #4 : c'est du même acabit

la commande alerte (avec un e à la fin) n'existe pas en natif on peut la créer certes mais je ne pense pas qu'il en soit question ici

attention à ce que vous tapez, le souci est comme dans bien des cas, entre la chaise et l'écran...

pour afficher un message d'alerte la commande est ALERT avec une string en argument.

 

amicalement

 

 

Bonsoir,

 

Pour info, il est vrai que je suis une quiche en orthographe, en conjugaison et en grammaire (et je m'en excuse).

 

Je le prends un petit peu mal :angry: car je trouve (parfois) les remarques un peu blessante(je parle dans la vie de tous les jours).

 

Du coup, j'applique la philosophie suivante ;) :

"Ne juge pas trop vite les gens car ces derniers ont très souvent un passé qui n'est pas le tiens !!!"

 

Je ne vais pas vous raconter ma vie mais je remercie déjà le ciel de m'avoir amené jusqu'ici et me serais bien marré de voir certaines personnes à ma place aujourd'hui (et leur niveau en général)...

 

Bref...

 

Je déteste l'injustice et j'aimerais rendre à César se qui lui appartient.

Le lisp n'est pas de moi, je l'ai TOTALEMENT pompé et j'ai simplement modifié le nom des variables qui n'avait pas de sens pour moi.

Je sais c'est pas bien mais j'ai appris le VBA comme ça et à l'heure d'aujourd'hui, je dispose d'un niveau correcte (je ne suis pas une bête mais j'ai fais la domotique de ma maison avec ! toc ! :P ).

 

Du coup, je ne m'amuse pas (car je n'y prête aucune attention) à corriger les fautes d'orthographe.

 

Pour en revenir au problème, merci à vous, il est résolu.

 

Concernant les variables :

nnom nnom2, n pour variable, nom pour la désignation, et 1,2,3 si plusieurs.

Cela aurait donné npiece npiece2 pour un nom de pièce par exemple.

Je ne sais pas si c'est la bonne méthode mais c'est celle que j'applique.

 

Déclarer les variables, je le faisais en VBA via Dim car cela me planté mes macro mais en lisp je n'arrive pas à m'y faire et je ne les déclares pas souvent vu que cela ne plante pas le lisp.

 

Pour la commande alertE, idem, pompé sur un code...

Ecrit avec un E à la fin donc... je mets un E à la fin.

 

Voilà messieurs, ne prenais pas mal mon message car je trouve votre forum super et les gens qui y participe également car sans VOUS je jouerais encore avec mon c... <img src='http://cadxp.com/public/style_emoticons/<#EMO_DIR#>/laugh.gif' class='bbc_emoticon' alt=':(rires forts):' />

Posté(e)

Coucou

 

désolé si tu prends mal les choses, l'idée initiale de ma réponse n'allait pas dans ce sens et il ne faut pas prendre grief de ce qui n'en est pas.

sache que si j'avais voulu me moquer, j'aurais employé des tournures de phrase mais je ne me moque pas et je juge encore moins.

des gens me gavent certes, et dans la vie je le dis, ici je ne le dis pas justement (comme tu le précises) parce qu'on ne se connaît pas et chacun a un parcours plus ou moins linéaire. rapidement : j'ai vécu en Afrique, à Madagascar, dans l'océan indien, au Maroc et je suis sur le départ pour l'Algérie, je te dis ça pour te faire toucher du doigt que j'ai "formé" des gens de bien des origines et que s'ils faisaient des fautes dans leur CV je ne disais rien (ou presque) mais quand ça touche au code, là on n'a plus de marge de manœuvre.

sujet clos (du moins à mes yeux)

 

pour ce qui est du vocabulaire, je m'en contrefiche que tu écrives taper avec deux p puisque ça ne nuit pas au code

mais quand tu déclenches une erreur à cause d'une faute de frappe (ou d'orthographe) là j'interviens.

par contre je maintiens que la commande ALERTE n'existe pas, sans doute celui que tu as pompé l'avait redéfinie...

 

pour ce qui est de copier-coller du code, je garde mon avis pour moi vu que tu as l'air assez chatouilleux.

 

ce qu'il faut en retenir c'est que ça fonctionne et j'en suis content pour toi.

je me permettrai sans doute une réponse si tu reviens questionner, ce que je souhaite.

 

amicalement

Posté(e)

Salut,

 

Concernant la déclaration locale des variables, charger le LISP suivant et exécuter plusieurs fois de suite la commande TEST1.

Est-ce bien le résultat attendu ?

 

(defun c:test1 ()
 (setq pt (getpoint "\nPremier point: "))
 (setq lst (cons pt lst))
 (while (setq pt (getpoint "\nPoint suivant: "))
   (setq lst (cons pt lst))
 )
 (command "_.pline")
 (foreach p lst (command p))
 (command "")
 (princ)
)

 

Charger Test2 et faire de même...

 

(defun c:test2 (/ pt lst)
 (setq pt (getpoint "\nPremier point: "))
 (setq lst (cons pt lst))
 (while (setq pt (getpoint "\nPoint suivant: "))
   (setq lst (cons pt lst))
 )
 (command "_.pline")
 (foreach p lst (command p))
 (command "")
 (princ)
)

 

On peut aussi lire ce sujet notamment la réponse #3.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Bonsoir,

 

D'abord au sujet du message de gile, je vais me pencher dessus quand j'aurais un peu de temps car cela m’intéresse.

 

Quand à didier, sujet clos, on enterre la hache de guerre laugh.gif

 

Par contre je ne suis pas chatouilleux au sujet des copier/coller de code, c'est juste que le monde change et qu'il faut parfois avancer professionnellement très vite sans prendre le temps de comprendre se que l'on fait réellement et je le regrette !

 

Du coup, j'ai appris à faire le "chinois" (comme on dit chez nous, ou le moine copiste), c'est pas la meilleure méthode mais c'est ça ou on passe une semaine à faire un truc faisable en 10 secondes avec un lisp (oui 10 secondes car les PC du taff...)

 

En tous cas j'espère bien que tu continueras à répondre si d'aventure je me heurte à un problème sur mes lisp :P et je ne t'en voudrais pas de corriger mes fautes (mais je te préviens, je suis un vrai petit poucet :) )

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é