Aller au contenu

Lisp Calcul Côte Facile ... Sauf pour moi


Messages recommandés

Posté(e)

Bonsoir à tous,

 

Voilà j'ai un problème simple (pour les pro du lisp <img src='http://cadxp.com/public/style_emoticons/<#EMO_DIR#>/laugh.gif' class='bbc_emoticon' alt=':(rires forts):' /> ) mais difficile pour moi.

 

J'aimerais pouvoir tracer une côte (point début et point fin) mais que celle-ci n'affiche que la moitié de sa valeur.

 

Pourquoi ? Je dois placer des éléments au milieu de pièce d'habitation (au milieu d'un couloir par exemple).

 

Actuellement je trace ma côte (largeur du couloir ex. 1000), je sélectionne le point de fin pour le déplacer et je tape 1000/2, cela me fais ma côte à 500.

 

Comme cela est trop long, j'ai voulu faire le lisp suivant :

(defun c:topher (/  pdep pfin pmilieu)

 (setq pdep (getpoint "\nSpécifiez le premier point: ")) ;; point de départ de la côte

 (setq pfin (getpoint pdep "\nSpécifiez le deuxième point: ")) ;; point de fin de la côte

 (setq pmilieu (/(pfin 2))) 
 
 (command "_dimlinear" pdep pmilieu)

 (princ) 
)

 

J'ai une erreur car j'essaye de diviser un point de coordonné (pfin) par 2.

 

Je pense que la réponse est simple mais je ne trouve pas.

 

Merci de votre aide.

Posté(e)

Salut

 

En LISP, un point est une liste de trois nombres (coordonnées x, y et z).

Pour avoir le point au milieu des points p1 (x1, y1, z1) et p2 (x2, y2 z2), il faut faire la "moyenne" des chaque coordonnées :

((x1 + x2) / 2, y1 + y2) / 2, (z1 + z2) / 2)

 

(setq pmilieu (list
               (/ (+ (car pdep) (car pfin)) 2.)
               (/ (+ (cadr pdep) (cadr pfin)) 2.)
               (/ (+ (caddr pdep) (caddr pfin)) 2.)
             )
)

 

ou, de plus élégamment :

(setq pmilieu (mapcar
               '(lambda (x1 x2) (/ (+ x1 x2) 2.))
               pdep
               pfin
             )
)

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

Posté(e)

Je ne pense pas que ce soit la peine de passer par un lisp.

Dans les propriétés de la cote, tu peux mettre une valeur de 0.5 à "Cote à l'échelle linéaire". Et là, ta valeur sera divisée par deux.

Pour faire tes cotes:

- Soit tu copies ta première cote autant de fois que voulu en remettant le lignes d'attaches là où il faut

- Soit tu fais normalement toutes tes cotes, et tu y appliques après un "coup de pinceaux" en prenant comme base une cote modifiée

- Soit, et c'est le mieux, tu te créais un style de cote rien que pour ça avec comme valeur 0.5 au "facteur d'échelle" de l'onglet "unités principales"

 

Mais si un de tes buts est de créer un lisp, alors je n'ai rien dis... Continu

www.cad-is.fr
Autocad Map 2021 - Covadis/Autopiste V18.0c
Pisser sous la douche ne suffira pas
Posté(e)

Salut.

 

+ 1 avec La Lozère, un style de cote personnalisé avec un facteur d'échelle serait le mieux...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Bonjour

 

Pour une réponse AutoCAD je me servirai de l'accrochage objet milieu entre 2 points m2p à l'invite de commande d'Autocad

 

Pour une variante lisp et pour mémoire, en lisp il assez facile de faire appel à la calculatrice géométrique en ligne d'AutoCAD (définie comme une application extérieur: geomcal.arx)

 

Calcul du milieu entre 2 points

(setq p1 (getpoint)
     p2 (getpoint)
     pm (c:cal "plt(p1,p2,0.5)")
)

Ceci étant une variante très spécifique à AutoCAD, les versions données précédemment par (gile) étant évidemment beaucoup plus pertinente pour l'apprentissage et la compréhension de la programmation Lisp.

 

A+

Apprendre => Prendre => Rendre

Posté(e)

Bonjour,

 

Dans les propriétés de la cote, tu peux mettre une valeur de 0.5 à "Cote à l'échelle linéaire". Et là, ta valeur sera divisée par deux.

 

oui, mais je pense que le but est d'avoir également la cote divisée par deux et pas seulement la valeur. Si ce n'était que la valeur, le passage par le style de cote serait bien sûr la manière la plus simple.

 

Donc, on est bien obligé de calculer le point moyen comme l'indique (gile). Personnellement, j'aurais utilisé polar, angle et distance pour calculer le point milieu, mais c'est parce que j'aime bien la fonction polar...

Par ailleurs, il faut faire attention aux accrochages aux objets quand on utilise ce genre de command

(command "_dimlinear" pdep pmilieu)

car pdep et pmilieu peuvent s'accrocher à un sommet ou un centre ou autre. Alors qu'on veut que ça se place au point calculé. Un petit "_non" avant pdep et un autre avant pmilieu seraient bienvenus.

 

Pour finir, la commande _dimlinear demande aussi un point pour positionner la cote. Ce serait peut être bien de rajouter un pause dans la commande pour permettre à l'utilisateur de placer sa cote où il veut.

 

(defun c:topher (/  pdep pfin)

 (setq pdep (getpoint "\nSpécifiez le premier point: ")) ;; point de départ de la côte

 (setq pfin (getpoint pdep "\nSpécifiez le deuxième point: ")) ;; point de fin de la côte

 
 (command "_dimlinear" 
   "_non" pdep
   "_non" (polar pdep (angle pdep pfin) (* (distance pdep pfin) 0.5))
   pause
 )

 (princ) 
)

 

Amicalement

Vincent

 

PS : côte, on le voit souvent avec accent circonflexe, ce qui est orthographiquement correct. Mais dans ce cas, c'est un os :)

C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme)

C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)

Posté(e)

Salut,

 

Je n'ai pas compris la même chose que vous.

Si je lis bien le LISP, Topheur cherche à créer une cote entre le premier point cliqué et le milieu entre ce point et le second point cliqué.

 

C'est pourquoi j'ai essayé d'expliquer comment on calcule en LISP le milieu entre deux points.

 

On aurait aussi pu simplement faire :

(defun c:topher (/ pdep pfin)
 (setq pdep (getpoint "\nSpécifiez le premier point: "))
 (setq pfin (getpoint pdep "\nSpécifiez le deuxième point: "))
 (command "_.dimlinear" pdep "_m2p" pdep pfin)
 (princ)
)

 

Ou, encore plus simplement (façon "macro") :

(defun c:topher ()
 (command "_.dimlinear" pause "_m2p" (getvar 'lastpoint) pause pause)
 (princ)
)

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

Posté(e)
Si je lis bien le LISP, Topheur cherche à créer une cote entre le premier point cliqué et le milieu entre ce point et le second point cliqué.

c'est ce que j'ai compris aussi.

 

Sinon, la façon "macro" est très élégante :)

 

Amicalement

Vincent

C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme)

C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)

Posté(e)

Bonsoir et merci à TOUS :D

 

Tous d'abord à Gile (mon idole :P et le premier à avoir répondu).

J'aime ces réponses car elles me permettent de mieux comprendre le langage lisp.

 

Pour La Lozère, je dois avouer que j'utilise AutoCad tous les jours mais je ne connaissais pas cette manip (le passage par les propriétés et les styles de cote).

Mais j'ai besoin du point et pas uniquement de la valeur de la côte.

 

Je dois dire que malheureusement, la société qui m'emploie (pourtant une très grosse entreprise) ne prends pas la peine de nous former (mes collègues et moi même) même après 12 ans de boite :( (mais ça c'est un autre débat).

Du coup j'essaie d'apprendre et de m'améliorer par moi même et avec l'aide des experts AutoCad B)

 

Pour Zebulon, j'avais essayé avec polar mais je n'y arrivais pas et concernant mon orthographe ... bah elle est archi mauvaise donc merci pour la correction du mot cote :rolleyes:

Posté(e)

"Côte" ou "Cote" ? Déjà, ça ne se prononce pas pareil. Le premier a un "o" fermé et le second un "o" ouvert, donc on devrait déjà entendre une différence phonétique.

 

Sinon, il faut retenir que "cote" ne prend pas d'accent circonflexe dès que le mot fait référence à une valeur, une notation ou un classement (cote de popularité, cote d'une entreprise en bourse, cote 304 de Verdun ou encore la cote sur un plan, celle dont il est question ici). Dans tous les autres cas, on met un accent (côte d'agneau, Côte d'Azur etc...)

 

Après, on trouve aussi le ou la cotte : poisson ou vêtement de travail ou d'armes...

 

Amicalement

Vincent

C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme)

C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)

Posté(e)

Pour comprendre la notion de O ouvert ou O fermé, il faut avoir des connaissances en phonétique.

 

Je me souviens du temps où j'étais en 5ème et des dictées et lectures entièrement en phonétique. Sur le coup, je n'en voyais pas la réelle utilité, comme beaucoup de choses, lorsqu'on est gamin, à l'école. Puis plus tard, j'ai compris toute l'importance de la prononciation des mots qui est utile pour la bonne orthographe.

 

Voici deux liens pour comprendre la phonétique et comprendre les prononciations entre o, au, ô ou é, et et è ou aient par exemple.

 

Très utile pour savoir, par exemple, écrire j'étais à la place de j'été, comme on peu le voir de temps en temps...

 

 

https://fr.wikipedia...e_fran%C3%A7ais

 

http://easypronuncia...ption-converter

 

Je sens poindre Didier tongue.gif

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)

"Côte" ou "Cote" ? Déjà, ça ne se prononce pas pareil. Le premier a un "o" fermé et le second un "o" ouvert, donc on devrait déjà entendre une différence phonétique.

 

Sinon, il faut retenir que "cote" ne prend pas d'accent circonflexe dès que le mot fait référence à une valeur, une notation ou un classement (cote de popularité, cote d'une entreprise en bourse, cote 304 de Verdun ou encore la cote sur un plan, celle dont il est question ici). Dans tous les autres cas, on met un accent (côte d'agneau, Côte d'Azur etc...)

 

Après, on trouve aussi le ou la cotte : poisson ou vêtement de travail ou d'armes...

 

Amicalement

Vincent

 

On peut aussi dire qu'une bonne côte de boeuf à la cote, dans les repas de famille et que côté boursier, l'or est assez bien coté tandis qu'au moyen âge, les cottes de mailles protégeaient les côtes des chevaliers wink.gif

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)

Bonjour,

 

Je rejoins Steven quant à l'importance de la phonétique

quand on pratique plusieurs langues de façon régulière et soutenue - comme c'est mon cas - la phonétique est primordiale.

D'autant plus qu'une des langues que je pratique régulièrement est l'allemand qui se décompose en une foule de dialectes qui se différencient principalement par leur diphtongaison et, plus généralement, par le changement de prononciation des voyelles. Certains de ces dialectes utilisent d'ailleurs des voyelles qu'on ne trouve ni en français ni en allemand classique, ni en anglais. Il y a aussi quelques consonnes qui changent : il n'y a qu'à aller en Suisse alémanique ou dans le Sundgau pour s'en convaincre, car chez eux le k se prononce un peu comme une jota espagnole. Kind (enfant en allemand) devient RRRRRénd... Pire, Christkind (enfant Jésus) devient Rrrrréstrrrrénd.

 

Donc, pour s'en sortir, il faut savoir bien écouter et avoir une bouche qui sait produire un maximum des variantes phonétiques que l'humanité a su créer. Ce n'est pas toujours simple si on n'a pas baigné dans telle ou telle langue depuis tout petit. Demander, par exemple, à un allemand de prononcer un J français est impossible : cette consonne ne fait pas partie de sa culture. Au mieux on aura un "ch" et c'est ce qui donne l'accent germanique caractéristique.

 

Vive la phonétique !

Amicalement

Vincent

C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme)

C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)

Posté(e)

Coucou

 

C'est vrai qu'on y pense pas mais j'aimerais voir de l'allemand écrit en SMS ça doit être déroutant

Déjà que le français ainsi décliné étonne ...

 

Quand à la phonétique assurément c'est une composante mais ce qui nous intéresse ici en premier lieu c'est l'écrit et il est perfectible chez certains

Quand je dis perfectible c'est encore trop doux car certains s'en fichent tellement que les messages ne sont plus interprétables.

Je dis qu'ils s'en fichent car ils se permettent de reconnaître leurs faiblesses, donc s'ils ont connaissance de ces faiblesses, ils devraient y travailler.

Le travail paie toujours à terme.

Posté(e)

Salut,

 

La phonétique, précisément dans ce cas, ne peut être un critère fiable que si on parle un français "sans accent" (autrement dit : avec un accent francilien).

 

Il est par exemple une partie du territoire français (qui en couvre presque la moitié) où on parle encore avec un accent issu de l'ancienne langue d'oc (ou occitan).

Or une des caractéristiques de "l'accent du midi", outre l'utilisation de l'accent tonique qui le rend si "chantant", est justement de ne pas avoir de 'o' fermé.

En occitan, le son 'o' est toujours (très) ouvert [ɔ] (parfois jusqu'à la diphtongaison en [wɔ], [we] ou [wa] quand il est tonique). En graphie classique, il est noté "ò" quand il est tonique, le "a" final (généralement marque du féminin correspondant au 'e' muet français) est aussi, dans la plupart du domaine, un 'o' ouvert, mais atone.

Le "o" non accentué et le "ó" sont, quant à eux, prononcés (ou [w] devant une voyelle).

 

Donc, quand en "bon français" on ouvre le 'o' de cote [kɔt] et on ferme celui de côte [kot], dans le sud de la France, on prononce l'un come l'autre avec un 'o' ouvert ['kɔtə] (et un 'e' atone mais non muet).

Ce n'est donc pas la phonétique qui permet de les différencier, mais une connaissance (même sommaire) de l'ancienne langue parce qu'étant plus "archaïque" (i.e. plus proche du latin), elle n'a pas amuï les "s":

 

còsta ['kɔstɔ] => côte

costat [kus'ta] => côté

 

còta ['kɔtɔ] => cote

encotat [eⁿku'ta] => coté

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

Posté(e)

Bonjour,

 

C'est vrai qu'on y pense pas mais j'aimerais voir de l'allemand écrit en SMS ça doit être déroutant
Pas tant que ça, compte tenu que les locuteurs allemands (allemands, suisses, autrichiens...) utilisent encore plus d'anglicismes que les français. Particulièrement dans les abréviations de SMS comme le montre cette page suisse.

 

si on parle un français "sans accent"
Ce n'est très certainement pas mon cas... Tout de même, je fais la différence phonétique entre cote et côte, car dans ma langue maternelle les deux o existent, ce qui n'est pas le cas du français méridional. Merci à (gile) pour cet éclairage.

 

Anecdote : le phonème /z/ (comme dans zéro ou douze) n'existe pas dans ma langue maternelle et, quand je parle français ce phonème est souvent remplacé par ce que j'ai de plus proche en magasin, à savoir le /s/. Ces deux consonnes sont toutes deux fricatives alvéolaires, donc très proches mais pas identiques, tout de même. Dès lors, quand j'étais petit et qu'on a commencé à parler de malades séropositifs, j'ai eu très peur parce que je suis du groupe O+... que je lisais zéro positif. Ne riez pas ! Donc pour moi, phonétiquement, séropositif et zéro positif, c'était pareil ! D'où mon angoisse passagère... qui a bien fait rire mon médecin de famille.

 

Amicalement

Vincent

C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme)

C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é