Hallo
Ik heb een assemblage met verschillende onderdelen, waaronder onderdelen die rondingen en punten bevatten (in 3D-schetsen).
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.
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
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:
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.
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
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
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.
@ 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
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.
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
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
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