Aller au contenu

Extraction des cotés d\'un rectangle


Messages recommandés

Posté(e)

Bonsoir,

 

J'aimerai savoir si il est possible d'extraire les côtés d'un rectangle.Pour le moment, je n'ai pas la solution et je ne sais pas par où attaquer.( jarrive à extraire la surface, le périmètre mais les côtés)

 

A l'aide

 

Seb48

Posté(e)

Bonjour Didier,

 

Le rectangle est composé d'une polyligne close.

 

A plus

 

Seb48

Posté(e)

Coucou

 

je te livre quelque chose de volontairement simpliste

pour que tu apprennes

 

ar exemple.

 

je te laisse le soin de vérifier

que l'entité est bien une polyligne

et si c'est bien le cas

que la polyligne n'a que quatre sommets.

 

(setq ent (car(entsel"poly")))
(setq lis-som (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget ent))))
(setq cote1 (distance (nth 0 lis-som) (nth 1 lis-som))
     cote2 (distance (nth 1 lis-som) (nth 2 lis-som))
     )
(alert (strcat "Côté 1 : " (rtos cote1 2 2) "\nCôté 2 : " (rtos cote2 2 2))) 

 

amicalement

Posté(e)

Salut,

 

J'utilise autocad LT 2007 et je n'ai pas de moyen de programmation.

 

Je pensais uiliser les macros et extraire les côtés à l'aide des attributs, mais je ne sais pas si c'est possible et je ne connais pas la fonction qui me permettrait d'y arriver.

 

Si il existe un logiciel gratuit pour voir commnet cela fonctionne, je l'essaierai car je ne sais pas si mon entreprise est prête à acheter un autre logiciel ou une autre version d'autocad.

 

Merci quand même

 

Seb48

 

 

 

 

Posté(e)

Salut,

 

j'arrive à extraire la surface, le périmètre

 

Dommage que le diesel n'ait pas la fonction des racines carrées, car avec celle-ci, cela aurait était possible.

 

Je te donne la formule au cas ou !...

 

Avec P pour périmètre et S pour Surface

 

L= (-P/2 +ou- (racine (P²/4 - 4*S)) / 2

 

 

[Edité le 8/4/2011 par bonuscad]

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

Posté(e)

Salut Didier et Bonuscad

 

J' y avais déja penser à utiliser ta formule, mais je ne sais pas comment l'utiliser dans autocad lt.

 

Merci quand même.

 

Je vais essayer en utilisant la mesure entre deux dans une macro puis je vais l'extraire, mais ce n'est pas exactement ce que je veux faire.

 

Seb48

 

Posté(e)

mais je ne sais pas comment l'utiliser dans autocad lt.

 

Tout était faisable en macro diesel avec LT, à l'exception que la fonction $(sqrt,"nombre") n'existe pas ! donc cela fout en l'air la possibilité d'appliquer la formule.

 

Est-ce que la commande CALC est disponible sous LT? Il y aurais peut être possibilité de faire quelque chose avec dans une macro.

 

Je n'ai pas de LT pour tester ces possibilités que j’énonce.

 

Autrement revoir ta façon de faire des rectangles.

Plutôt faire un bloc de 1 unité X 1 unité (un carré en somme), est lors de l'insertion du donnes les facteurs d'échelle en X et Y qui représenteraient tes longueur de côtés.

 

De ce fait, tu pourrais avoir l'information des longueurs des côtés dans la palette des propriétés (qui correspondrait à l'échelle X et Y, ne pas tenir compte de l'échelle Z).

Tu pourrais aussi modifier facilement ces longueurs (toujours dans la palette).

Le seul hic, est que si tu doit faire des ajustements ou coupure de ceux-ci, tu devras les décomposer et ainsi perdre ces informations.

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

  • 4 semaines après...
Posté(e)

bonjour

 

je reviens sur ce sujet qui m'interesse.

j'ai testé la réponse de didier du 7 avril et ca correspond a ce que je recherche

 

existe t-il un moyen simple pour avoir les mêmes resultats sur un solide3d de forme "boite", genre une polyligne rectangulaire extrudée sur un axe Z perpendiculaire au plan de dessin de la polyligne. merci

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

 

 

 

(setq ent (car(entsel"poly")))

(setq lis-som (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget ent))))

(setq cote1 (distance (nth 0 lis-som) (nth 1 lis-som))

     cote2 (distance (nth 1 lis-som) (nth 2 lis-som))

     )

(alert (strcat "Côté 1 : " (rtos cote1 2 2) "\nCôté 2 : " (rtos cote2 2 2))) 

 

 

amicalement

 

 

Je trouve ça excellent !

 

Mais à tout hasard, y as t'il un moyen d'avoir ceci, mais qu'il ressorte une liste complète des rectangle sélectionné ?

Et à la limite, une extraction excel ...

Mais j'en demande peux être un peu trop là.

Je ne sais pas si c'est possible.

 

Merci d'avance !

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é