Aller au contenu

Copier un objet le long d\'une polyligne


Messages recommandés

Posté(e)

Bonjour,

:casstet:

Quelqu'un pourrait'il me rappeler comment fait-on pour copier un objet (point, ligne ou bloc) à intervalle régulier le long d'une polyligne ?

 

Merci

 

Posté(e)

De tête, je dirais :

 

- si tu veux un nombre de bloc précis le long de ta polyligne : Dessin > Point > Diviser

- si tu veux un espacement précis entre 2 blocs : Dessin > Point > Mesurer

 

EDIT : diviser avec des lignes directement, je ne pense pas que ce soit faisable...

 

[Edité le 30/3/2006 par LUDWIG]

Autocad 2021 - Revit 2022 - Windows 10

Posté(e)

bah si :

avec des lignes c'est possible, mais en se créant un bloc qui contient une ligne (ou n'importe quoi), avec comme point d'insertion ce que tu veux une extrémité par exemple. une fois les blocs "lignes" répartis le long de ta polyligne avec "diviser" ou "mesurer", tu les décomposent tu obtiens tes lignes.

Formateur Autocad - Revit - Sketchup - Photoshop

Posté(e)

La solution de Pieroka, mais automatisé

 

(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 "")
		)
		(command "_oops")
		(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 "_.-purge" "_block" "cpalg$" "_no")
		(command "_.undo" "_end")
	)
)
(princ)
)

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

  • 16 ans après...
Posté(e)

Juste pour dire merci pour la routine. 

La codification avec Covadis qui créée des lignes avec symbole pour les clôtures par exemple est assez embêtante. Pas de copier coller possible entre polyligne. Avec cette routine, c'est nickel !

Autodesk - 24.0.30.17 - Autodesk AutoCAD Map 3D 2021.0.1

Géomedia - Version 17.1h - Covadis

Microsoft - 21H2 -  Windows 10 64 bits

Leica - Version - LEICA TS13 + CS20

Posté(e)

Voir que 16 ans après ça sert encore !... Heureux de l'apprendre. 😊

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

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é