Exporteren van punten in STEP-formaat


Hallo

Ik heb een assemblage met verschillende onderdelen, waaronder onderdelen die rondingen en punten bevatten (in 3D-schetsen).
Ik moet een export uitvoeren in STEP-formaat.
De volumes en curves zijn goed, ik slaag erin om ze meerdere keren te exporteren door met de exportparameters te spelen, maar het is onmogelijk om de puntenwolk te hebben.
Ik heb alle opties geprobeerd, maar niets hielp.
Ik heb de test geprobeerd met het IGES-formaat en alles is in orde, ik heb alles behalve onmogelijk met het stapformaat.
Ik moet erop wijzen dat ik gedwongen ben om in STEP te exporteren en dat deze puntenwolk uiterst belangrijk is. In feite zullen deze punten worden gebruikt voor tasten in metrologiesoftware.
Ik denk niet dat dit een beperking is van het stapformaat zelf, aangezien CREO erin slaagt om zonder problemen curven en punten te exporteren.
 
Kan iemand mij helpen? Een macro misschien?
 
Bedankt
Vriendelijke groeten

Niemand heeft een voorsprong? Ik geef aan dat ik op Solidworks 2019 SP5 ben

 

Bedankt

Niemand heeft een oplossing voor dit probleem? Ik geef aan dat ik op Solidworks 2019 SP5 ben

Misschien zou het met een Solidworks-bestand bijvoorbeeld gemakkelijker zijn om problemen op te lossen?

Dan moet je gewoon kijken of het werkt op een andere versie van SW. Of als het komt omdat het bestand te groot is of om een andere reden.

En als het niet om het bestand of de optie gaat, maar om de softwarebeperking, kijk dan bij de hotline.

 

1 like

Hallo 

Ik voeg daarom het betreffende SW-bestand toe. Dus ik heb, in STEP export, zowel de puntenwolk als de curves nodig.

Als er iemand aankomt, leg me dan de procedure uit

 

Bij voorbaat dank


nuage_de_points_export_step.sldprt

Hallo

Laat me zo vrij zijn dit onderwerp nieuw leven in te blazen. Het betreffende bestand is als bijlage bij mijn vorige antwoord gevoegd

Bij voorbaat dank aan degenen die mij zouden kunnen helpen

Hallo Aurélien,

 

Ik heb vanmorgen een beetje naar je probleem gekeken. Op de vraag of je met SolidWorks native 3D-schetspunten naar een STEP-bestand kunt exporteren, is het enige antwoord dat geldig lijkt te zijn dat dit niet mogelijk is.

Aangezien het STEP-bestand een (niet-binair) tekstbestand is, is het mogelijk om het met elke tekstverwerker te openen. En als ik een STEP van SolidWorks open vanuit je onderdeelbestand, kan ik de coördinaten van de punten erin niet vinden.

 

Nu is het mogelijk om de coördinaten van de punten te extraheren met een macro zoals voorgesteld op deze link: https://forum.solidworks.com/thread/21628#comment-135766

Ik had er toen plezier in om het te doen en een STEP te genereren door een Python-script (ik ben geen fan van VBA-macro's). Aangezien de definitie van het STEP-formaat in een betaalde standaard is, heb ik dit gedaan door interpolatie van voorbeelden van STEP-bestanden. Het probleem is dat SolidWorks geen punten uit STEP-bestanden importeert als fysieke punten. Dit heeft waarschijnlijk te maken met het feit dat hij geen onderscheid kan maken tussen een enkel punt dat als zodanig moet worden beschouwd en punten die curve-eindpunten definiëren en die niet afzonderlijk in aanmerking moeten worden genomen.

Het importeren van mijn gegenereerde STEP-bestand zal dus resulteren in een leeg deel. Hetzelfde geldt voor FreeCAD. Ik stel mezelf dan twee vragen:

  • Heeft u een voorbeeld van een STEP-bestand met alleen punten die door Creo zijn geëxporteerd om het als sjabloon te nemen en er zeker van te zijn dat mijn gegenereerde bestand vergelijkbaar is?
  • Kun je proberen de twee bijgevoegde STEP-bestanden te importeren in je metrologiesoftware (voor het geval ik het blindelings mis had)?

Als het op deze manier werkt, is het gemakkelijk om mijn Python-script om te zetten naar VBA, zodat ik het rechtstreeks vanuit SW kan gebruiken.


fichiers_step_generes_v1.zip
2 likes

Hallo

Gewoon een vraag Waarom steken in stap exporteren?

U kunt ze met deze macro in de vorm van een Excel-tabel geven.

Moge de kracht met je zijn


pointtoexcel.swp
1 like

Hallo mgauroy,

Allereerst dank ik u voor de tijd die u hebt besteed en de uitgevoerde tests .

Dus ik heb geprobeerd de bestanden in mijn metrologiesoftware te importeren, maar ik had niets, het is leeg, zoals wanneer ik probeer te openen op SW. Aan de andere kant, wat betreft uw verzoek om de punten te exporteren met creo,  het zal moeilijk zijn. Ik heb deze software niet en het is een bestand dat door een klant is verzonden en dat ik heb herwerkt door de volumes te verwijderen.

Aan de andere kant is SW perfect in staat om de punten van andere STEP-bestanden te lezen, de proef met het bestand dat ik je heb gestuurd. 

Ik kan proberen te zien of ik deze puntenwolk direct in STEP kan krijgen en hierheen kan sturen zonder hem op SW te herwerken. 

Trouwens, als ik me niet vergis, werkt de puntexport zelfs bij 2D-schetsen niet.

Denk je dat er een oplossing is?

Mijn groeten

Hallo

Simpelweg omdat ik deze punten nodig heb om te weten waar ik moet komen om te tasten met mijn 3D-besturingsmachine. Het probleem is echter dat deze punten gekoppeld moeten worden aan het 3D-model van het onderdeel. Helaas zijn de bestanden die ik in mijn metrologiesoftware kan importeren alleen het STEP-formaat.

Dus ik teken mijn model, mijn rondingen en mijn punten en ik exporteer het in STEP. Ik moet de verschillende exportopties gebruiken om de curven en het model (2 STEP-bestanden) te krijgen, maar het is onmogelijk om de punten te krijgen. 

De licentie van de metrologiesoftware ondersteunt verschillende formaten, waaronder de IGES, maar helaas is de optie betaald, dus ik heb de hotline van de software gevraagd om een test te doen of het met de IGES werkt en alles in orde is, er is alles, model, curven en punten bovendien met een enkel bestand.

We kozen voor de STEP-optie omdat een van onze klanten met dit formaat werkt en ons de volumes (gemaakt met Creo) heeft geleverd, maar we hadden niet verwacht dat het niet zou werken met Solidworks. Dus als ik een indringende wijziging moet maken, ben ik geïrriteerd

Vandaar mijn vraag om een oplossing te vinden, aangezien het momenteel niet mogelijk is om de IGES-optie te kopen .

Dat is het, nu heb ik mijn klant gevraagd om mij, indien mogelijk, alleen de curven te sturen om te zien hoe het is geformatteerd en om te zien of we dit met een macro kunnen reproduceren.

Bedankt voor de interesse

@ aurelien.buathier

ok ik zie het

Ik ken het onderwerp niet goed, ik zeg misschien iets stoms, maar ik zeg het toch , is het mogelijk om op elk punt een microbol te plaatsen?

Moge de kracht met je zijn.

 

1 like

@ OBI WAN

Dit is geen dwaasheid, integendeel.

Het probleem is dat ik mijn metrologiesoftware nodig heb om het te kunnen interpreteren als een punt en niet als een bol

Om mijn woorden te illustreren, voeg ik 1 screenshot toe in mijn metrologiesoftware waaruit blijkt dat ik 2 dingen nodig heb. Het oppervlak van het model en het punt dat ik gebruik als exat-coördinaten voor het nemen van punten. Wetende dat dit programma wordt gedeeld, is het om de meting betrouwbaarder te maken, in het geval van een wijziging kunnen we elkaar de correcties sturen. Mijn probleem is dat ik zijn punten op SW kan wijzigen, maar ik kan ze niet opslaan in STEP.

Ik weet dat dit een zeer specifiek verzoek is, maar het is nogal verrassend dat exporteren naar RWZI zoveel problemen met zich meebrengt. Vooral omdat het werkt voor andere software. 

Maar ik denk dat de oplossing die @mgauroy voorstelt, een oplossing is die moet worden verfijnd

Bedankt voor de leads

Vriendelijke groeten


logiciel_metrologie.jpg
1 like

Hallo, als ik uw klant bij CREO goed heb begrepen.

Waarom stuur je je bestand niet naar IGES zodat het het kan omzetten in een STEP

Als ik je SW-bestand onder SW open en het opsla in IGES en vervolgens open ik het in CATIA, dan kan ik het gemakkelijk opslaan in STEP.

 

1 like

Hallo Franck

Het is inderdaad een mogelijkheid, maar je kunt begrijpen dat het voor 1 of 2 bestanden mogelijk is, maar we hebben het over verschillende programma's. Als onderaannemer moet ik tussenprogramma's maken die niet direct betrekking hebben op het eindproduct, om nog maar te zwijgen van het feit dat als ik een programma van A tot Z wil maken, ik dat niet zelfstandig kan. Als het maar een paar programma's waren, zou ik niet naar een andere oplossing hebben gezocht dan degene die je opsomt. Om nog maar te zwijgen over projecten voor andere klanten. 

Ik heb een haalbare oplossing nodig met de middelen die ik tot mijn beschikking heb

Bedankt voor het antwoord

Franck

Zou het mogelijk zijn om het STEP-bestand door CATIA te laten genereren? Ik wil graag testen of de punten op mijn metrologiesoftware staan?

Bij voorbaat dank 

Fijn weekend voor iedereen

Hallo

Kunt u een STEP-bestand bijvoegen dat door Creo is gegenereerd (met stippen die eruitzien zoals het hoort)

Hallo

Ik heb het bestand ontvangen dat door CREO is gegenereerd , ik ontdekte dat het 2e STEP-bestand dat door mgauroy (6 dagen geleden) was gegenereerd, in feite vergelijkbaar was met het CREO-formaat. Dus ik onderzocht waarom de stippen niet werden weergegeven op mijn metrologiesoftware en ik ontdekte dat het eigenlijk een optie van de software was die ik was vergeten te activeren.

Dus het bestand dat de regels niet bevat VERTEX_POINT ('', #1); is leesbaar en bruikbaar.

Nu moet ik in staat zijn om een macro te maken waarmee ik de punten kan extraheren in . STAP voor elke montage die ik op SW doe. 

Als mgauroy mij of een ander kan helpen, is dat heel blij

Hartelijk dank 

Hallo Probeer dit:

Option Explicit
Dim FilePath As String
Dim myPoints As Collection

Sub main()
    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    If swModel Is Nothing Then
        MsgBox "Ouvrir une pièce"
        Exit Sub
    End If
    If swModel.GetType <> swDocumentTypes_e.swDocPART Then
        MsgBox "Ouvrir une pièce"
        Exit Sub
    End If
    swApp.SetUserPreferenceIntegerValue swUserPreferenceIntegerValue_e.swStepAP, 214
    swApp.SetUserPreferenceIntegerValue swUserPreferenceIntegerValue_e.swStepExportPreference, swAcisOutputGeometryPreference_e.swAcisOutputAs3DCurves_IncludeSketchEnts
    
    FilePath = Left(swModel.GetPathName, InStrRev(swModel.GetPathName, ".") - 1) & ".STEP"
    swModel.Extension.SaveAs2 FilePath, 0, swSaveAsOptions_e.swSaveAsOptions_Silent, Nothing, Empty, False, Empty, Empty
    
    Set myPoints = New Collection

    Dim swFeat As SldWorks.Feature
    Dim swSubFeat As SldWorks.Feature
    Set swFeat = swModel.FirstFeature
    While Not swFeat Is Nothing
        ProcessFeat swFeat
        Set swSubFeat = swFeat.GetFirstSubFeature
        While Not swSubFeat Is Nothing
            ProcessFeat swSubFeat
            Set swSubFeat = swSubFeat.GetNextSubFeature
        Wend
        Set swFeat = swFeat.GetNextFeature
    Wend

    UpdateStep Empty
    
    swApp.SetUserPreferenceIntegerValue swUserPreferenceIntegerValue_e.swStepExportPreference, swAcisOutputGeometryPreference_e.swAcisOutputAsSolidAndSurface
End Sub

Sub ProcessFeat(ByVal swFeat As SldWorks.Feature)
    Dim swSketch As SldWorks.Sketch
    Dim swPt As SldWorks.SketchPoint
    Dim vPts As Variant
    Dim vPt As Variant
    'Debug.Print swfeat.Name & " " & swfeat.GetTypeName2
    If swFeat.GetTypeName2 = "ProfileFeature" Or swFeat.GetTypeName2 = "3DProfileFeature" Then
        Set swSketch = swFeat.GetSpecificFeature2
        vPts = swSketch.GetSketchPoints
        For Each vPt In vPts
            Set swPt = vPt
            If Not swPt Is Nothing Then
                If swPt.Type = swSketchPointType_e.swSketchPointType_User Then
                    myPoints.Add " = CARTESIAN_POINT ( 'NONE',  ( " & swPt.X * 1000 & ", " & swPt.Y * 1000 & ", " & swPt.Z * 1000 & " ) ) ;"
                End If
            End If
        Next
    End If
End Sub

Sub UpdateStep(void)
    Dim myData As String
    Dim filenum As Integer
    filenum = FreeFile
    Debug.Print FilePath
    Open FilePath For Binary As #filenum
    myData = Space$(LOF(1))
    Get #filenum, , myData
    Close #filenum
    
    Dim Lines() As String
    Lines = Split(myData, vbCrLf)
    Dim line As Variant
    Dim MaxNum As Integer
    For Each line In Lines
        If Left(line, 1) = "#" Then
            MaxNum = CInt(Mid(line, 2, InStr(line, "=") - 3))
        End If
    Next
    
    Dim i As Integer
    Dim myLines As String
    For i = 1 To myPoints.Count
        myLines = myLines & "#" & MaxNum + i & myPoints(i) & vbCrLf
    Next i
       
    Dim EndString As String
    EndString = "ENDSEC;" & vbCrLf & "END-ISO"
    myData = Replace(myData, EndString, myLines & EndString)
    
    Open FilePath For Output As #filenum
    Print #filenum, myData
    Close #filenum
End Sub

 

2 likes

Hallo Jerome

Bedankt voor het script, ik heb een test gedaan, het werkt perfect, aan de andere kant kan ik niet rechtstreeks vanuit een assemblage werken met verschillende onderdeelbestanden die punten hebben, klopt dat? Ik moet elk stuk apart openen en het script uitvoeren. Het is op zich geen probleem, maar ik had graag willen kunnen doen wat voor de rest van het bestand (volume en curve), namelijk om op het scherm de delen weer te geven die de punten bevatten en dan een enkel STEP-bestand te krijgen met alle punten. 

Ook een ding, de nummering van de punten wordt aangegeven als GEEN, ik wou dat ik de punten kon benoemen zoals ik wilde, maar ik keek op SW en ik kon deze optie niet vinden. SW geeft een getal, punt1, punt2, enz. automatisch, maar ik had graag de naam van elk punt willen kunnen aangeven en dan tijdens de export in STEP dat de naam behouden blijft. Is dit mogelijk?

Om mijn punt te illustreren, zal ik het CREO-bestand plaatsen dat ik van mijn klant heb ontvangen. Als ik het op SW probeer te openen, vertelt het me dat het een assemblage is en binnenin creëert het een kamer met de stippen. Ik kan het bestand dus goed lezen met alleen de puntjes. Je zult zien dat de stippen allemaal genummerd zijn. 

Nu ben ik me er terdege van bewust dat het verzoek niet eenvoudig is en zelfs als het mogelijk is, maar dit is wat ik zou willen bereiken

In de tussentijd dank ik u allen voor het werk en vooral voor het bieden van een oplossing. 

Vertel me wat je denkt

Bedankt


nuages_de_points_creo.stp
2 likes

Hallo

In feite realiseer ik me dat ik deze macro echt nodig heb om rechtstreeks vanuit een assemblage te werken, anders staan ze bij het opnieuw importeren van de bestanden niet in het juiste coördinatensysteem en passen ze niet in het onderdeel omdat ik in het lokale coördinatensysteem zit en niet in het assemblagecoördinatensysteem.

Is het mogelijk of niet?

Bedankt