CADxp: Nom de calque avec 2 variables utilisateur - CADxp

Aller au contenu

Page 1 sur 1

Nom de calque avec 2 variables utilisateur

#1 L'utilisateur est hors-ligne   Topheur 

  • ceinture orange
  • Groupe : Membres
  • Messages : 24
  • Inscrit(e) : 05-janvier 16

Posté 04 décembre 2016 - 09:41

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.
0

#2 L'utilisateur est en ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 10347
  • Inscrit(e) : 02-septembre 05

Posté 04 décembre 2016 - 11:06

Salut,

Regarde la fonction strcat.
Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
Image IPB
0

#3 L'utilisateur est hors-ligne   Topheur 

  • ceinture orange
  • Groupe : Membres
  • Messages : 24
  • Inscrit(e) : 05-janvier 16

Posté 04 décembre 2016 - 18:34

Voir le message(gile), le 04 décembre 2016 - 11:06 , dit :

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)

)


0

#4 L'utilisateur est hors-ligne   Topheur 

  • ceinture orange
  • Groupe : Membres
  • Messages : 24
  • Inscrit(e) : 05-janvier 16

Posté 04 décembre 2016 - 21:26

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 ?
0

#5 L'utilisateur est hors-ligne   arnaudalp 

  • ceinture verte
  • Groupe : Membres
  • Messages : 92
  • Inscrit(e) : 18-janvier 16

Posté 05 décembre 2016 - 07:33

Bonjour
Il manque encore un "" pour sortir de la commande il me semble.
0

#6 L'utilisateur est hors-ligne   DenisH 

  • ceinture noire 3em dan
  • Groupe : Membres
  • Messages : 1971
  • Inscrit(e) : 17-décembre 05
  • LocationSAINT FLORENTIN (Yonne)

Posté 05 décembre 2016 - 08:45

Bonjour à tous.

Attention, dans ton (strcat, tu écris nnom, avec 2 "n", c'est nom avec un seul "n" qu'il faut...
LinkedIn et mon site...
Windows 10 Pro 64bits
AutoCAD MAP 3D 2017.0.3 HotFix
Covadis 15.0b
Microstation V8i

Un clavier azerty en vaut deux...
Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres...
Davantage d'avantages, avantagent davantage (Bobby Lapointe)
0

#7 L'utilisateur est hors-ligne   didier 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 7022
  • Inscrit(e) : 18-décembre 02
  • LocationPlanète : Terre

Posté 05 décembre 2016 - 10:51

Coucou

il écrit ce qu'il veut après tout !!! il met bien deux P au verbe taper...

ce qui importe c'est qu'il reprenne le même nom de variable que lors de l'affectation ce qui est le cas en l’occurrence.
Éternel débutant ...
0

#8 L'utilisateur est hors-ligne   DenisH 

  • ceinture noire 3em dan
  • Groupe : Membres
  • Messages : 1971
  • Inscrit(e) : 17-décembre 05
  • LocationSAINT FLORENTIN (Yonne)

Posté 05 décembre 2016 - 11:42

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...
LinkedIn et mon site...
Windows 10 Pro 64bits
AutoCAD MAP 3D 2017.0.3 HotFix
Covadis 15.0b
Microstation V8i

Un clavier azerty en vaut deux...
Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres...
Davantage d'avantages, avantagent davantage (Bobby Lapointe)
0

#9 L'utilisateur est hors-ligne   didier 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 7022
  • Inscrit(e) : 18-décembre 02
  • LocationPlanète : Terre

Posté 05 décembre 2016 - 11:59

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
Éternel débutant ...
0

#10 L'utilisateur est hors-ligne   Topheur 

  • ceinture orange
  • Groupe : Membres
  • Messages : 24
  • Inscrit(e) : 05-janvier 16

Posté 05 décembre 2016 - 18:10

Voir le messagedidier, le 05 décembre 2016 - 11:59 , dit :

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):' />
0

#11 L'utilisateur est hors-ligne   didier 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 7022
  • Inscrit(e) : 18-décembre 02
  • LocationPlanète : Terre

Posté 05 décembre 2016 - 18:36

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
Éternel débutant ...
0

#12 L'utilisateur est en ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 10347
  • Inscrit(e) : 02-septembre 05

Posté 05 décembre 2016 - 19:26

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 -
Développements sur mesure pour AutoCAD
Image IPB
0

#13 L'utilisateur est hors-ligne   Topheur 

  • ceinture orange
  • Groupe : Membres
  • Messages : 24
  • Inscrit(e) : 05-janvier 16

Posté 06 décembre 2016 - 18:21

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 Image IPB

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 :) )
0

Partager ce sujet :


Page 1 sur 1


Réponse rapide

  

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)