chrchat Posté(e) le 20 février 2004 Posté(e) le 20 février 2004 Existe t'il une commande permettant la copie multiple d'objet et l'alignement selon 2 pointj'ai un objet que je veux copier de facon multiple, (ca c'est OK ) la copie s'effectue entre 2 points qui ne sont pas sur le même scu ni a la même distance d'ou le nécissité d'une mise a l'échelle. en fait ce que je fait manuellement c'est que je copie un objet n'importe ou dans le dessin ensuite j'utilise la commande aligner 1er point, 2ème point, mise a l'échelle oui ou non Voila mon probleme CCAD la DAO au service de l'Energie - http://c.cad.free.fr
bonuscad Posté(e) le 23 février 2004 Posté(e) le 23 février 2004 Voici une routine permettant de faire des copies alignés comme pourrait le faire mesurer ou diviser.Si tu veut une échelle différente d'alignement, je te conseille de tracer ton objet d'alignement non réduit. D'appliquer la commande a cet objet,et de réduire l'ensemble du résultat a ta nouvelle longueur d'alignement.Je n'ai peut être pas bien saisi ton problème et la solution ne convient donc pas? :( Bruno V. (defun c:copyalign ( / js pt ent cod dlt ename) (setvar "cmdecho" 0) (prompt "\nChoix des objets devant être répétés ") (setq js (ssget)) (cond (js (setvar "blipmode" 0) (setvar "osmode" (+ 16384 (rem (getvar "osmode") 16384))) (initget 9) (setq pt (getpoint "\nPoint d'insertion des objets sélectionnés: ")) (if (not (tblsearch "BLOCK" "cpalg$")) (command "_.-block" "cpalg$" pt js "") (command "_.-block" "cpalg$" "_yes" pt js "") ) (prompt "\nChoix de l'objet reprèsentant le parcours de copie") (while (null (setq ent (car (entsel))))) (initget "Mesurer Diviser _Measure Divide") (setq cod (getkword "\n[Mesurer/Diviser] : ")) (if (not cod) (setq cod "Measure")) (cond ((eq cod "Measure") (initget 7) (setq dlt (getdist "\nInterdistance de répétition: ")) (command "_.measure" ent "_block" "cpalg$" "_yes" dlt) ) ((eq cod "Divide") (initget 7) (setq dlt (getint "\Nombre de division: ")) (command "_.divide" ent "_block" "cpalg$" "_yes" dlt) ) (T nil) ) (command "_.undo" "_begin") (setq js (ssget "X" '((0 . "INSERT") (2 . "cpalg$")))) (while (setq ename (ssname js 0)) (command "_explode" ename) (setq js (ssdel ename js)) ) (command "_.undo" "_end") ) ) (princ)) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
chrchat Posté(e) le 23 février 2004 Auteur Posté(e) le 23 février 2004 merci pour ton aide mais ce n'est pas ce que je veux faire. comme je n'ais pas beaucoup de temps, je détaillerais la commande demain merci encore :-) CCAD la DAO au service de l'Energie - http://c.cad.free.fr
chrchat Posté(e) le 26 février 2004 Auteur Posté(e) le 26 février 2004 Voila le debut de ma commande ( defun c:cpa () (setq obj (ssget)) (setq a (getpoint "\npremier point d'origine :" )) (setq b (getpoint "\npremier point d'arrivée :" )) (setq c (getpoint "\nsecond point d'origine :" )) (setq d (getpoint "\nsecond point d'arrivée :" )) (command "align" obj "" a b c d "" "o" "") ) Ce que je voudrai c'est conservé l'objet initial en faire une copie en fait, et l'aligner de facon multiple vers différent point d'arrivé (toujours meme origine) Obj constant a et b constant, c et d variable align multiple Voila je crois que c'est tout :) CCAD la DAO au service de l'Energie - http://c.cad.free.fr
chrchat Posté(e) le 27 février 2004 Auteur Posté(e) le 27 février 2004 oups je me suis troper, les origines sont constantes donc a et c pas les arrivées b et d CCAD la DAO au service de l'Energie - http://c.cad.free.fr
chrchat Posté(e) le 27 février 2004 Auteur Posté(e) le 27 février 2004 J'avance, mais comment faire pour repéter align ( defun c:cpa () (setq obj (ssget)) (setq a (getpoint "\npremier point d'origine :" )) (setq b (getpoint "\npremier point d'arrivée :" )) (setq c (getpoint "\nsecond point d'origine :" )) (setq d (getpoint "\nsecond point d'arrivée :" )) (command "copier" obj "" a a) (command "align" obj "" a b c d "" "o" "") ) CCAD la DAO au service de l'Energie - http://c.cad.free.fr
chrchat Posté(e) le 1 mars 2004 Auteur Posté(e) le 1 mars 2004 :( Personnes ne sauraient m'aider ? CCAD la DAO au service de l'Energie - http://c.cad.free.fr
Labletech Posté(e) le 1 mars 2004 Posté(e) le 1 mars 2004 Ton pb est difficile à comprendre j'essaie de résumer: Tu selectionne x objets avec ton ssget (c'est donc un seul jeu de sélections) Tu veux ensuite copier ce jeu de sélection n foisChaque copie de ce jeu de sélection, sera ensuite positionnée ailleurs et alignée selon les critères b et d qui devront certainement être saisis dans une boucle (n fois là encore) Est-ce bien cela que tu veux faire ?? Formateur ATC Autocad - Mechanical - Inventor - Electrical
chrchat Posté(e) le 2 mars 2004 Auteur Posté(e) le 2 mars 2004 desolé pour la comprehension, ce me parraissais plutot simple :) mais oui c'est ca je peux eventuellement poster un mail avec la representation de ce que je veux effectuer CCAD la DAO au service de l'Energie - http://c.cad.free.fr
Labletech Posté(e) le 2 mars 2004 Posté(e) le 2 mars 2004 mon e_mail est jflabrousse@libertysurf.fr Formateur ATC Autocad - Mechanical - Inventor - Electrical
chrchat Posté(e) le 2 mars 2004 Auteur Posté(e) le 2 mars 2004 je te l'ai envoyé. Merci d'avance CCAD la DAO au service de l'Energie - http://c.cad.free.fr
Labletech Posté(e) le 2 mars 2004 Posté(e) le 2 mars 2004 Voilà 2 petites fonctions qui vont te permettre de réaliser ce que tu as demandé:- A savoir: Soit un ou plusieurs objet sélectionné comme Saisir les 2 points de base de la selection Faire une boucle:- pour copier en - pour saisir les 2 points finaux des endroits cibles- pour aligner sur la cible. tu pourras télécharger le fichier lisp à l'adresse suivante: http://www.infographie-formation.fr/eformation.htm puis rubrique 'download' et enfin le fichier align_multiple.lsp Explication des principes généraux: (defun c:align_multiple ()....(prompt "\nSaisir Objets à traiter") ; invite pour selectionner A (setq js_base (ssget))....(setq pobase1 (getpoint "\nSaisir 1er point de base"))....(setq pobase2 (getpoint "\nSaisir 2ème point de base ")); saisie des points de base 1 et 2 ......(if (not (and (null js_base) (null pobase1) (null pobase2)) ) (progn ;des fois que l'on ait pas saisi les bonnes valeurs.........(while (and (setq pofin1 (getpoint pobase1 "\nSaisir 1er point cible")) ........................(setq pofin2 (getpoint pobase2 "\nSaisir 2ème point cible"))) ; tant que l'on saisit correctement les cibles 1 et 2...............(setq js_cible (sscopy js_base)) ; fonction magique que l'on développera plus tard...............(command "_align" js_cible "" pobase1 pofin1 pobase2 pofin2 "" "_y "); rien à dire.........) ; fin de la boucle......)) ; fin du test) Formateur ATC Autocad - Mechanical - Inventor - Electrical
chrchat Posté(e) le 3 mars 2004 Auteur Posté(e) le 3 mars 2004 Mille merci a Labletech ca marche et c'est super que de plus Vive labletech encore merci CCAD la DAO au service de l'Energie - http://c.cad.free.fr
chrchat Posté(e) le 4 mars 2004 Auteur Posté(e) le 4 mars 2004 Le corps principale de la commande c'est OK Par contre j'aurais besoin de tes lumière pour sscopy CCAD la DAO au service de l'Energie - http://c.cad.free.fr
Labletech Posté(e) le 5 mars 2004 Posté(e) le 5 mars 2004 pas trop le temps de m'en occuper dans l'immédiat, j'expliquerais cela la semaine prochaine ..a plus Formateur ATC Autocad - Mechanical - Inventor - Electrical
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