Aller au contenu

SCU qui fait planter des lisp


Messages recommandés

Posté(e)

Bonjour,

 

J'ai quelque lisp qui ne fonctionne pas quand le scu n'est pas general

 

j'ai donc essayer d'enregistrer le scu au debut du lisp

 

(command "scu" "s" "temp")

 

puis le mettre en general

 

(command "scu" "g")

 

et enfin le restaurer en fin de lisp

 

(command "scu" "r" "temp")

 

et la il me dit qu'il ne connais pas le scu temp :exclam:

 

 

Posté(e)

est-ce que ton SCU est nommé ? car en VBA, lorsqu'il n'est pas nommé, j'arrive à rien faire, c'est peut-être similaire en lisp...

ATEGIE - Bureau d'Études Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

Posté(e)

voila ce que je fais dans un programme

 

au début

;Se place provisoirement dans le SCU Général

 

(command "_.ucs" "EF" "Nom du programme")

(command "_.ucs" "S" "Nom du programme" )

(command "_.ucs" "G")

 

PROGRAMME

 

à la fin

;Revient dans le SCU Particulier

 

;(command "_.ucs" "R" "Nom du programme" )

Posté(e)

 

est-ce que ton SCU est nommé ?

 

Non mon scu n'est pas nommé

 

(command "_.ucs" "EF" "Nom du programme")

(command "_.ucs" "S" "Nom du programme" )

(command "_.ucs" "G")

 

Nom du programme???

 

je ne comprend pas c'est le nom du lisp?

 

j'ai compris je met le nom que veux

 

le truc qui me bloque en lisp c'est la traduction des commandes

_.ucs a la place de scu c'est balaise a trouver :o

 

merci

 

[Edité le 27/9/2007 par Fraid]

Posté(e)

bonjour,

J'ai essayé ça chez moi:

 

 (defun c:test ()


;enregistrement du scu au debut
(command "scu" "s" "temp")
(setq savscu "temp")

;passage en scu generale
(command "scu" "g")

;restauration du scu avant le lancement du lisp
(command "scu" "r" savscu)

);fin du defun

 

ca fonctionne très bien, j'espère que ca sera le cas chez toi

 

@plus

Posté(e)

merci lovecraft

 

on avance

 

mais il reste un probleme

 

je teste avec le lisp de patrick35 RA

 

et cela fonctionne qu'une seul fois

apres il me dit que le scu temp existe deja voulez vous le redefinir

 

:casstet:

 

sa commence a se corser

 

je pense que les pointures lispiennes doivent bien se bidonner :P

 

 

Posté(e)

La solution de lovecraft de chercher l'existence dans la table est bonne.

 

Mais si tu préfère écraser systématiquement le SCU "temp", mettre la variable EXPERT au minimum à 4. De cette façon tu es bien sûr de restorer le dernier SCU "temp" sauvegardé.

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

Posté(e)

merci a tous

 

j'ai du metre la condition a l'envers

car si on replace le scu en general sa bug

il faut donc effacer le scu temp si il existe sinon on y retourne

 

(setq savexpert (getvar "expert"))

(if (= (tblsearch "UCS" "temp") (command "scu" "e" "temp"))

nil

);fin du if

(command "scu" "s" "temp")

(setq savscu "temp")

(command "_.ucs" "G")

 

(command "scu" "r" savscu)

(setvar "expert" savexpert)

Posté(e)

Pourquoi faire un getvar Expert si vous ne fixez pas cette variable à 4 ou plus ensuite. (setvar)

Car si elle est à zéro ou < à 4 le comportement de la commande SCU sera inchangée. :o

 

L'usage d'EXPERT dispense de l'usage de (tblsearch) et simplifie le code pour les conditions.

 

 

 

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

Posté(e)

pour repondre z bonuscad, comment dire c'etais juste un oubli d'un débutant en lisp ;)

 

 (defun c:test ()

(setq savexpert (getvar "expert"))
[surligneur] (setvar "expert" 4)[/surligneur](command "scu" "s" "temp")
(setq savscu "temp")

(command "scu" "g")

(command "scu" "r" savscu)
(setvar "expert" savexpert)

);fin du defun

@plus

veuillez m'excusee pour cette erreur ;)

Posté(e)

Salut,

 

J'ai parfois utilisé cette méthode de changement de SCU quand je n'arrivais pas à me débrouiller avec trans. Pour ne pas riquer d'enregitrer à nouveau unSCU avec le même nom, je supprime tout simplement le SCU nommé à la fin de la routine (et dans la routine de gestion des erreurs si nécessaire)

 

(command "_ucs" "_save" "scu_init")
(command "_ucs" "_world") 
;;.....
(command "_ucs" "_restore" "scu_init")
(command "_ucs" "_delete" "scu_init")

 

Chose qu'on ne peut pas faire en Visual LISP tant que le SCU est courant (où il faut poutant nécessairement travailler avec des SCU nommés).

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é