Aller au contenu

un lisp pour une copie spéciale


Messages recommandés

Posté(e)

J'ai besoin d'un lisp qui copie un objet un nombre précis de copie de façon a ce que ces copie seront positionné en ligne horizontale et ce touche ( comme si ces objets étaient posé dans une table et ce touche entre eux )

Sans utilise la commande réseau d'Auto CAD je veux une commande plus intelligente que la commande réseau) je veux que la commande lisp détecte toute les information que la commande réseaux demandes pour avoir finalement des objet qui ce touche (la hauteur max et la largeur max de l'objet) et en plus il faut que les objets soient copier dans une zone que l'utilisateurs précise (précisé la hauteur et la largeur de la zone de copie sans précisé le nombre des objet copier)

Merci

 

 

[Edité le 24/7/2006 par hardyorock]

Posté(e)

Salut,

 

Tu veux beaucoup de choses ...

 

Il y a un sujet récent qui traite de copies multples, tu y trouveras des liens et un LISP (sous deux formes ici et ) Ces LISP ne sont pas aussi "intelligents" que tu le désirerais, mais si tu ne veux pas faire deux clics pour spécifier le décalage, tu peux les adapter à tes besoins.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Avec ce POST

 

Il suffit de l'adapter un peu pour faire un truc de ce genre.

 

Vite fait, pour débrouissailler, en reprenant ce code, (ce que tu aurais pu essayer de faire, il y a déjà beaucoup de solution sur CadXP, il suffit d'adapter ou d'approfondir)

 

(defun des_vec (lst col / lst_sg)
(setq lst_sg (list (cadr lst) (car lst)))
(setq lst (cdr lst))
(while lst
	(if (cadr lst)
		(setq lst_sg (cons (cadr lst) (cons (car lst) lst_sg)))
		(setq lst_sg (cons (last lst_sg) (cons (car lst) lst_sg)))
	)
	(setq lst (cdr lst))
)
(setq lst_sg (cons col lst_sg))
(grvecs lst_sg)
)
(defun c:auto_array ( / ent obj ll ur pt_ins dx dy pt_tmp n key pt_key e_last)
(while (null (setq ent (entsel "\nChoix de l'objet à copier: "))))
(setq Obj (vlax-ename->vla-object (car ent)))
(vla-GetBoundingBox Obj 'll 'ur)
(setq ll (safearray-value ll))
(setq ur (safearray-value ur))
(setq
	dx (- (car ur) (car ll))
	dy (- (cadr ur) (cadr ll))
	pt_ins ll
	pt_tmp pt_ins
)
(initget 7)
(setq n (getint "\nNombre de copies à mettre en place?: "))
(command "_.zoom" "_window" "_none" pt_ins "_none" (list (+ (car pt_ins) (* dx n)) (+ (cadr pt_ins) (* dy n))))
(while (and (setq key (grread T 4 0)) (/= (car key) 3))
	(cond
		((eq (car key) 5)
			(setq pt_key (cadr key))
			(redraw)
			(repeat n
				(des_vec
					(list
						(list (car pt_ins) (cadr pt_ins))
						(list (+ (car pt_ins) dx) (cadr pt_ins))
						(list (+ (car pt_ins) dx) (+ (cadr pt_ins) dy))
						(list (car pt_ins) (+ (cadr pt_ins) dy))
					)
					3
				)
				(if (> (car pt_key) (car pt_ins))
					(setq pt_ins (list (+ (car pt_ins) dx) (cadr pt_ins)))
					(setq pt_ins (list (car pt_tmp) (+ (cadr pt_ins) dy)))
				)
			)
			(setq pt_ins pt_tmp)
		)
	)
)
(redraw)
(setvar "cmdecho" 0)
(setq pt_ins ll)
(command "_.copy" (car ent) "" "_none" pt_ins "_none" pt_ins)
(setq e_last (entlast))
(repeat n
	(command "_.copy" (entlast) "" "_none" pt_ins)
	(if (> (car pt_key) (car pt_ins))
		(setq pt_ins (list (+ (car pt_ins) dx) (cadr pt_ins)))
		(setq pt_ins (list (car pt_tmp) (+ (cadr pt_ins) dy)))
	)
	(command "_none" pt_ins)
)
(entdel (entlast))
(entdel e_last)
(setvar "cmdecho" 1)
(prin1)
)

 

[Edité le 25/7/2006 par bonuscad]

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

Posté(e)

merçi a vous tous

pour bonuscad

c sure ce que tu a fais et trés coul mais je suis un debutant et je connais absolument rien en visuel lisp ou autolispe . comment on peux ce former en lisp. et est ce que quelqu'un a des documentation pour les debutant

si c possible de me l'envoyer a mon adress e-mail: o.debbagh@gmail.com

je serais trés reconnaissant

Posté(e)

bonjour,

 

Il y a le develloper guide dans l'aide d'autocad

malheureusement il est en anglais

Il est toujours pas traduit??!!!

Vu le prix du logiciel, autodesk pourrait faire un effort

:mad:

 

de que j'ai l'occasion de le dire je le fais

pour ma part j'avais commencer a m'y mettre

mais si en plus il faut apprendre l'anglais...

alors j'attend une traduction

 

bon courage

Posté(e)

J'ai débuté au temps ou l'aide était sur support papier.

Celle-ci était fournie en Français en grande partie pour la partie développement.

 

Pour la version R14, elle n'était plus fournie en support papier, je l'ai eu avec un supplément financier en Français de la part d'AutoDesk: Mon employeur avait pris le financement à sa charge :cool: . (C'est la dernière version que je possède sur papier)

 

Peut être que cette démarche est toujours possible pour les version actuelle et qu'il est alors possible de l'avoir en Français en version papier.

 

Mais ceci n'est pas très commercial de la part d'AutoDesk et nous mets pas sur un pied d'égalité avec les anglo-saxons. :mad:

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é