Aller au contenu

script insertion d\'image


ribbit

Messages recommandés

Bonjour amis scripteurs,

 

Je tente d'automatiser un peu l'insertion d'images de la BD ortho dans autocad.

J'ai fait un Tableau d'Assemblage vite fait où je veux postionner mes images.

J'ai fait un petit script avec une série d'images et plusieurs lignes de commande de ce type :

 

 -image A "N:\BD ORTHO\2000-0604-2584-62.tif"

 

Seulement je coince. Comment dire à autocad : "attend une seconde, je clique au bon endroit et après tu fais la suite du script (echelle 5 et rotation 0).

 

Je cherche donc le quelque chose qui va dans cette ligne de commande :

 

 -image A "N:\BD ORTHO\2000-0604-2584-62.tif" [color=red]quelque_chose[/color] 5 0

 

En vous remerciant d'v=avance pour les pistes, je suis sûr en plus que c'est une bricole...

 

Ribbit.

"Une fois qu'on les a découvertes toutes les vérités sont faciles à comprendre; l'essentiel c'est de les découvrir."

Version en cours : Autocad Map 2013

Lien vers le commentaire
Partager sur d’autres sites

Hello,

 

Merci de ta rapidité Tramber.

 

J'ai toujours un souci je dois mettre un espace en trop :

 

 Commande: -image Entrez une option d'image 
[?/Détacher/Chemin/Recharger/dEcharger/Attacher] : A
Entrez le nom du fichier d'image à attacher. <2000-0604-2584-62>: "N:\BD 
ORTHO\2000-0604-2584-62.tif"
Spécifiez un point d'insertion <0,0>: \
Point ou option nécessaire.

 

A partir de ca :

 

 -image A "N:\BD ORTHO\2000-0604-2584-62.tif" \ 5 0 

 

J'ai essayé aussi

 

 -image A "N:\BD ORTHO\2000-0604-2584-62.tif" \5 0 

 

Mais il ne comprend pas...

 

PS : Au passage, je me suis rendu compte qu'un collègue disposant de Autocad Map pouvait me faire ça du premier coup, comme j'ai les fichiers de géoréférencement (TFW) on peut ouvrir toutes les images ensemble (menu MAP/image/insérer), puisque MAP comprend les fichiers TFW de géoréférencement. Mais, pour l'intérêt général, je vais tenter de réussir quand même par script.

Ribbit.

"Une fois qu'on les a découvertes toutes les vérités sont faciles à comprendre; l'essentiel c'est de les découvrir."

Version en cours : Autocad Map 2013

Lien vers le commentaire
Partager sur d’autres sites

Salut Ribbit,

 

J'ai fait ça dans un bouton sous 2002 et ça fonctionne ;)

^C^CFILEDIA;0;_.-image;_attach;"N:/BD ORTHO/2000-0604-2584-62.tif";\5;0;FILEDIA;1;

 

J'ai changé les "\" par "/" qui est mieux compris pour les arborescences et le \ n'est pas suivi ni d'un espace,ni d'un point-virgule.

 

NB: Si l'on veut employer les "\" dans les noms de chemin, il faut les doubler "\\", du moins en lisp c'est comme ça.

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

Lien vers le commentaire
Partager sur d’autres sites

Merci pour le coup de main je vais essayer de le faire dans mon script (parce que le but est de faire un script avec 50 images par exemple). Je vous tiens au courant.

 

Qu'est-ce que tu appele "pause", tramber ? Le "-" ?

Ribbit.

"Une fois qu'on les a découvertes toutes les vérités sont faciles à comprendre; l'essentiel c'est de les découvrir."

Version en cours : Autocad Map 2013

Lien vers le commentaire
Partager sur d’autres sites

pause en mode macro est le symbole \

 

A ne pas confondre avec le / employé entre guillemet "/" , celui-ci est équivalent à "\\" pour représenter les dossiers (DIRectory).

 

Il est souhaitable (et recommandé pour ma part) d'utiliser "/" au lieu "\\" comme séparateur de dossier. Il faut savoir que l'usage de "\" avec Autocad est un mode d'instruction de caractères spéciaux.

 

Difficile de ne pas se mélanger les pinceaux ;)

 

 

[Edité le 25/11/2004 par bonuscad]

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

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Il me semble que le ";" n'est pas digéré en script...Ca marche effectivement dans les boutons, mais pour un script, il ne comprend pas ("Filedia;0; n'est pas une commande valable). C'est pour ca que j'avais mis des espaces.

 

Par contre, il avait bien compris ça :

 

-image A "N:\BD ORTHO\2000-0604-2584-62.tif" avec les \ dans ce sens (grâce aux guilllemets autour du chemin du fichier.

 

Toujours coincé - du coup - au même endroit...

 

 Commande: -image Entrez une option d'image 
[?/Détacher/Chemin/Recharger/dEcharger/Attacher] : A
Entrez le nom du fichier d'image à attacher.: "N:\BD ORTHO\2000-0604-2584-62.tif"
Spécifiez un point d'insertion <0,0>: \
Point ou option nécessaire.

Spécifiez un point d'insertion <0,0>:

 

Il comprend pas le "\"... fâcheux, non ?

 

J'y retourne.

Ribbit.

"Une fois qu'on les a découvertes toutes les vérités sont faciles à comprendre; l'essentiel c'est de les découvrir."

Version en cours : Autocad Map 2013

Lien vers le commentaire
Partager sur d’autres sites

 -image A "N:\BD ORTHO\2000-0604-2584-62.tif" [color=red]quelque_chose[/color] 5 0

 

Et on pourrait pas envisager de mettre un truc lisp du genre getpoint avant l'insertion d'image ? Ca doit marcher ca...

 

(setq PtInsert (getpoint "\nPoint d'insertion :")) et après on met PtInsert à la place de quelque_chose

 

Pour l'instant il veut pas il me dit que -image n'est pas un point valide mais je ne désespére pas...je ne maîtrise pas trop le lisp dans les scripts.

 

 (setq PtInsert (getpoint "\nPoint d'insertion :")) \
-image A "N:\D30\robin prest\022 - EROSION VILLAGES SOLIDAIRES\villages solidaires\BD ORTHO\2000-0604-2584-62.tif" PtInsert 5 0 

 

PS : Ca me fait penser qu'on doit pouvoir lire via le lisp le fichier de géoréférencement tfw où sont marquées les coordonnées pour les insérer dans le script en temps réel...

 

[Edité le 25/11/2004 par ribbit]

Ribbit.

"Une fois qu'on les a découvertes toutes les vérités sont faciles à comprendre; l'essentiel c'est de les découvrir."

Version en cours : Autocad Map 2013

Lien vers le commentaire
Partager sur d’autres sites

Dans un script (fichier .scr), il n'est pas prévu de faire de pause pour une entée utilisateur.

Un tel fichier pouvant être lancé au démarrage d'Autocad...

 

Cependant avec une version pleine tu peut contourner le problème en utilisant du lisp

Exemple du contenu d'un fichier SCR (à lancer par la commande script)

'_setvar filedia 0

_.-image _attach "N:\BD ORTHO\2000-0604-2584-62.tif" (grread) 5 0

'_setvar filedia 1

 

NB: Pas d'espace en fin de ligne

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

Lien vers le commentaire
Partager sur d’autres sites

Voilà, dis comme ca.

 

Je crois que j'ai déjà fait des pause dans des scripts mais en version pleine.

(d'ailleurs, si tu cherches "pause" dans le fichier d'aide LT, tu t'apercois qu'ils ont effacé la page bien que sa référence soit là).

 

Tu peux assembler ton script sous Excel en terme de points d'insertion, suis le lien de ma signature. Tu n'auras qu'à déplacer tes images a posteriori (Grip + 1 fois Espace).

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Dans un script (fichier .scr), il n'est pas prévu de faire de pause pour une entée utilisateur.

 

Ah ben là ! je pouvais chercher longtemps :exclam:

 

Je n'ai pas le temps ce soir de le tester mais si ça marche (et même si ça marche pas), merci du coup de pouce... je regarde tout ça demain.

 

Bonne nuit,

Ribbit.

 

Ribbit.

"Une fois qu'on les a découvertes toutes les vérités sont faciles à comprendre; l'essentiel c'est de les découvrir."

Version en cours : Autocad Map 2013

Lien vers le commentaire
Partager sur d’autres sites

Hello,

 

Et bien je dois pas bien faire ma manip mais ca ne marche toujours pas, il m'insère tout à 0,0.

 

J'ai vu que grread était censé localiser la position du curseur mais je dois faire un truc de traviole...

 

Vous embêtez pas plus longtemps, je m'y pencherais plus tard, ça m'aidera à comprendre comment fonctionne le LISP+script. Si j'y arrive je posterai le script dans son intégralité.

 

Merci en tout cas,

Ribbit.

 

PS : l'idée des scripts sous excel est très bonne, je l'avais déjà utilisé pour la fusion de DWG en script. Sympa ça !

Ribbit.

"Une fois qu'on les a découvertes toutes les vérités sont faciles à comprendre; l'essentiel c'est de les découvrir."

Version en cours : Autocad Map 2013

Lien vers le commentaire
Partager sur d’autres sites

Au début, je voulais faire un petit script tout bête pour insérer des images (32). Mais pas un gros truc compliqué.

 

En fait, en ce moment où je vous parle, j'ai déjà inséré mes images et continué d'avancer.

 

Là, je fais ça "pour l'art" et pour les gens qui ont ce problème - et il y en a (et peut etre moi un jour si j'ai pas les bons outils). C'est pour ça que je vous dis de pas vous embêter trop longtemps, mais le sujet me tarabiscotte depuis un moment d'essayer d'insérer des images qui ont un fichier de géoréférencement automatiquement dans autocad, mais sans autocad map.

 

J'aimerai bien aussi trouver le moyen d'exporter des images géoréférencées en créant un fichier de géoréférencement du type TFW pour un tif.

 

C'est pas du tout urgent, c'est pour le plaisir...

 

@+,

Ribbit.

Ribbit.

"Une fois qu'on les a découvertes toutes les vérités sont faciles à comprendre; l'essentiel c'est de les découvrir."

Version en cours : Autocad Map 2013

Lien vers le commentaire
Partager sur d’autres sites

Oups! Désolé, une petite erreur.

 

Il faut replacer (grread) par (cadr (grread))

 

Ceci récupère le point cliqué, si tu veux t'accrocher, il faut le définir dans ton script

Exemple pour s'accrocher à l'extrémité du point cliqué:

'_setvar filedia 0

_.-image _attach "N:\BD ORTHO\2000-0604-2584-62.tif" _end (cadr (grread)) 5 0

'_setvar filedia 1

 

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

Lien vers le commentaire
Partager sur d’autres sites

Hello,

 

Voilà, ça marche comme sur une roulette de souris...Merci !

Il faut cliquer près d'une extrémité pour que ça marche bien (on peut toujours utiliser un autre mode d'accrochage en modifiant "_end" en un autre type d'accrochage.

 

Explication pour synthétiser :

> La première ligne sert à pouvoir utiliser le mode d'insertion des images en ligne de commande (et la dernière à le remettre en boite de dialogue)

> insertion de l'image (_.-image) - pourquoi le point d'ailleurs ?

> A pour attacher

> le nom de l'image (la liste est récupérée par la commande DOS : dir *.dwg /on /s /b > toto.scr)

> le type d'accrochage (_end)

> le clic de l'utilisateur (mon quelque_chose du début) : (cadr(grread)) C'est quoi cadr ?

> l'echelle : 5

> la rotation : 0

 

Après, pour construire le fichier SCR c'est de la bidouille sous notepad ou sur Excel.

 

 '_setvar filedia 0
_.-image A "N:\BD ORTHO\2000-0604-2584-62.tif" _end (cadr(grread)) 5 0
_.-image A "N:\BD ORTHO\2000-0604-2585-62.tif" _end (cadr(grread)) 5 0
_.-image A "N:\BD ORTHO\2000-0604-2586-62.tif" _end (cadr(grread)) 5 0
_.-image A "N:\BD ORTHO\2000-0604-2587-62.tif" _end (cadr(grread)) 5 0
'_setvar filedia 1

 

Voilà ! J'espère que ça servira à d'autres, et merci pour le coup de patte de souris !

Ribbit.

"Une fois qu'on les a découvertes toutes les vérités sont faciles à comprendre; l'essentiel c'est de les découvrir."

Version en cours : Autocad Map 2013

Lien vers le commentaire
Partager sur d’autres sites

Salut

un cadr te retourne le deuxième élément d'une liste

ex : (cadr '(45.0 90.0 80.0)) retourne 90.0

 

un car donne le premier, un caddr le troisième, un cadddr le quatrième et un caddddr ? Non, pas de cinquième, ça n'existe pas comme fonction ;)

 

@+

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

Lien vers le commentaire
Partager sur d’autres sites

OK. Merci de cette précision.

 

Un jour, oui, je scripterai, non, plus dur, je lisperai !! ;-)

 

[Edité le 29/11/2004 par ribbit]

Ribbit.

"Une fois qu'on les a découvertes toutes les vérités sont faciles à comprendre; l'essentiel c'est de les découvrir."

Version en cours : Autocad Map 2013

Lien vers le commentaire
Partager sur d’autres sites

Une explication sur l'utilisation du "." devant le nom de la commande.

Rappel: Il est possible de redéfinir une commande par "NONDEF et REDEF (pour la remmettre a son état original)

 

L'emploi du point sert a être sûr que l'on appele bien la commande originale et non une commande redéfinie qui ne ferait pas forcément la même chose et pourait faire avorter un script ou un programme lisp.

 

C'est donc juste une sécurité de format d'appel de commande. Je pense qu'il est mieux (comme le language international) de prendre cette habitude pour la portabilité et être sur qu'aucune personnalisation d'autocad n'interfère avec le script ou le programme.

 

Bruno V.

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

Lien vers le commentaire
Partager sur d’autres sites

:exclam:

 

Waaa. La lumière divine tombe sur le discipline ébaubi. Merci.

 

(Décidemment ce forum est IN-DIS-PEN-SA-BLE).

 

Ps :c'est pas ironique ;)

Ribbit.

"Une fois qu'on les a découvertes toutes les vérités sont faciles à comprendre; l'essentiel c'est de les découvrir."

Version en cours : Autocad Map 2013

Lien vers le commentaire
Partager sur d’autres sites

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é