Aller au contenu

Extraction des cotés d\'un rectangle


Invité seb48

Messages recommandés

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

 

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

 

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

 

La formule en question est utilisable dans un champ, mais il me semble que les champs n'étaient pas dispo dans LT 2007... :(

 

L'idée de bonuscad est bonne (les blocs rectangulaires), ou sinon tu peux toujours télécharger la version d'essai de ZwCAD pour pouvoir utiliser des Lisp.

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines après...

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

Lien vers le commentaire
Partager sur d’autres sites

  • 2 ans après...

 

 

 

(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 !

Lien vers le commentaire
Partager sur d’autres sites

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é