Bred Posté(e) le 12 mai 2006 Posté(e) le 12 mai 2006 Bonjour, Existe t'il en lisp une commande qui permet d'inserer des blocs existants autrement que par la commande autocad (command "-inserer" ...... ??? merci d'avance Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
bonuscad Posté(e) le 12 mai 2006 Posté(e) le 12 mai 2006 Tu peux créer tes insertions via (entmake (liste des composants dxf)) (liste des composants dxf) est similaire à liste que tu pourrais obtenir en faisant un (entget (car (entsel))) sur un bloc inseré dans ton dessin. Si ton bloc comporte des attributs tu devras aussi les créer de la même façon. Pour t'aider dans ce cas fais une boucle avec (entget (entnext)) jusqu'a rencontrer une entité de type "ENDBLOCK". Les entités complexes commes les blocs ou les polylignes (anciennes) sont assez fastidieuses à créer avec (entmake). L'équivalent de la commande INSERER vas te prendre enormément de lignes de code. L'avantage par contre est que; (si la liste fournie est valide) ton insertion de bloc sera effectué dans toutes les conditions. Tu n'as pas besoin de te préoccuper des variables, de l'état des calques (vérrouillé, gelé...) etc... Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Bred Posté(e) le 12 mai 2006 Auteur Posté(e) le 12 mai 2006 merci...je le pressentais qu'avec enmake c'était possible... mais vu que pour l'instant je n'arrive qu'à faire un rond rouge avec entmake (via l'aide vlisp), je me suis mis sur ma reserve concernant son utilisation...Je m'étais demandé si entre autre de entmake, il n'y avait pas des fonction "vl-..." qui proposais un raccourci efficace...merci encore Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Patrick_35 Posté(e) le 12 mai 2006 Posté(e) le 12 mai 2006 SalutSi, si, ça existe en vl (vla-InsertBlock (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))) (vlax-3d-point '(0.0 0.0 0.0)) "Mon_Bloc")) 1 1 1 0)) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Bred Posté(e) le 14 mai 2006 Auteur Posté(e) le 14 mai 2006 Merci Patrick_35, mais je n'arrive pas à le faire fonctionner...Cela doit être un souci de parenthèse, mais je n'arrive pas à le résoudre...(pour info j'ai bien changé "Mon_Bloc" par un nom de bloc perso)... De plus, pourrais-tu m'expliquer rapidement la logique de ces différentes commandes (l'aide vl est un peu.... laborieuse sur ce coup là...) Merci encore Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
(gile) Posté(e) le 14 mai 2006 Posté(e) le 14 mai 2006 Salut, il y a effectivement un problème de paranthèses dans le code donné par Patrick_35 (vla-InsertBlock (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))) (vlax-3d-point '(0.0 0.0 0.0)) "Mon_Bloc" 1 1 1 0) En français : (vla-InsertBlock ... Insérer un bloc... (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))) dans l'espace objet, du document actif, de l'application AutoCAD (vlax-3d-point '(0.0 0.0 0.0)) transforme le point d'insertion sous forme de liste en variant "Mon_Bloc" 1 1 1 0) puis le nom du bloc, les échelles en X, Y et Z, et la rotation. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Bred Posté(e) le 14 mai 2006 Auteur Posté(e) le 14 mai 2006 Merci à tous, je m'y pencherais après être un peu sorti voir le soleil... Bon dimanche. Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Patrick_35 Posté(e) le 14 mai 2006 Posté(e) le 14 mai 2006 Oupps...Desolé pour les parenthèses en trop. Mais heureusement, (gile) à corrigé ;) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Bred Posté(e) le 15 mai 2006 Auteur Posté(e) le 15 mai 2006 J'étais en train d'écrire que ça ne fonctionnait pas, quand j'ai eu une petite lumière et que j'ai testé un truc : j'ai d'abord inserer le bloc "manuellemnt" dans le dessin, puis j'ai lancé le lisp, et là sa fonctionne... Donc PROBLEME .... Je n'ai pas forcémént le blocs déjà insérer dans le plan, (mais j'ai bien les fichiers supports configurer pour aller dans ma bibliothèque), je voudrais donc insérer un bloc qui ne se trouve pas forcément déjà inserer... Merci. Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Patrick_35 Posté(e) le 15 mai 2006 Posté(e) le 15 mai 2006 Salut (if (tblsearch "block" "Monbloc") (vla-....) (vla-insert.... "c:/../../../Monbloc.dwg"); s'il n'est pas dans les chemins de recherche @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Bred Posté(e) le 15 mai 2006 Auteur Posté(e) le 15 mai 2006 Je suis désolé mais je ne comprend pas et ça ne fonctionne toujours pas...même si je rentre le chemin total du fichier de recherche (avec les \\... ou avec /...) Confirmez moi que sa fonctionne et je continuerais à chercher où je fais une erreur... merci encore... Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Patrick_35 Posté(e) le 15 mai 2006 Posté(e) le 15 mai 2006 (vla-InsertBlock (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))) (vlax-3d-point '(0.0 0.0 0.0)) "c:/../../../MonBloc.dwg" 1 1 1 0)Ca fonctionne @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Bred Posté(e) le 15 mai 2006 Auteur Posté(e) le 15 mai 2006 Ok merci ça marche.... Juste pour info, je suis quand même obligé de changé les ../.. du chemin de fichier par des ...\\... Merci encore. Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant