Aller au contenu

Messages recommandés

Posté(e)

Bonjour tous,

 

Voilà je cale...

 

Comment on fait pour ouvrir un DWG en lisp ?

 

J'voudrais tapper "tralala" et que ça m'ouvre le dwg "c\coucou\dodo\tralala.dwg"

 

J'ai pas capté le fait de déclarer le fichier en variable...

 

(setq VA (open "tralala.dwg" "w"))

 

J'ai vu aussi qu'il y avait de possibilité en VLAX...

 

:(

"La ligne droite est le plus court chemin entre deux points, à condition que les deux points soient bien en face l'un de l'autre" P. Desproges.

Posté(e)
Bonjour tous,

 

Voilà je cale...

 

Comment on fait pour ouvrir un DWG en lisp ?

 

J'voudrais tapper "tralala" et que ça m'ouvre le dwg "c\coucou\dodo\tralala.dwg"

 

J'ai pas capté le fait de déclarer le fichier en variable...

 

(setq VA (open "tralala.dwg" "w"))

 

J'ai vu aussi qu'il y avait de possibilité en VLAX...

 

:(

 

Bonjour,

 

La f onction "open" permet d'ouvrir un fichier texte pour y lire ou écrire. (la variable servira à identifier le fichier lors des opérations en écriture ou en lecture)

 

Pour ouvrir un dwg, il faut un truc qui ressemble à :

(command "_open" "tralala")

 

phil

Posté(e)

Bonjour

 

Si tu te sers d'un (command "_open" "tralala"), il faudra associer un script avec le dessin pour pouvoir le modifier.

En effet, dès que tu ouvres un dessin, le lisp continue sur le dessin actuel, pas sur celui qui vient d'être ouvert.

Pour éviter cela, il reste de visual lisp ou les scripts, tout dépend de ton niveau en lisp/vlisp

 

Avec un script --> SuperAutoscript pas exemple. Rien n'interdit à un script de lancer un lisp

 

En vlisp (et uniquement vlisp, car à ce niveau, autolisp est largué)

Ouverture d'un dessin dans autocad

(setq des (vla-open (vla-get-documents (vlax-get-acad-object)) "tralala"))

 

Une autre manière de faire, celui d'accéder au dessin sans l'ouvrir directement dans Autocad (gain de temps car plus besoin de le faire afficher)

(defun Ouvrir_dessin_dbx(dwg / dbx)
(if (< (atoi (substr (getvar "ACADVER") 1 2)) 16)
(setq dbx (vlax-create-object "ObjectDBX.AxDbDocument"))
(setq dbx (vlax-create-object (strcat "ObjectDBX.AxDbDocument." (substr (getvar "ACADVER") 1 2))))
)
(vla-open dbx dwg)
dbx
)

(setq des (Ouvrir_dessin_dbx "tralala"))

 

Il reste plus qu'à travailler avec la variable des

Bon courage

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

bonjour,

 

Merci pour ces infos.

 

J'ai encore une question svp : Quand mon fichier est sur une racine comme par exemple

"p:tralala.dwg" tout va bien avec ce code :

 

 (setq des (vla-open (vla-get-documents (vlax-get-acad-object)) "p:tralala"))

 

Mais quand il y a des sous répertoires j'ai le message d'erreur :

Erreur Automation nom de fichier incorrect

 

Voilà le code :

 

 (setq des (vla-open (vla-get-documents (vlax-get-acad-object)) "p:\DAO\Exemples\tralala"))

 

Le fait de mettre des anti slash créé un problème ?

 

BOnne journée !

"La ligne droite est le plus court chemin entre deux points, à condition que les deux points soient bien en face l'un de l'autre" P. Desproges.

Posté(e)

Salut,

 

En LISP (comme dans d'autres langages de programmation), l'anti slash (\) est un caractère d'échappement (utilisé pour changer la fonction du caractère suivant) :

\n : saut de ligne

\t : tabulation

...

Un caractère d'échappement sert aussi à afficher certains caractères dans une chaîne (dont lui même) :

pour afficher des guillemets dans une chaîne :

"Il a dit \"bizarre\""

pour afficher des anti slashes dans une chaine :

"C:\\DAO\\Exemples\\tralala"

 

Pour les chemins de fichiers, on peut aussi utiliser le slash (/)

"C:/DAO/Exemples/tralala"

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é