Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Fusion 360
  API: Länge, Höhe und Breite auslesen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  API: Länge, Höhe und Breite auslesen (532 / mal gelesen)
R3vo
Mitglied
staatl. gepr. Techniker, Konstrukteur


Sehen Sie sich das Profil von R3vo an!   Senden Sie eine Private Message an R3vo  Schreiben Sie einen Gästebucheintrag für R3vo

Beiträge: 73
Registriert: 03.11.2021

SolidWorks 2019 SP4, SpeedyPDM 7.4

erstellt am: 13. Nov. 2021 13:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Screenshot2021-11-13125901.png

 
Hallo Zusammen,

hat einer eine Idee wie ich über die API die Länge, Höhe und Breite einer Komponente auslesen kann? Über die physicalProperties bin ich nicht weitergekommen. Die "Beschreibung" lässt sich ja z.B. mit
"rootComp.description" sehr leicht auslesen.

Gruß
R3vo

[Diese Nachricht wurde von R3vo am 13. Nov. 2021 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

TPD-Andy
Moderator
Technischer Produktdesigner Masch.&Anlagenkonstruktion, Elektrotechnikermeister


Sehen Sie sich das Profil von TPD-Andy an!   Senden Sie eine Private Message an TPD-Andy  Schreiben Sie einen Gästebucheintrag für TPD-Andy

Beiträge: 337
Registriert: 31.07.2020

AMD Ryzen 9 5900X, 64GB DDR4 ECC
Sapphire Radeon GPRO X060 Treiber 22.10.3 WHQL
Space Navigator
Linux Mint 20.3 x64
Win11 Pro 22H2, Office Pro 2021
Fusion 360, SolidEdge 2022
sPlan 8, QElectroTech 0.8
FreeCAD 0.20

erstellt am: 14. Nov. 2021 09:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für R3vo 10 Unities + Antwort hilfreich

@R3vo:

Ist "distanceDef. distance. value" eventuell das was du suchst?

Das folgende Beispielscript ermittelt das Maß eines Extrusions-Feature:

Code:

features = comp. features

extrude = features[0]

extentOne = extrude. extentOne

type(extentOne)

<class 'adsk. fusion. DistanceExtentDefinition'>

distanceDef = adsk. fusion. DistanceExtentDefinition. cast(extentOne)

distanceDef. distance. value


Quelle:Get / read out extrude feature of an existing structure

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

R3vo
Mitglied
staatl. gepr. Techniker, Konstrukteur


Sehen Sie sich das Profil von R3vo an!   Senden Sie eine Private Message an R3vo  Schreiben Sie einen Gästebucheintrag für R3vo

Beiträge: 73
Registriert: 03.11.2021

SolidWorks 2019 SP4, SpeedyPDM 7.4

erstellt am: 14. Nov. 2021 13:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Nicht so ganz.

Mein Ziel ist es die Bounding Box einer Komponente aus den Eigenschaften auszulesen. Diese wird ja automatisch von Fusion360 erstellt.

Die ausgelesenen Maße möchte ich dann formatieren und als Beschreibung der Komponente setzen, sodass diese dann in der Stückliste erscheint.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



Metallbauer in Metallgestaltung im Werkstattsbetrieb/Werkstattsbereich (m/w/d)

Die Kunsthochschule für Medien Köln fordert die interdisziplinäre Auseinandersetzung mit den medialen Künsten. Sie bietet ein anspruchsvolles Projektstudium ?Mediale Künste" mit Diplomabschluss an. Künstlerische Praxis, verbunden mit der Aneignung medientechnischer und theoretischer Kompetenzen, hat Priorität und wird durch vielfältige Aufgaben in Technik und Verwaltung unterstützt.

Die Werkstatt gehört zu dem Bereich der Labore und Werkstätten der Hochschule....

Anzeige ansehenMetallhandwerk
TPD-Andy
Moderator
Technischer Produktdesigner Masch.&Anlagenkonstruktion, Elektrotechnikermeister


Sehen Sie sich das Profil von TPD-Andy an!   Senden Sie eine Private Message an TPD-Andy  Schreiben Sie einen Gästebucheintrag für TPD-Andy

Beiträge: 337
Registriert: 31.07.2020

AMD Ryzen 9 5900X, 64GB DDR4 ECC
Sapphire Radeon GPRO X060 Treiber 22.10.3 WHQL
Space Navigator
Linux Mint 20.3 x64
Win11 Pro 22H2, Office Pro 2021
Fusion 360, SolidEdge 2022
sPlan 8, QElectroTech 0.8
FreeCAD 0.20

erstellt am: 14. Nov. 2021 19:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für R3vo 10 Unities + Antwort hilfreich

Und OrientedBoundingBox3D Object ?

OrientedBoundingBox3D Object

Zitat:
As an alternative, the MeasureManager.getOrientedBoundingBox method was described as doing the exact processing.

Non-minimum Profile.boundingBox. Is it a bug?
MeasureManager.getOrientedBoundingBox Method

Code:
import adsk.core, adsk.fusion, traceback

ui = None

def run(context):
    try:
        global ui
        app = adsk.core.Application.get()
        ui  = app.userInterface
       
        design = adsk.fusion.Design.cast(app.activeProduct)
        rootComp = design.rootComponent
       
        sketches = rootComp.sketches
        plane = rootComp.xZConstructionPlane #.xYConstructionPlane

        sketch = sketches.add(plane)
        sketchCircles = sketch.sketchCurves.sketchCircles

        centerPoint = adsk.core.Point3D.create(0, 0, 0)
        sketchCircles.addByCenterRadius(centerPoint, 10.0)

        centerPoint = adsk.core.Point3D.create(10, 0, 0)
        sketchCircles.addByCenterRadius(centerPoint, 10.0)

        boundingBoxesSketch = sketches.add(plane)

        for profile in sketch.profiles:
            bound = getPreciseBoundingBox3D(profile)
            boundingBoxesSketch.sketchCurves.sketchLines.addTwoPointRectangle(bound.minPoint, bound.maxPoint)
    except:
        if ui:
            ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))


def getPreciseBoundingBox3D(
    profile :adsk.fusion.Profile
    ) -> adsk.core.BoundingBox3D:

    # get sketch
    skt :adsk.fusion.Sketch = profile.parentSketch
    sktMat :adsk.core.Matrix3D = skt.transform

    # get WireBody
    loop :adsk.fusion.ProfileLoop = profile.profileLoops[0]
    crvs = [pc.geometry for pc in loop.profileCurves]
    if not sktMat.isEqualTo(adsk.core.Matrix3D.create()):
        for crv in crvs:
            crv.transformBy(sktMat)

    tmpMgr = adsk.fusion.TemporaryBRepManager.get()
    wireBody, _ = tmpMgr.createWireFromCurves(crvs)

    # get OrientedBoundingBox3D
    vecX :adsk.core.Vector3D = skt.xDirection
    vecY :adsk.core.Vector3D = skt.yDirection

    app = adsk.core.Application.get()
    measureMgr :adsk.core.MeasureManager = app.measureManager
    orientedBox :adsk.core.OrientedBoundingBox3D = measureMgr.getOrientedBoundingBox(
        wireBody, vecY, vecX)

    halfX = orientedBox.width * 0.5
    halfY = orientedBox.length * 0.5
    halfZ = orientedBox.height * 0.5

    vec3D = adsk.core.Vector3D
    maxPnt :adsk.core.Point3D = orientedBox.centerPoint.copy()
    maxPnt.translateBy(vec3D.create(halfX, halfY, halfZ))

    minPnt :adsk.core.Point3D = orientedBox.centerPoint.copy()
    minPnt.translateBy(vec3D.create(-halfX, -halfY, -halfZ))

    return adsk.core.BoundingBox3D.create(minPnt, maxPnt)


Update 25.11.2021
Da sich keiner mehr meldet hat sich das Thema wohl erledigt.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz