Probleme definition d'un point sur une courbe

Probleme definition d'un point sur une courbe

Anonymous
Non applicable
1 507 Visites
6 Réponses
Message 1 sur 7

Probleme definition d'un point sur une courbe

Anonymous
Non applicable

Bonjour,

 

Je viens tout juste de me mettre a F360, j’espère ne pas faire de doublons : je réalise un fuselage d'avion, grâce aux plan originaux en sketch,  j'ai pu définir une courbe par point : cette courbe mesure 733.629mm et j'aimerai pouvoir y apposer un point à 671.06mm (en partant du bas à droite) et la découper à cette endroit la mais impossible pour moi, je n'arrive pas à mesurer  des distances ou mettre le point  précisément sur cette courbe. Désolé !

 

Merci pour tout pour vos réponses

 

Cordialement,

 

Fusion 360 Education Licence - apparemment à jour !

0 J'aime
Solutions acceptées (1)
1 508 Visites
6 Réponses
Replies (6)
Message 2 sur 7

iphone.cesbron
Enthusiast
Enthusiast

Bonjour Antoine,

 

Tu peux définir un plan de construction avec <Plane Along Path> en sélectionnant ta coube

Capture d'écran 2020-04-25 09.20.33.png

 

Ensuite tu sélectionne <Physical> dans distance Type et tu auras la position dans l'unité que tu as choisi (mm)

Capture d'écran 2020-04-25 09.15.55.png

 

Enfin du sélectionne ton plan de construction pour créer un sketche,  tu choisis l'origine pour placer un point et Voilà.

Bonne journée et bon Week-end.

 

0 J'aime
Message 3 sur 7

JeromeBriot
Mentor
Mentor
Solution acceptée

@iphone.cesbron  a écrit :

 

Tu peux définir un plan de construction avec <Plane Along Path> en sélectionnant ta coube

 Voir aussi "Point Along Path" tout en bas du même menu. Le problème de cette méthode est que le point n'existera pas dans l'esquisse (sketch) d'origine car celui-ci a été créé avant.

 

Pour ma part, je me méfie de ces points calculés avec un précision donnée. Le mieux est quand même de créer les points de façon géométrique en utilisant des lignes de construction et des intersections.

 

Voici quand même deux scripts Python qui permettent de placer un point sur une ligne dans l'esquisse en cours.

 

Dans le premier script, le point est ajouté à l'endroit du clic de la souris :

import adsk.core, traceback

def run(context):
    ui = None
    try:

        app = adsk.core.Application.get()
        ui  = app.userInterface

        currentSketch = app.activeEditObject

        if currentSketch.objectType != 'adsk::fusion::Sketch':
            ui.messageBox('Edit an existing sketch first.')
            return

        selection = ui.selectEntity('Select a sketch curve', 'SketchCurves,SketchLines,SketchCircles,ConstructionLines')

        if selection:

            selectedCurve = selection.entity

            pointInModelCoordinate = selection.point

            pointInSkecthCoordinate = currentSketch.modelToSketchSpace(pointInModelCoordinate)

            newPoint = currentSketch.sketchPoints.add(pointInSkecthCoordinate)

            if newPoint:
                currentSketch.geometricConstraints.addCoincident(newPoint, selectedCurve)

    except:
        if ui:
            ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))

Dans le deuxième, on demande un paramètre compris entre 0 et 1 pour créer le point sur la courbe paramétrée :

import adsk.core, traceback

def run(context):
    ui = None
    try:

        app = adsk.core.Application.get()
        ui  = app.userInterface

        currentSketch = app.activeEditObject

        if currentSketch.objectType != 'adsk::fusion::Sketch':
            ui.messageBox('Edit an existing sketch first.')
            return

        p, isCancelled = ui.inputBox('Enter a value between 0.0 and 1.0', 'Value', '0.5')

        if isCancelled:
            return

        p = float(p)

        selection = ui.selectEntity('Select a sketch curve', 'SketchCurves,SketchLines,SketchCircles,ConstructionLines')

        selectedCurve = selection.entity

        returnValue, startParameter, endParameter = selectedCurve.geometry.evaluator.getParameterExtents()

        if not returnValue:
            return

        rng = endParameter-startParameter
        parameter = rng * p + startParameter

        returnValue, pointInSkecthCoordinate = selectedCurve.geometry.evaluator.getPointAtParameter(parameter)

        if not returnValue:
            return

        newPoint = currentSketch.sketchPoints.add(pointInSkecthCoordinate)

        if newPoint:
            currentSketch.geometricConstraints.addCoincident(newPoint, selectedCurve)

    except:
        if ui:
            ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))

 

Pour le deuxième script, dans le cas qui nous intéresse ici, le paramètre sera 0,9147130225 (671.06/733.629) ou 0,085286977 car le sens de la courbe n'est pas pris en compte.

 

Voir les fichiers ci-joints.

 

C'est vite fait mais je pense que c'est un bon début.

 

Message 4 sur 7

iphone.cesbron
Enthusiast
Enthusiast

Effectivement Jérôme, tu as raison sur les points que tu as abordés et je ne connaissait pas la fonction Point Along Path.

Chapeau bas et bonne soirée.

Philippe

0 J'aime
Message 5 sur 7

Anonymous
Non applicable

Merci de vos réponse,

 

J'ai essayé le script placePointOnCurveAt car je ne sais pas ou je dois le positionner justement ! Malheureusement, j'ai le droit à un message d'erreur

 

---------------------------
Fusion 360
---------------------------
Failed:
Traceback (most recent call last):
File "C:/Users/titur/AppData/Roaming/Autodesk/Autodesk Fusion 360/API/Scripts/placePointOnCurveAt/placePointOnCurveAt.py", line 24, in run
p = float(p)
ValueError: could not convert string to float: '0,9147130225'

---------------------------
OK
---------------------------

 

En tout cas merci pour le coup de main !

0 J'aime
Message 6 sur 7

Anonymous
Non applicable

Ca marche tip top ! Merci (petit probleme en "," et "." qui me créait une erreur mais c'est corrigé !

 

Merci beaucoup du temps pris !

0 J'aime
Message 7 sur 7

JeromeBriot
Mentor
Mentor

@Anonymous  a écrit :

petit probleme en "," et "."

 


Oui désolé. Il faut utiliser la notation anglo-saxonne 0.9147130225 dans Fusion 360.

 

0 J'aime