Makro zum Ändern der Ausrichtung von Ansichten in SOLIDWORKS

Hallo zusammen, ich suche gerade nach einer Möglichkeit, die Neuausrichtung der Vorderansicht einer Datei zu automatisieren, die direkt von der Website eines Herstellers importiert wurde, da sonst das Teil auf Altium nicht erkannt wird. Es sind nur die Originalaufnahmen, die nicht gut ausgerichtet sind, und die auf die Website hochgeladene Datei erlaubt es mir nicht, sie zu ändern.

Ich denke, Sie können sich die Funktion "Verschieben kopieren " http://help.solidworks.com/2016/french/solidworks/sldworks/hidd_dve_feat_move_surf.htm

Prüfen Sie, ob die Funktion entspricht und in welchem Fall Sie das Makro dessen speichern können, was Sie interessiert (Drehung um 90° auf X oder Y oder Z)

@MaD, so wie ich es verstehen konnte, geht es nicht darum, den Raum zu bewegen, sondern die Sicht auf den Raum zu verändern.

Versuchen Sie mit dem Makrorekorder, sich darauf zu platzieren und zu sehen, ob Sie einen brauchbaren Code haben.

@KVuilleumier ist es die Ausrichtung des Teils, die ich in Bezug auf das Koordinatensystem ändern möchte, so dass die Vorderansicht die gewünschte ist. Ich muss auch die Platzierung des Markers neu definieren, vielleicht hätte ich das zuerst durchgehen sollen. Ich bin ein Anfänger in Solidworks, ich war vorher auf ProE und weiß daher nicht, wie ich vorgehen soll, zumal ich nicht weiß, wie man Makros macht (ich werde es eines Tages lernen müssen). 

Vielen Dank für Ihre Antworten! 

Können Sie den Teil, den Sie haben, an den Anfang stellen und uns sagen, in welche Richtung Sie am Ende wollen?

Dies ist das Stück, das nur dazu da ist, physisch zu veranschaulichen, was ich tun möchte. Die Vorderansicht ist derzeit eine durchbohrte Ansicht, ich möchte die Ausrichtung des Teils in Bezug auf das Koordinatensystem ändern, um die Vorderansicht auf der aktuellen Fläche der Oberseite (nicht gebohrt) zu haben. 

Dieser Code funktioniert, ich überlasse ihn Ihnen, angepasst an Ihre Bedürfnisse

Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc

boolstatus = Part.Extension.SelectByID2("Congé9", "SOLIDBODY", 0.306720518918638, 0.145146136734809, 2.68172410638385E-02, False, 1, Nothing, 0)
Dim myFeature As Object

Set myFeature = Part.FeatureManager.InsertMoveCopyBody2(0, 0, 0, 0, 0, 0, 0, 0, 0, 1.5707963267949, False, 1)
End Sub

Für die Funktion siehe diesen Link

http://help.solidworks.com/2016/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ifeaturemanager~insertmovecopybody2.html

 

Für das SW-Beispielmakro http://help.solidworks.com/2016/english/api/sldworksapi/Move_Bodies_Example_VB.htm

'-------------------------------------------------------------
' Preconditions:
' 1. Specified part document to open exists.
' 2. Run the macro.
'
' Postconditions: All of the bodies in the part document
' are moved to the specified location.
'
' NOTE: Because this part is used elsewhere, do not save
' any changes when closing it.
'--------------------------------------------------------------
Option Explicit
Sub SelectBodies(swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, bodyArr As Variant)
' Select and mark the bodies to move
    Dim swSelMgr As SldWorks.SelectionMgr
    Dim swSelData As SldWorks.SelectData
    Dim body As Variant
    Dim swBody As SldWorks.Body2
    Dim status  As Boolean
    Set swSelMgr = swModel.SelectionManager
    Set swSelData = swSelMgr.CreateSelectData
    If IsEmpty(bodyArr) Then Exit Sub
    For Each body In bodyArr
        Set swBody = body
        swSelData.Mark = 1
        status = swBody.Select2(True, swSelData)
    Next body
End Sub
Sub main()
    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Dim swPart As SldWorks.PartDoc
    Dim bodyArr As Variant
    Dim swFeatMgr As SldWorks.FeatureManager
    Dim swFeat As SldWorks.Feature
    Dim fileName As String
    Dim errors As Long
    Dim warnings As Long
    Set swApp = Application.SldWorks
    fileName = "C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\samples\tutorial\multibody\multi_inter.sldprt"
    Set swModel = swApp.OpenDoc6(fileName, swDocPART, swOpenDocOptions_e.swOpenDocOptions_Silent, "", errors, warnings)
    Set swPart = swModel
    Set swFeatMgr = swModel.FeatureManager
    swModel.ClearSelection2 True    
    ' Get the bodies to move
    bodyArr = swPart.GetBodies2(swAllBodies, false)
    SelectBodies swApp, swModel, bodyArr
    ' Move the bodies
    Set swFeat = swFeatMgr.InsertMoveCopyBody2(0.1, 0.2, 0.3, 0#, 0#, 0#, 0#, 0#, 0#, 0#, False, 1)
  End Sub

 

Vielen Dank für die Hinweise, ich werde versuchen, das alles umzusetzen. Ich werde Sie auf dem Laufenden halten, ob das Makro meinerseits funktioniert.

Nun, ich habe das Makro ausprobiert, nachdem ich den Dreh raus hatte. Ich habe den Dateinamen so geändert, dass er das gewünschte Teil hat, aber beim Ausführen des Makros wurde das Teil nur sehr weit von seinen Ebenen ausgestoßen , aber seine Ausrichtung bleibt gleich und die Ebenen haben auf ihren jeweiligen Oberflächen die gleiche Übereinstimmung wie vor dem Makrolauf. 

Ich werde versuchen, mich besser über mein Problem zu erklären. Ich möchte meine Ansicht von oben nach vorne ändern. Denn wenn ich meine Zeichnung in SW machen möchte, möchte ich ein Projekt der Ansichten meiner Frontebene erstellen. 

Ich hoffe, ich bin klar genug, auch wenn ich zugeben muss, dass ich ein wenig Schwierigkeiten habe, zu erklären, was ich tun möchte, danke auf jeden Fall!

Das zweite Makro ist ein Beispiel mecro in Ihrem Fall geändert

InsertMoveCopyBody2(0.1, 0.2, 0.3, 0#, 0#, 0#, 0#, 0#, 0#, 0#, False, 1)

bis

InsertMoveCopyBody2(0, 0, 0, 0, 0, 0, 0, 0, 0, 1.5707963267949, False, 1)

wobei 1,57 der Rotationswert im Bogenmaß ist

https://www.google.fr/webhp?sourceid=chrome-instant&rlz=1C1RLNS_frFR739FR739&ion=1&espv=2&ie=UTF-8#q=90deg+en+radians

 

Weitere Informationen zur Funktion "InsertMoveCopy " http://help.solidworks.com/2016/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.ifeaturemanager~insertmovecopybody2.html

Das Makro funktioniert einwandfrei, nachdem ich die Zeile insertmovecopybody ersetzt habe, aber ich habe festgestellt, dass ich das Teil gerne um 180° auf Y gedreht hätte, während mein Koordinatensystem und meine Ebenen fixiert bleiben.

Vielen Dank für dieses Makro, das für mich sehr nützlich ist! 

Ich lasse Sie Ihr Problem in diesem Fall als gelöst markieren, was die Y-Drehung betrifft, ich lasse Sie den Wert in dieselbe Zeile setzen, die Sie geändert haben, schauen Sie in der zuvor bereitgestellten Hilfe nach, um die Position der Y-Drehung zu lochen

Okay und zur Information habe ich auch den Pfad des Dateinamens so geändert, dass beim Ausführen des Makros mein Teil in SOLIDWORKS aktiv ist und nicht immer derselbe ist wie der Dateiname, auf dem die Operation ausgeführt wird. 

Nochmals vielen Dank für Ihre sehr wertvolle Hilfe!