Aller au contenu

Copier/Décaler/Déplacer avec le même rayoennement.


Messages recommandés

Posté(e)

Salut à tous.

 

lorsqu'on décale un cercle ou une courbe, le second cercle ou la seconde courbe est parallèle au premier cercle ou la seconde courbe.

 

J'ai une série de blocs qui suivent une courbe le long d'une façade d'un immeuble. J'en ai fait un bloc pour l'insérer à l'étage au-dessus. Toutefois, la façade du second étage est en retrait. De ce fait mais blocs sont trop éloignés de la façade. je souhaiterais donc déplacer mes blocs vers la façade, tous d'un seul coup en conservant le même rayon ou centre.

 

Y a-t-il un moyen de décaler, déplacer ou copier plusieurs blocs suivant une courbe de manière à ce que ceux-ci conservent le même rayonnement?

 

Je ne sais pas si je suis assez clair dans ma demande :casstet:

 

[Edité le 28/7/2010 par Steven]

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Posté(e)

Hello Steven,

 

Avec le lisp chariot de Gilles ça ne le fait pas ? En prenant la courbe de base et en la décalant, si le même nombre de blocs est à répartir sur la longueur... Mais bon, ça paraît trop facile, je pense ne pas avoir compris le fond du problème... :casstet:

Seuls nous allons vite, ensemble nous allons plus loin...

CPU Intel 3,5Go / Nvidia RTX-3090

AutoCad (Architecture) 2022 - Lumion PRO

BMW R-1200-RT, c'est moche, oui... je sais...

 

www.neda.ch

Posté(e)

et avec la commande MOCORO ???

Intel i7-4770 - 16Go Ram - NVIDIA Quadro K2000 - Double ecran en 1680x1050

Windows 7 64Bits. non administrateur !!

Autocad Map 3D 2019 + Covadis V17.0f

Posté(e)

Variante,

 

Sélectionner tous les blocs concernés, appliquer un facteur d'échelle depuis le centre de l'arc (à calculer selon différence des seux rayons). Ensuite, dans les propriétés, avec tous ces blocs sélectionnés, remettre leur facteur d'échelle à 1 ?

Seuls nous allons vite, ensemble nous allons plus loin...

CPU Intel 3,5Go / Nvidia RTX-3090

AutoCad (Architecture) 2022 - Lumion PRO

BMW R-1200-RT, c'est moche, oui... je sais...

 

www.neda.ch

Posté(e)

@ Turtle

 

Macoro est un lisp il me semble mais je n'arrive pas à remettre la main dessus sur le forum.

 

@ Dinosor

 

- Je ne trouve pas le lisp "Chariot" sur la page des lisps de Gile

 

- Bien jouer le coup de l'échelle. Pas mal du tout :)

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Posté(e)

A cettee adresse:

http://www.cadxp.com/XForum+print-fid-73-tid-27057.html

Suis pas sûr que ce soit le dernier, sinon:

(defun c:chariot (/	  *error* curve	  endParam	  bloc
	  pt1	  pt2	  seg	  len	  angBase dist
	  space	  cen	  circ	  lst	  ext	  copy
	 )
 (vl-load-com)
 (defun *error* (msg)
   (or	(= msg "Fonction annulée")
(princ (strcat "Erreur: " msg))
   )
   (vla-EndUndoMark *acdoc*)
   (princ)
 )
 (or *acdoc*
     (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object)))
 )
 (if
   (and
     (setq curve (car (entsel "\nSélectionnez la courbe: ")))
     (setq endParam (vlax-curve-getEndParam curve))
     (setq bloc (car (entsel "\nSélectionnez l'objet: ")))
     (setq pt1 (getpoint "\nSpécifiez le premier point sur le bloc: "))
     (setq
pt2 (getpoint pt1 "\nSpécifiez le second point sur le bloc: ")
     )
     (setq seg (getdist "\nSpécifiez la longueur du segment: "))
     (setq curve   (vlax-ename->vla-object curve)
    bloc    (vlax-ename->vla-object bloc)
    len	    (vlax-curve-getDistAtParam curve endParam)
    angBase (angle pt1 pt2)
    rad	    (distance pt1 pt2)
    dist    0.0
    space   (vla-get-ModelSpace *acdoc*)
     )
   )
    (progn
      (vla-StartUndoMark *acdoc*)
      (while (	 (setq cen   (vlax-curve-getPointAtDist curve dist)
       param (vlax-curve-getParamAtPoint curve cen)
       circ  (vla-AddCircle space (vlax-3d-Point cen) rad)
       lst   (3d-coord->pt-lst
	       (vlax-invoke circ 'IntersectWith curve acExtendNone)
	     )
       ext   (car
	       (vl-remove-if
		 '(lambda (x)
		    (			  )
		 (vl-sort lst
			  '(lambda (x1 x2)
			     (					(vlax-curve-getparamAtPoint curve x2)
			     )
			   )
		 )
	       )
	     )
       dist  (+ dist seg)
 )
 (vla-Delete circ)
 (setq copy (vla-copy bloc))
 (vla-Move copy (vlax-3d-point pt1) (vlax-3d-point cen))
 (vla-Rotate
   copy
   (vlax-3d-point cen)
   (+ angBase (angle cen ext))
 )
      )
      (vla-EndUndoMark *acdoc*)
    )
 )
 (princ)
)

;;; 3d-coord->pt-lst Convertit une liste de coordonnées 3D en liste de points
;;; (3d-coord->pt-lst '(1.0 2.0 3.0 4.0 5.0 6.0)) -> ((1.0 2.0 3.0) (4.0 5.0 6.0))

(defun 3d-coord->pt-lst	(lst)
 (if lst
   (cons (list (car lst) (cadr lst) (caddr lst))
  (3d-coord->pt-lst (cdddr lst))
   )
 )
)

 

Voilou ! ;)

Et merci encore à Giles !

Seuls nous allons vite, ensemble nous allons plus loin...

CPU Intel 3,5Go / Nvidia RTX-3090

AutoCad (Architecture) 2022 - Lumion PRO

BMW R-1200-RT, c'est moche, oui... je sais...

 

www.neda.ch

Posté(e)

Super pratique ce lisp :D

 

Toutefois, il ene me sert pas dans mon cas pour le moment.

En effet, je ne peux pas choisir plusieurs objets.

 

De plus, lorsque je choisis un bloc, le bloc est décalé (copier) à la distance voulu, ça c'est cool, mais il divise ensuite la courbe avec le bloc sélectionné en faisant faire une rotation du bloc sur lui-même. J'avais vu une demande spécifique où le lisp "Chariot" avait été évoqué. je garde ce lisp sous le coude car je vois déjà où il pourrait être utile mais dans le cas présent, ce n'est pas la bonne arme pour lutter avec ma façade.

 

Merci quand même ;)

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Posté(e)

Je suis peut être à coté, mais en regardant ce sujet

 

Pour ce que j'avais proposé, il suffirait de changer (ssget '((0 . "POINT"))) par (ssget '((0 . "INSERT"))) pour que cela fonctionne avec des blocs... à voir!

 

 

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

Posté(e)

Effectivement "mocoro" est dans les express tools. Mais vu que je l'utilise que très rarement, voir pas du tout, je vais la chercher par le menu déroulant et je ne la lance donc pas au clavier.

 

Oui Lilian, en effet, on peut enchaîner plusieurs manip' à la suite ;[Move/Copy/Rotate/Scale/Base/Undo]. J'ai déjà voulu m'en servir quand je l'ai découvert mais ayant tellement l'habitude de mes raccourcis, qu'entre le temps de m'habituer aux réflexes d'enchaîner les options de "macoro" ou de continuer à lancer les commandes au fur et à mesure, j'ai vite fais le choix. Il y a certaines habitudes qui ne se perdront pas. Chassez le naturel, il revient au galop.

 

Et vu que j'avais taper m Acoro et non m Ocoro, AutoCAD ne reconnaissait pas la commande. Mes neurones pensent vraiment à partir en vacances. je n'ai donc pas chercher très loin.

 

Celà dit, merci à tous ;)

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Posté(e)

Arf Steven,

si en plus tu as du mal a taper au :yltype:

 

Il ne te reste plus qu'a partir en vacances ....

 

 

"Sinon quand on cherche une commande et que l'on ne se rappel plus de l'orthographe exact, sur la ligne de commande on tape les 2 premieres lettres et ensuite la touche TAB et Autocad nous liste toute les commandes (parcontre ne fonctionne pas avec les commandes Express Tools)"

 

[Edité le 30/7/2010 par Turtle]

Intel i7-4770 - 16Go Ram - NVIDIA Quadro K2000 - Double ecran en 1680x1050

Windows 7 64Bits. non administrateur !!

Autocad Map 3D 2019 + Covadis V17.0f

Posté(e)
Arf Steven,

si en plus tu as du mal a taper au :yltype:

 

Il ne te reste plus qu'a partir en vacances ....

 

:P

 

 

"Sinon quand on cherche une commande et que l'on ne se rappel plus de l'orthographe exact, sur la ligne de commande on tape les 2 premieres lettres et ensuite la touche TAB et Autocad nous liste toute les commandes (parcontre ne fonctionne pas avec les commandes Express Tools)"

 

[Edité le 30/7/2010 par Turtle]

 

J'en prends note ;)

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

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é