CADxp: Lisp Calcul Côte Facile ... Sauf pour moi - CADxp

Aller au contenu

Page 1 sur 1

Lisp Calcul Côte Facile ... Sauf pour moi Calcul sur une côte

#1 L'utilisateur est hors-ligne   Topheur 

  • ceinture orange
  • Groupe : Membres
  • Messages : 24
  • Inscrit(e) : 05-janvier 16

  Posté 24 novembre 2016 - 20:56

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.
0

#2 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 10347
  • Inscrit(e) : 02-septembre 05

Posté 24 novembre 2016 - 22:35

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 -
Développements sur mesure pour AutoCAD
Image IPB
0

#3 L'utilisateur est hors-ligne   La Lozère 

  • ceinture noire 3em dan
  • Groupe : Membres
  • Messages : 1957
  • Inscrit(e) : 28-juin 06
  • LocationGénérac (30) - Chantier CNM

Posté 25 novembre 2016 - 10:57

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 2015/2017 - Covadis/Autopiste V15.0b - Mensura Genius V8
Nous n’héritons pas de la Terre de nos ancêtres, nous l’empruntons à nos enfants
0

#4 L'utilisateur est hors-ligne   DenisH 

  • ceinture noire 3em dan
  • Groupe : Membres
  • Messages : 1971
  • Inscrit(e) : 17-décembre 05
  • LocationSAINT FLORENTIN (Yonne)

Posté 25 novembre 2016 - 11:58

Salut.

+ 1 avec La Lozère, un style de cote personnalisé avec un facteur d'échelle serait le mieux...
LinkedIn et mon site...
Windows 10 Pro 64bits
AutoCAD MAP 3D 2017.0.3 HotFix
Covadis 15.0b
Microstation V8i

Un clavier azerty en vaut deux...
Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres...
Davantage d'avantages, avantagent davantage (Bobby Lapointe)
0

#5 L'utilisateur est hors-ligne   VDH-Bruno 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 863
  • Inscrit(e) : 29-avril 10

Posté 25 novembre 2016 - 12:12

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
0

#6 L'utilisateur est hors-ligne   zebulon_ 

  • ceinture noire 2em dan
  • Groupe : Membres
  • Messages : 1239
  • Inscrit(e) : 02-mai 03
  • LocationSchnersheim

Posté 25 novembre 2016 - 12:15

Bonjour,

Citation

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)
0

#7 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 10347
  • Inscrit(e) : 02-septembre 05

Posté 25 novembre 2016 - 12:20

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 -
Développements sur mesure pour AutoCAD
Image IPB
0

#8 L'utilisateur est hors-ligne   zebulon_ 

  • ceinture noire 2em dan
  • Groupe : Membres
  • Messages : 1239
  • Inscrit(e) : 02-mai 03
  • LocationSchnersheim

Posté 25 novembre 2016 - 12:30

Citation

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)
0

#9 L'utilisateur est hors-ligne   Topheur 

  • ceinture orange
  • Groupe : Membres
  • Messages : 24
  • Inscrit(e) : 05-janvier 16

Posté 25 novembre 2016 - 18:31

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:
0

#10 L'utilisateur est hors-ligne   zebulon_ 

  • ceinture noire 2em dan
  • Groupe : Membres
  • Messages : 1239
  • Inscrit(e) : 02-mai 03
  • LocationSchnersheim

Posté 26 novembre 2016 - 00:23

"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)
0

#11 L'utilisateur est hors-ligne   Steven 

  • ceinture rouge et blanche 6em dan
  • Groupe : Membres
  • Messages : 3144
  • Inscrit(e) : 03-mars 03
  • LocationDans le TARDIS

Posté 26 novembre 2016 - 12:09

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 Image IPB
Steven________________________________________
Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.
Pour la maison; Linux Mint et pas de problèmes. Mais pas d'AutoCAD.
En rêve; AutoCAD sous Linux.
0

#12 L'utilisateur est hors-ligne   Steven 

  • ceinture rouge et blanche 6em dan
  • Groupe : Membres
  • Messages : 3144
  • Inscrit(e) : 03-mars 03
  • LocationDans le TARDIS

Posté 26 novembre 2016 - 12:20

Voir le messagezebulon_, le 26 novembre 2016 - 00:23 , dit :

"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 Image IPB
Steven________________________________________
Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.
Pour la maison; Linux Mint et pas de problèmes. Mais pas d'AutoCAD.
En rêve; AutoCAD sous Linux.
0

#13 L'utilisateur est hors-ligne   Patrick_35 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 6073
  • Inscrit(e) : 06-janvier 03

Posté 26 novembre 2016 - 14:49

Salut

L'accent circonflexe signifie souvent l'amuïssement de la lettre S.
L'étymologie du mot vient du latin costa.
Je rejoins Steven quant à l'importance de la phonétique.

@+
Les Lisps de Patrick
Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.
Joseph Joubert, 1754-1824
0

#14 L'utilisateur est hors-ligne   zebulon_ 

  • ceinture noire 2em dan
  • Groupe : Membres
  • Messages : 1239
  • Inscrit(e) : 02-mai 03
  • LocationSchnersheim

Posté 27 novembre 2016 - 00:29

Bonjour,

Citation

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)
0

#15 L'utilisateur est hors-ligne   didier 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 7022
  • Inscrit(e) : 18-décembre 02
  • LocationPlanète : Terre

Posté 27 novembre 2016 - 11:02

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.
Éternel débutant ...
0

#16 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 10347
  • Inscrit(e) : 02-septembre 05

Posté 27 novembre 2016 - 14:34

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 [u] (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 -
Développements sur mesure pour AutoCAD
Image IPB
0

#17 L'utilisateur est hors-ligne   didier 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 7022
  • Inscrit(e) : 18-décembre 02
  • LocationPlanète : Terre

Posté 27 novembre 2016 - 15:36

Coucou

assurément on s'éloigne du message originel
ce n'en est pas pour autant intéressant.

merci (gile)
Éternel débutant ...
0

#18 L'utilisateur est hors-ligne   zebulon_ 

  • ceinture noire 2em dan
  • Groupe : Membres
  • Messages : 1239
  • Inscrit(e) : 02-mai 03
  • LocationSchnersheim

Posté 27 novembre 2016 - 22:11

Bonjour,

Citation

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.

Citation

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)
0

Partager ce sujet :


Page 1 sur 1


Réponse rapide

  

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)