barbichette Posté(e) le 1 mars 2006 Posté(e) le 1 mars 2006 Bonjour,j'ai une forme quelconque que je souhaiterait répéter un certain nombre de fois. Y'a t'il moyen de faire simplement une copie multiple en entrant le nombre de copie que l'on veut(sachant que le vecteur de copie ne change pas)du style, copier la meme forme, 25 fois vers la droite, suivant l'axe X. Est-ce possible ? Merci ***********************Rien ne sert de courrir, il faut partir à point.
grand_sapin Posté(e) le 1 mars 2006 Posté(e) le 1 mars 2006 pareil, en utilisant la commande réseau mais pas polaire cette fois, rectangulaire
rebcao Posté(e) le 1 mars 2006 Posté(e) le 1 mars 2006 Peux-tu publier un dessin exemple ou une image pour expliquer un peu plus ? merci Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
jifi Posté(e) le 2 mars 2006 Posté(e) le 2 mars 2006 Si la valeur entre les copies est toujours la même, tu peux effectivement utiliser la commande Réseau (Rectangulaire). A+ Jean-Philippe - Formateur / Dessinateur sur AutoCAD et MEP http://www.git-cad.ch
brunomu Posté(e) le 19 juillet 2006 Posté(e) le 19 juillet 2006 Je trouve l'ergonomie de la commande réseau hyper lourde pour une petite copie multiple de rien du tout. Par exemple, pour faire un escalier en copiant la 1ère marche, il faut changer de SCU, puis définir son réseau, le valider, revenir au SCU précédent. Je n'ai toujours pas compris la marche à suivre pour la commande COPYM des Express Tools. Alors j'ai une vieille nostalgie pour ARC+, où la commande copier demandait: objet à copier, déplacement, nombre d'exemplaires. Et hop ! Y a-t-il un moyen d'arriver à ça dans AutoCad ?
(gile) Posté(e) le 19 juillet 2006 Posté(e) le 19 juillet 2006 Y a-t-il un moyen d'arriver à ça dans AutoCad ? En LISP, c'est vraiment un exercice facile ! (defun c:mcopy (/ mcopy_err v1 v2 ss pt1 pt2 nb) (defun mcopy_err (msg) (if (= msg "Fonction annulée") (princ) (princ (strcat "\nErreur: " msg)) ) (setvar "cmdecho" v1) (setvar "osmode" v2) (setq *error* m:err m:err nil ) (princ) ) (setq m:err *error* *error* erreur v1 (getvar "cmdecho") v2 (getvar "osmode") ) (setq ss (ssget)) (initget 1) (setq pt1 (getpoint "\nSpécifiez le décalage, premier point: ")) (initget 1) (setq pt2 (getpoint pt1 "\nDeuxième point: ")) (initget 1) (setq nb (getint "\nNombre d'éléments: ")) (setvar "cmdecho" 0) (setvar "osmode" 0) (repeat (1- nb) (command "_copy" ss "" '(0 0) '(0 0)) (command "_move" ss "" pt1 pt2) ) (setvar "cmdecho" v1) (setvar "osmode" v2) (setq *error* m:err m:err nil ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
brunomu Posté(e) le 19 juillet 2006 Posté(e) le 19 juillet 2006 2è dan d'office ! Comment on se forme au LISP ?
Patrick_35 Posté(e) le 20 juillet 2006 Posté(e) le 20 juillet 2006 SalutUn petit défi pour (gile) ;)La même chose pour la copie en vlisp (pas pour la sélection, on ne va quand même pas pousser le bouchon trop loin), et si tu peux éviter de rechercher sur ce forum car j'ai déjà donné la réponse @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
(gile) Posté(e) le 20 juillet 2006 Posté(e) le 20 juillet 2006 Voilà, avec la sélection et les getpoint, getint en vlisp (j'ai pas triché ;) ) (defun c:mcopy (/ AcDoc Util Space mcopySelSet pt1 pt2 nb) (vl-load-com) (defun mcopy_err (msg) (if (= msg "Fonction annulée") (princ) (princ (strcat "\nErreur: " msg)) ) (if mcopySelSet (vla-delete mcopySelSet) ) (vla-endUndoMark AcDoc) (setq *error* m:err m:err nil ) (princ) ) (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)) Util (vla-get-Utility AcDoc) Space (if (= (getvar "CVPORT") 1) (vla-get-PaperSpace AcDoc) (vla-get-ModelSpace AcDoc) ) ) (vla-StartUndoMark AcDoc) (setq mcopySelSet (vla-add (vla-get-SelectionSets Acdoc) "mcopySelSet" ) ) (vla-SelectOnScreen mcopySelSet) (initget 1) (setq pt1 (vla-getPoint Util nil "\nSpécifiez le décalage, premier point: " ) ) (initget 1) (setq pt2 (vla-getPoint Util pt1 "\nDeuxième point: ")) (initget 1) (setq nb (vla-getInteger Util "\nNombre d'éléments: ")) (repeat (1- nb) (vlax-for obj mcopySelSet (vla-Copy obj) (vla-move obj pt1 pt2) ) ) (vla-delete mcopySelSet) (vla-endUndoMark AcDoc) (setq *error* m:err m:err nil ) (princ) ) EDIT. : Il manquait (vla-endUndoMark AcDoc) à la fin de la routine. [Edité le 20/7/2006 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Bred Posté(e) le 20 juillet 2006 Posté(e) le 20 juillet 2006 Salut,en macro bouton, en passant par le réseau rectangulaire : ^C^C-reseau;\;R;1;\\ Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
bonuscad Posté(e) le 20 juillet 2006 Posté(e) le 20 juillet 2006 Je trouve l'ergonomie de la commande réseau hyper lourde pour une petite copie multiple de rien du tout. BrunoMu, Je voudrais te faire part d'une option de la commande réseau (donc aucune trace n'apparait dans l'aide) mais qui pourrait te simplifié la vie. Imaginons par exemple ta marche (de forme triangulaire pour un colimaçon), mesure d'abord l'angle d'ouverture de ta marche.Puis avec "_ARRAY" choisi ta marche et valide.Au message "Entrez le type de réseau [Rectangulaire/Polaire] :" tape "C" ou "_C" pour Copie (étrangement l'option n'a qu'une seule lettre?!?! et ne figure nulle part.) :exclam: Donne le centre de ton réseau.Au message "Angle entre les copies (+=trigo, -=horaire):" donne l'angle formé par ta marche que tu as mesuré précédemment."Nombre de copies ou -(angle en degrés à décrire):" puis ton nombre de copies.Et répondre "Oui" "_Yes" pour la rotation des objets. Volilà tes marches mis en place circulairement. :) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Patrick_35 Posté(e) le 20 juillet 2006 Posté(e) le 20 juillet 2006 pour (gile)Ah oui, bien, j'avais plus pensé à la méthode vla-copyobjects qu'un vla-copy, mais ça revient au même @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
(gile) Posté(e) le 20 juillet 2006 Posté(e) le 20 juillet 2006 Pour Patrick_35, J'avoue ne pas bien comprendre l'utilisation de CopyObject, il me semble que c'est plutôt pour copier des objets d'un document vers un autre, non ? Pour Bred, Il faut que je sois un peu "frapadingue" pour faire des jeux de sélection en VisualLISP là une simple macro (bravo Bred) fait presque le même boulot !Je dis presque, parceque la LISP permet, avec le choix des deux points de donner une direction autre que celle de l'axe des X. Pour Bonuscad, Pour les réseaux polaires, on peut utiliser Res_hel avec un un Décalage en hauteur égal à 0. Suite à une suggestion de Tramber, la nouvelle version permet de spécifier l'angle (décrit ou entre les éléments) avec l'option référence (comme "Rotation"). Mais, je crois qu'on s'éloigne du sujet ... [Edité le 20/7/2006 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Patrick_35 Posté(e) le 20 juillet 2006 Posté(e) le 20 juillet 2006 Ou en une commande, la copie d'une sélection @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
bonuscad Posté(e) le 20 juillet 2006 Posté(e) le 20 juillet 2006 Pour en revenir à la question originale de Barbichette, il y avait eu un souhait similaire ICI Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
(gile) Posté(e) le 20 juillet 2006 Posté(e) le 20 juillet 2006 Par curiosité, j'ai voulu comparé la différence de temps d'exécution entre la version AutoLISP et la version VisualLISP. J'ai fait le test sur AutoCAD 2007 avec un solide 3D à copier 20 fois suivant un décalage en 3D : http://img69.imageshack.us/img69/8774/mcopyfj1.png Les valeurs données (en secondes) sont les valeurs extrèmes sur plusieurs tests. En filaire 2D : - AutoLISP : 0.2340/0.2350- VisualLISP : 0.0460/0.0470 En changeant d'ombrage, les résultats avec VisualLISP restent les mêmes, par contre avec AutoLISP ... En Style visuel masqué 3D : - AutoLISP : 2.8910/2.9060- VisualLISP : 0.0460/0.0470 En Style visuel réaliste : - AutoLISP : 2.6870/2.7030- VisualLISP : 0.0460/0.0470 En style visuel conceptuel - AutoLISP : 3.1100/3.1250- VisualLISP : 0.0460/0.0470 Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Patrick_35 Posté(e) le 20 juillet 2006 Posté(e) le 20 juillet 2006 En clair, quand à chaque fois je regarde un comparatif entre Autolisp et Visual Lisp, Le visual lisp est en moyenne cinq fois plus rapideDonc, il ne reste plus qu'a s'y mettre a fond :) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
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