Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

 

Je pense que j'ai déjà posé la question, mais j'ai une petite mémoire.

 

Comment créer un répertoir en Lisp ?

 

Merci à tous.

 

Il n'y a pas d'homme cultivé, il n'y a que des hommes qui se cultivent.

 

Maréchal Foch

Posté(e)

Salut Morgul!

 

en Vlisp:

vl-mkdir

 

ou tu peux utiliser la bibliothèque gratuite doslib.

 

a+

 

PS: Bred m'est passé devant (put.. de mozilla qui bug) car je suis allé sous IE pour répondre ;)

 

[Edité le 31/10/2007 par bseb67]

Tous pour lisp, Lisp pour tous!

Avec Revit, cela ne vas trop vite...

Posté(e)

Salut Lovecraft!

 

Je suis tombé dessus (Doslib) au mois de juin. Et depuis je m'en sert pour quelques lisp.

Certains lisp doivent faire une sauvegarde d'un fichier à traiter, plutot que de faire un enregistrer

sous (qui est très long) j'utilise le dos_copy.

J'ai prit plaisir à utiliser la barre de progression (dos_progressbar) lorsque mes lisp sont long.

Comme cela le dessinateur voit l'avancement et ne s'imagine pas que le lisp à planté :).

 

Petit +, voici le mon lisp pour charger doslib:

 

 
;------------------------------------;
; nom: load_doslib		     ;
; role: charge la bibliothèque doslib;
;       en fonction de la version    ;
;       utilisée d'autocad           ;
; param: DOSLIB_PATH => chemin doslib;
; retour: aucun                      ;
; date: 27/06/2007                   ;
; BLAES Sébastien                    ;
;------------------------------------;
(defun load_doslib( DOSLIB_PATH / vn)

; on cherche la version d'autocad
(setq vn (getvar "_vernum"))
 	
(cond
  	; R14
	((or (= vn "S.0.80.G") (= vn "P.0.33"))
		(if (not (member "doslib14.arx" (arx)))
		  	(setq DOSLIB_LOADED (/= (arxload (strcat DOSLIB_PATH "DOSLib14.arx")) nil))
		  	(setq DOSLIB_LOADED t)
		) ; if
	)
	; 2000
	((or (= (strcase (substr vn 1 1)) "T") (= (strcase (substr vn 1 1)) "U"))
		(if (not (member "doslib2k.arx" (arx)))
		  	(setq DOSLIB_LOADED (/= (arxload (strcat DOSLIB_PATH "doslib2k.arx")) nil))
		  	(setq DOSLIB_LOADED t)
		) ; if
	)
  	; 2006
	((= (strcase (substr vn 1 1)) "Z")
		(if (not (member "doslib16.arx" (arx)))
		  	(setq DOSLIB_LOADED (/= (arxload (strcat DOSLIB_PATH "doslib16.arx")) nil))
		    	(setq DOSLIB_LOADED t)
		) ; if
	)
	
	; 2007
	((= (strcase (substr vn 1 1)) "A")
		(if (not (member "doslib17.arx" (arx)))
		  	(setq DOSLIB_LOADED (/= (arxload (strcat DOSLIB_PATH "DOSLib17.arx")) nil))
		    	(setq DOSLIB_LOADED t)
		) ; if
	)
	; 2008
	((= (strcase (substr vn 1 1)) "B")
		(if (not (member "doslib17.arx" (arx)))
		  	(setq DOSLIB_LOADED (/= (arxload (strcat DOSLIB_PATH "DOSLib17.arx")) nil))
		    	(setq DOSLIB_LOADED t)
		) ; if
	)
) ; cond
) ; load_doslib

;--------------------------------------;
; nom: unload_doslib                   ;
; role: décharge la bibliothèque doslib;
; param: aucun                         ;
; retour: aucun                        ;
; date: 27/06/2007                     ;
; BLAES Sébastien                      ;
;--------------------------------------;
(defun unload_doslib( / vn)
; on cherche la version d'autocad
(setq vn (getvar "_vernum"))
(cond
  	; R14
	((or (= vn "S.0.80.G") (= vn "P.0.33"))
		(if (member "doslib14.arx" (arx))
			(setq DOSLIB_LOADED (not (= (arxunload "doslib14.arx") "doslib14.arx")))
		  	(setq DOSLIB_LOADED nil)
		)
	)
	; 2000
	((or (= (strcase (substr vn 1 1)) "T") (= (strcase (substr vn 1 1)) "U"))
		(if (member "doslib2k.arx" (arx))
			(setq DOSLIB_LOADED (not (= (arxunload "doslib2k.arx") "doslib2k.arx")))
		  	(setq DOSLIB_LOADED nil)
		)
	)
  	; 2006
	((= (strcase (substr vn 1 1)) "Z")
	 	; on décharge l'arx DOSlib
		(if (member "doslib16.arx" (arx))
			(setq DOSLIB_LOADED (not (= (arxunload "doslib16.arx") "doslib16.arx")))
		  	(setq DOSLIB_LOADED nil)
		)
	)
	
	; 2007
	((= (strcase (substr vn 1 1)) "A")
		; on décharge l'arx DOSlib
		(if (member "doslib17.arx" (arx))
			(setq DOSLIB_LOADED (not (= (arxunload "doslib17.arx") "doslib17.arx")))
		  	(setq DOSLIB_LOADED nil)
		)
	)
	; 2008
	((= (strcase (substr vn 1 1)) "B")
		; on décharge l'arx DOSlib
		(if (member "doslib17.arx" (arx))
			(setq DOSLIB_LOADED (not (= (arxunload "doslib17.arx") "doslib17.arx")))
		  	(setq DOSLIB_LOADED nil)
		)
	)
) ; cond
) ; unload_doslib

 

Bien-sur il faut télécharger les fichier arx. charger ce lisp dans autocad ou même dans un autre lisp avec (load ...). Puis de faire un (load_doslib chemin).

La variable DOSLIB_LOADED sert juste de test, comme cela si un lisp appel un fonction doslib,

on test l'état de cette variable et cela évite les erreurs "fonction non trouvée"

 

 

a+

 

 

 

[Edité le 31/10/2007 par bseb67]

Tous pour lisp, Lisp pour tous!

Avec Revit, cela ne vas trop vite...

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é