Aller au contenu

Curlygoth

Membres
  • Compteur de contenus

    813
  • Inscription

  • Dernière visite

  • Jours gagnés

    7

Tout ce qui a été posté par Curlygoth

  1. Bonjour, Mais griller moi je vous en prie 😉 Je propose des solutions personnalisées pas "du global" Et si le global suffit pour lui c'est très bien 😉 comme dit en mp a ssalle et bien d'autres : on est sur un forum d'échange, donc échangeons mes amis ! Je propose des solutions personnalisées et donc bien souvent payante... Donc, je dis toujours de demander à la communauté car s'il y a une solution gratuite qu'il a prenne !!! Et qu'on me contacte si vraiment, il y a besoin ! (Mon auto entreprise n'est pas créée pour me rendre riche ou me faire vivre) Mode mp off : @ssallevoila comme je te l'ai écrit en mp, il y a bien un lisp pour ça. S'il te convient : c'est parfait ! sinon tu peux leur demander de le modifier suivant tes contraintes de calques et type de plan etc... Bref recontacte moi si besoin 😉
  2. Maj Microsoft pour l'instant. C'est insoluble... Mais t'inquiète pas il feront surement le nécessaire 😉
  3. C'est parfait !!! Merci @(gile) Et merci aussi encore a @didier pour le formule du z et me disant d'avoir le vecteur normal !
  4. oui je suis d'accord, mais mon correcteur orthographique lui n'en sais rien 😉 car je n'ai pas l'art de ton écriture et je m'en excuse 😉 moi aussi je le remercie ! une formule : je m'attendais plus à ça ^^ vous m'avez mâcher le travail... c'est très bien ! mais il est vrai comme dit @(gile) que je ne comprends pas du coup toutes les formules que vous m'avez donner hormis celle que j'ai écrite ou réécrite car j'ai regarder un cours hier soir ce qui malheureusement ne fait pas de moi un expert ^^ tu semble tracasser pourtant j'ai écrit plus haut dans ce message : où d'ailleurs je t'ai "insulté" de champion 😈
  5. Alors je vais traiter vos réponses dans l'ordre et avec grand respect que j'ai pour vous 😀 Je commence par @didier alors dans les faits d'exactitude tu as raison mais j'ai appris que si on ne declare pas de variable elle se met en variant "automatiquement" et tu remarquera les guillements du coup si tu dit dim TOTO as variant et ensuite toto = 1 toto = "A" tu n'aura pas de probleme d'où l'utilisation peu abusive du mot joker, car si on mets un liste ou tableau sans le déclarer ça marche pas ! (sauf sur apel d'une "fonction") Ce qui est drôle c'est que le correcteur a accepté le "comprned" mais pas le "Ac" pt = ThisDrawing.Utility.TranslateCoordinates(pt, acOcs, acWorld, False, norm) enfin bref c'etait par rapport au acOCS qui est le plan normal des "blocs" ce que je n'avais pas compris et donc je ne voyais pas comment l'avoir sans le produit vectoriel... que d'ailleurs je ne maitrise pas totalement... et c'est une belle transition pour répondre @(gile) C'est pour ça que je préférè qu'on me donne les formules 😉 Mais pour être encore plus précis avec toi : je ne l'ai pas vu à l'école (enfin les vecteur si quand même) mais uniquement sur du 2D ! Donc hier soir, j'ai regardé une vidéo qui explique. Mais disons le clairement : sans pratique c'est compliqué de maitriser ! (un peu comme au échec du reste) Voilà !
  6. Tout est possible 😉 Je fais ça pour mes présentations va faire un tour sur mon site et dis moi
  7. J'ai fait différemment : Vu qu'on ne peut apparement pas mettre un tableau dans un tableau (ça le fait aussi quand je doit mettre une list dans une liste) et je fait ça : temp = CrossProduct(Vector(pt1, pt2), Vector(pt1, pt3)) For i = 0 To 2 norm_1(i) = temp(i) Next i bah le variant, je l'appelle le joker... il peut varié dans ton code ! c'est à la fois génial et surtout très casse gueule ! 😝 @didier Par contre là c'est bon !!!! j'avais une erreur de frappe... j'avais donc un Z=0 dans mon point A... MERCI CHAMPION @(gile) Tu trouve combien quand tu fais tourner tes codes ? Édit: sinon t'embête pas je peux rester avec ce j'ai 😉 En tout cas merci merci beaucoup !!
  8. Oui ce sera ça donc j'ai fait un boulette c'est sur ! Function MATH_ALTI_POINT_TRIANGLE(Pa, Pb, Pc, Pm) Vab = VECTEUR(Pa, Pb) Vac = VECTEUR(Pa, Pc) Vn = PROD_SCALAIRE(Vab, Vac) MATH_ALTI_POINT_TRIANGLE = Z_VECTEUR_NORMAL_Pa(Pa, Pm, Vn) End Function Function VECTEUR(Pa, Pb) Dim V(0 To 2) As Double For i = 0 To 2 V(i) = Pb(i) - Pa(i) 'Vecteur ab Next i VECTEUR = V End Function Function PROD_SCALAIRE(Vab, Vac) Dim V(0 To 2) As Double V(0) = Vab(1) * Vac(2) - Vab(2) * Vac(1) V(1) = Vab(2) * Vac(0) - Vab(0) * Vac(2) V(2) = Vab(0) * Vac(1) - Vab(1) * Vac(0) PROD_SCALAIRE = V End Function Function Z_VECTEUR_NORMAL_Pa(Pa, Pm, Vn) T1 = Pa(0) * Vn(0) + Pa(1) * Vn(1) T2 = Pa(2) * Vn(2) T3 = Pm(0) * Vn(0) T4 = Pm(1) * Vn(1) Z_VECTEUR_NORMAL_Pa = (T1 + T2 - T3 - T4) / Vn(2)
  9. Oui c'est bien le problème 😊 avec ta méthode : je trouve 13 et des patates (ce qui est faux car je dois etre entre 14,51 et 16,41) et je trouve -0.4282 avec la méthodes de transformation de @(gile) qui est aussi erroné @(gile) J'ai jamais été bon pour donner des noms aux fonctions XD et j'ai un probleme avec : Function CoordZ_(pt1 As Variant, pt2 As Variant, pt3 As Variant, pt As Variant) As Double Dim norm_1(0 To 2) As Double norm_1 = CrossProduct(Vector(pt1, pt2), Vector(pt1, pt3)) Dim zAxis(0 To 2) As Double zAxis(2) = 1# CoordZ_ = DotProduct(norm_1, Vector(pt, pt1)) / DotProduct(norm_1, zAxis) End Function Me dit : "impossible d’affecter à un tableau sur norm_1" La je comprends pas tout à l'air carré... d'ailleurs diviser deux matrices en VBA... @didier J'ai mis le dwg sans explication car gile me l'a demander hier 😉 désolé ^^ mais ok oui je note ^^ Pour le dessin J'ai voulu dessiner en 3D la face3D des 3 pts, pour avoir une surface ensuite j'ai dessiné "physiquement et manuellement" une polyligne verticale pour avoir sa longueur (et donc le Z attendu (environ 15.34)) vu que j'ai "dessiner géométriquement" le résultat, et bien je me suis lancer dans des calculs (voir au début du posts avec CTzen) donc vous ENORMEMENT aidé !! et je vous en remercie beaucoup ! mais il y a des couacs (peut-être du a mes connaissances erronés justement 😝)
  10. Alors Méthode @didier : 13.16 Méthode @(gile) : -0.42 EXO.dwg Methode didier Function MATH_ALTI_POINT_TRIANGLE(Pa, Pb, Pc, Pm) Vab = VECTEUR(Pa, Pb) Vac = VECTEUR(Pa, Pc) Vn = PROD_SCALAIRE(Vab, Vac) MATH_ALTI_POINT_TRIANGLE = Z_VECTEUR_NORMAL_Pa(Pa, Pm, Vn) End Function Function VECTEUR(Pa, Pb) Dim V(0 To 2) As Double For i = 0 To 2 V(i) = Pb(i) - Pa(i) 'Vecteur ab Next i VECTEUR = V End Function Function PROD_SCALAIRE(Vab, Vac) Dim V(0 To 2) As Double V(0) = Vab(1) * Vac(2) - Vab(2) * Vac(1) V(1) = Vab(2) * Vac(0) - Vab(0) * Vac(2) V(2) = Vab(0) * Vac(1) - Vab(1) * Vac(0) PROD_SCALAIRE = V End Function Function Z_VECTEUR_NORMAL_Pa(Pa, Pm, Vn) T1 = Pa(0) * Vn(0) + Pa(1) * Vn(1) T2 = Pa(2) * Vn(2) T3 = Pm(0) * Vn(0) T4 = Pm(1) * Vn(1) Z_VECTEUR_NORMAL_Pa = (T1 + T2 - T3 - T4) / Vn(2) End Function methode gilles Function CoordZ(pt1 As Variant, pt2 As Variant, pt3 As Variant, pt As Variant) As Double Dim norm(0 To 2) As Double norm_ = CrossProduct(Vector(pt1, pt2), Vector(pt1, pt3)) pt = ThisDrawing.Utility.TranslateCoordinates(pt, acWorld, acOCS, False, norm_) pt(2) = 0# pt = ThisDrawing.Utility.TranslateCoordinates(pt, acOCS, acWorld, False, norm_) CoordZ = pt(2) End Function Function Vector(pt1 As Variant, pt2 As Variant) As Variant Dim result(0 To 2) As Double result(0) = pt2(0) - pt1(0) result(1) = pt2(1) - pt1(1) result(2) = pt2(2) - pt1(2) Vector = result End Function Function DotProduct(v1 As Variant, v2 As Variant) As Double DotProduct = v1(0) * v2(0) + v1(1) * v2(1) + v1(2) * v2(2) End Function Function CrossProduct(v1 As Variant, v2 As Variant) As Variant Dim result(0 To 2) As Double result(0) = v1(1) * v2(2) - v1(2) * v2(1) result(1) = v1(2) * v2(0) - v1(0) * v2(2) result(2) = v1(0) * v2(1) - v1(1) * v2(0) CrossProduct = result End Function
  11. OUF.. a oui je voyais pas du tout ce qu'il voulais dire ! c'est mon "xD" qui a dû le perturber ! 😝
  12. C'est pas faux ! Je vais pousser le truc de mon côté ! Il existe quand-même le transformby que j'utilise lors de mes changements de repère
  13. Merci Giles pour ces précisions ! Mais en VBA je fais ça plus simple : juste une fonction qui calcule la normale Une autre qui me calcul le z Édit : oui ce que tu a fais mais avec boucle
  14. en effet ça va ^^ il est dans la norme après rien ne l’empêche de "sondé ailleurs" car peut etre interressant sa dépend des patrons... j'ai auto-supprimer matisé mon poste. J'ai eu droit presqu'à : ben on a plus besoin de toi alors qu'il sont tous avec des feuilles a écrire (à la main) leurs plannings XD dommage...
  15. dessin au premier post c'est ça ! il faut juste le Z ^^ ben si justement l'idée c'est que quand je deplace ma souris je puisse avoir Z de mon curseur en fonction de points que j'ai autour Mon erreur est peut etre de vous avoir diriger vers une mauvaise solutions ! car d1 d2 d3 sont des distances en plan (vue de dessus) vu qu'il me manque se foutu Z XD edit : mais ok demain je donnerais le dwg de mes 3 points ^^
  16. Je résume : on a un triangle avec 3 points : (ça c'est facile) Ces 3 points on des coordonnées XYZ connu (pour l'instant ça va) et doinc comme tu le dis : un plan défini par ces 3 point Maintennant, je recherche uniquement le Z du point P (dans le repère du SCU général) qui est sur le plan ! et on connait le XY de P car il faut que je fixe une limite sur le point P sinon c'est isoluble ^^ EDIT : Pendant que @didier calcul, Moi je traduis le lisp de @bonuscad et donc si je comprend bien E1 (+ (* X1 (- Y2 Y3)) (* X2 (- Y3 Y1)) (* X3 (- Y1 Y2))) E1 = X1*(Y2-Y3) + X2*(Y3-Y1) + X3*(Y1-Y2) c'est ça ? EDIT2 : écris trop vite j'ai pas dû si bien traduire E1 (+ (* X1 (- Y2 Y3)) (* X2 (- Y3 Y1)) (* X3 (- Y1 Y2))) E2 (+ (* Y1 (- Z2 Z3)) (* Y2 (- Z3 Z1)) (* Y3 (- Z1 Z2))) E3 (+ (* Z1 (- X2 X3)) (* Z2 (- X3 X1)) (* Z3 (- X1 X2))) E4 (- (- (* E2 X1)) (* E3 Y1) (* E1 Z1)) Z (- (- (* (/ E2 E1) (car pt))) (* (/ E3 E1) (cadr pt)) (/ E4 E1)) E1 = Pa(x) * (Pb(y) - Pc(y)) + Pb(x) * (Pc(y) - Pa(y)) + (Pc(x) * (Pa(y) - Pb(y))) E2 = Pa(y) * (Pb(Z) - Pc(Z)) + Pb(y) * (Pc(Z) - Pa(Z)) + (Pc(y) * (Pa(Z) - Pb(Z))) E3 = Pa(Z) * (Pb(x) - Pc(x)) + Pb(Z) * (Pc(x) - Pa(x)) + (Pc(Z) * (Pa(x) - Pb(x))) E4 = -E2 * Pa(x) - E3 * Pa(x) - E1 * Pa(Z) Z = E2 / E1 * p(x) - (E3 / E1) * p(y) - (E4 / E1) EDIT3 : Bon ça a l'air de marcher avec la formule de @didier je teste ça au boulot demain
  17. Ouf t'en fais pas va xD, il me faut juste la formule que je vais faire en fonction @bonuscad j'ai du mal à lire le lisp désolé
  18. Alors ok et merci bonusCad tu pourrais traduire du coup ? 😉
  19. Oki merci je vais essayer ça 😉 mais ton point D tu le mets ou dans l'image ? Car deux perpendiculaire d'une droite ok mais du coup je suis sur un plan oblique
  20. j'ai toutes les equations des chaque ligne du traingle mais je peux pas avoir la formule d'un point en rapport avec mon point P car je ne connais pas son Z ^^
  21. marche pas car la grande distance a un coef plus elevé alors que le point y est le plus éloigner ! et quand tu fais l'inverse pour avoir le pourcentage inverse tu obtiens 2.... On parle en 3D la ^^
  22. Bonjour à vous amis mathématiciens, Suite à ce Topic (Calcul d'un point pour 4 connus) Je souhaite rechercher le Z du Point P (qui est bien à l'intérieur du trinagle) Je connais : Les coordonnées X, Y, Z des 3 coins du triangle Les distances : d1 = Distance2D point P à 1 d2 = Distance2D point P à 2 d3 = Distance2D point P à 3 et tous les angles qu'on peut calculer ce qui donne une face 3D du maillage enfin bref... Comment calculez le Z du point P tout en connaissant son X et son Y ? (en dessin je trouve la valeur d'environ Z = 15.34) pour aider :
  23. juste pour infos : je suis dans les réseaux et j'ai plein de liste intelligente comme tu dis ! par contre tu connais mes préférences de lagunages ^^ (mais si tu as besoin d'aide, je suis dispo en MP) et néglige pas le select case 😉 je démissionne si tu veux, je supprimes tout et tu recommences XD
  24. va dans la section lisp ou VBA ^^ tu auras tout ce qu'il te faut 😉
  25. oui tu peux créer des noms de command en lisp ou autre ^^ et ensuite appeler soit du coup le lisp en question ou tout autre code lu par autocad ^^
×
×
  • 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é