Aller au contenu

Messages recommandés

Posté(e)

Bonjour

 

Où est ma faute ? Ma varviable hach1 est nil et ne prend pas mon nom de hachure...

 

(initget 1 "Enrobé Concassé Terre Béton Grave_bitume")

(setq choix (getkword "\n Choix revêtement [Enrobé/Concassé/Terre/Béton/Grave_bitume] : "))

 

(if (= choix "Enrobé")

(

(setq hach1 (strcase "SOLID"))

(setvar "hpname" hach1)

(setvar "hpscale" 0.1)

)

)

 

(if (= choix "Concassé")

(

(setq hach1 (strcase "BOIS2"))

(setvar "hpname" hach1)

(setvar "hpscale" 0.01)

)

)

 

(if (= choix "Terre")

(

(setq hach1 (strcase "G_ANCHORLK"))

(setvar "hpname" hach1)

(setvar "hpscale" 0.01)

)

)

 

(if (= choix "Béton")

(

(setq hach1 (strcase "ANSI31"))

(setvar "hpname" hach1)

(setvar "hpscale" 0.01)

)

)

 

(if (= choix "Grave_bitume")

(

(setq hach1 (strcase "ANSI38"))

(setvar "hpname" hach1)

(setvar "hpscale" 0.01)

)

)

Posté(e)

Salut,

 

Dans les mots clé en argument de initget, chaque mot clé doit être séparé par un ou plusieurs espace et ne contenir que des lettres, des chiffres et le tiret (-).

Par contre tu peux faire différemment dans l'invite (CF ci-dessous).

 

Extrait de l'aide :

Keyword Specifications

The string argument is interpreted according to the following rules:

Each keyword is separated from the following keyword by one or more spaces. For example, "Width Height Depth" defines three keywords.

Each keyword can contain only letters, numbers, and hyphens (-).

 

Dans la suite du code, les expressions (if ...) sont incorrectes (parenthèses supplémentaires), il faut utiliser progn pour regrouper plusieurs expressions en une seule :

(if (= choix "Enrobé")
 (progn
   (setq hach1 (strcase "SOLID"))
   (setvar "hpname" hach1)
   (setvar "hpscale" 0.1)
 )
)

Mais pour ce que tu veux faire, l'utilisation de cond est plus adaptée.

 

(initget 1 "Enrobé Concassé Terre Béton Grave")
(setq choix
      (getkword
 "\n Choix revêtement [Enrobé/Concassé/Terre/Béton/Grave bitume] : "
      )
)

(cond
 ((= choix "Enrobé")
  (setq hach1 (strcase "SOLID"))
  (setvar "hpname" hach1)
  (setvar "hpscale" 0.1)
 )
 ((= choix "Concassé")
  (setq hach1 (strcase "BOIS2"))
  (setvar "hpname" hach1)
  (setvar "hpscale" 0.01)
 )
 ((= choix "Terre")
  (setq hach1 (strcase "G_ANCHORLK"))
  (setvar "hpname" hach1)
  (setvar "hpscale" 0.01)
 )
 ((= choix "Béton")
  (setq hach1 (strcase "ANSI31"))
  (setvar "hpname" hach1)
  (setvar "hpscale" 0.01)
 )
 ((= choix "Grave")
  (setq hach1 (strcase "ANSI38"))
  (setvar "hpname" hach1)
  (setvar "hpscale" 0.01)
 )
)

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

Posté(e)

Bonjour à tous,

 

(gile), j'ai juste une petite question, je ne comprend pas pourquoi

(setq hach1 (strcase "BOIS2"))

et non

(setq hach1 "BOIS2")

Ou alors, j'ai raté quelque-chose...

 

Et est-ce vraiment nécessaire une échelle pour la hachure "SOLID" ?

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)

L'échelle de solid n'est en effet pas obligatoire...

 

Ce qui n'allait pas était donc mon grave_bitume avec le " _ " ?

 

j'utilise strcase "BOIS2" car le HPNAME requiert un texte si j'ai bien compris...

 

Merci pour l'aide !

Posté(e)

Si je ne dis pas une ânerie,

(setq hach1 (strcat "BOIS2"))

est la même chose que

(setq hach1 "BOIS2")

strcat compile les textes, comme dans

(setq phrase (strcat "(gile) t'expliquera " "mieux que" " " "moi"))

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)

DenisH,

 

Relis bien, ce n'est pas strcat mais strcase

 

Le premier concatène des chaines de caractères, le second force la case (majuscule, minuscule) des caractères.

 

(strcase "BOIS2" T)

(strcase "bois2")

Essayes ces deux expressions pour t'éclairer.

 

Bien que dans le code de cela n'était pas effectivement necessaire, il a pris une précaution au cas où un utilisateur vienne à changer le nom dans le code (choisir un autre motif) et que celui ci soit écrit en minuscule.

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

Milles mercis bonuscad, j'avais effectivement mal lu...

 

Au temps pour moi...

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)

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • 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é