Aller au contenu

Dessine un pilier avec ou sans croisillon


Messages recommandés

Posté(e)

 

 

(defun c:_PhPile  () ;pour lancer la commande, supprimer  le "_" devant PhPile
(setvar "cmdecho" 0)
 (setq p1 (getpoint "\nCoin de la pile : "))
 (setq Ori (getorient p1 "\nDirection de la pile : "))
 (setq Lo (getdist "\nLongeur de la pile : " p1))
 (setq p3 (polar p1 Ori Lo))

 (setq La (getdist "\nLargeur de la pile : " p1))
; on peut taper au clavier la largeur de la pile, 
; si la largeur est négative, la pile sera à gauche des deux premier points
; sinon, elle sera à droite 
 (if (= La 0) (setq La Lo))
 (cond
   ((< La 0)
    (setq p4 (polar p3 (+ Ori (/ pi 2)) (abs La)))
    (setq p5 (polar p1 (+ Ori (/ pi 2)) (abs La)))
    )
   ((or (= La 0) (= La ""))
    (princ "\nLa=0")
    (setq p4 (polar p3 (- Ori (/ pi 2)) (abs Lo)))
    (setq p5 (polar p1 (- Ori (/ pi 2)) (abs Lo)))
    )
   ((> La 0)
    (setq p4 (polar p3 (- Ori (/ pi 2)) (abs La)))
    (setq p5 (polar p1 (- Ori (/ pi 2)) (abs La)))
    )

   )
 (command "-calque" "e" "Limites (Mur)" "co" "2" "" "")
 (command "_.pline" "_non" p1 "_non" p3 "_non" p4 "_non" p5 "c")
 (initget "Oui Non")
 (if (= (getkword "\nDessiner un croisillon ? (Oui/Non): ") "Oui")
   (progn
     (command "-calque" "e" "Limites (Mur Hachure)" "co" "8" "" "")
     (command "_.line" "_non" p1 "_non" p4 "")
     (command "_.line" "_non" p3 "_non" p5 "")
   )
   )
 )

 

Voilà, si quelqu'un peut l'améliorer... Ca sert à çà....

 

Denis...

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)

Tout çà manque de finition !

 

Déclaration des variables locales (voir ici).

 

Restauration de la variable CMDECHO (voir ici)

 

Noms de commande en langage international (voir ici, ou ici, ou encore ).

 

Vois aussi la fonction (initget ...) pour toutes les fonction (getXXX ...), afin d'éviter que l'utilisateur n'entre des données qui feraient échouer la routine.

 

À ce propos, avec (getkword ...) si tu mets les options entre crochets au lieu de parenthèses elles apparaîtront dans le menu contextuel de la commande (clic droit) et si tu n'as pas mis le bit 1 au initget tu peux mettre une option par défaut (en cas de ENTER) :

 

(initget "Oui Non")

(if (= (getkword "\nDessiner un croisillon ? [Oui/Non] : ")

"Oui"

)

(action si "Oui")

(action si "Non" ou ENTER) ;_ Optionnel

)

 

[Edité le 27/5/2006 par (gile)]

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

Posté(e)

Encore une fois, (gile) vient à mon secour... Je réécriraits cette routine...

 

Merci des conseils...

 

Denis...

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)

Merci (gile), j'ai donc fais çà, en m'inspirant de tes raccourcis...

 

(defun SAVE_VAR ()
(setq
 v1 (getvar "ATTDIA")
 v2 (getvar "AUNITS")
 v3 (getvar "AUTOSNAP")
 v4 (getvar "CLAYER")
 v5 (getvar "CMSECHO")
 v6 (getvar "EXPERT")
 v7 (getvar "FILEDIA")
 v8 (getvar "MENUECHO")
 v9 (getvar "PLINEWID")
 v10 (getvar "SNAPMOD")
 v11 (getvar "TILEMODE")
 v12 (getvar "OSMODE")
 )
)

et

 

 (defun RESTORE_VAR ()
(setvar "ATTDIA" v1)
(setvar "AUNITS" v2)
(setvar "AUTOSNAP" v3)
(setvar "CLAYER" v4)
(setvar "CMSECHO" v5)
(setvar "EXPERT" v6)
(setvar "FILEDIA" v7)
(setvar "MENUECHO" v8)
(setvar "PLINEWID" v9)
(setvar "SNAPMOD" v10)
(setvar "TILEMODE" v11)
(setvar "OSMODE" v12)

 

Car ce sont les principales variables AutoCAD que je midifie....

 

Bienvenu aux observations...

 

J'ai lus les articles sur l'internationnalité des codes... Je suis entièrement d'accord, Mais vu qu'on ext sur un site francophone... Il faudrait au moins décrire le core en français... Non ?

 

Denis...

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)

Salut,

 

Pour les variables système, c'est une façon de faire, pas celle que préfère, mais çà marche et c'est l'essentiel ;)

 

 

Mais vu qu'on ext sur un site francophone... Il faudrait au moins décrire le core en français... Non ?

 

Je ne sais pas ce que tu entends par "core", dans mes LISP les invites et les commentaires sont en français (sauf quand, exeptionnellement, je poste sur un site anglo-saxon) mais les commandes et options sont toujours en langage internationnal. Il n'est pas beaucoup plus difficile de comprendre getkword que line ou layer.

Voir ce sujet

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

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é