Aller au contenu

Messages recommandés

Posté(e)

Existe t'il une commande permettant la copie multiple d'objet et l'alignement selon 2 point

j'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

Posté(e)

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

Posté(e)

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

Posté(e)

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

Posté(e)

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 fois

Chaque 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

Posté(e)

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

Posté(e)

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

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é