| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| Planen, verwalten & Kosten optimieren: Effizienter Layoutentwurf Ihrer Industrieanlagen mit DraftSight® |
Autor
|
Thema: Marko für Mittellinien (1510 / mal gelesen)
|
krassdi Mitglied Konstrukteur
Beiträge: 17 Registriert: 03.12.2019 SolidWorks 2022 SP5.0
|
erstellt am: 11. Dez. 2019 08:15 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen. Versuche mich an einem Makro, doch es Eckt noch. Das Marko sollte folgendes machen. Ich wähle in einer Zeichnung eine Ansicht aus, anschliessend wird eine horizontale Linie in die Ansicht gelegt, diese Linie soll dann auf den Ursprung Deckungsgleich verknüpft werden. Ich habe in der API Hilfe einiges durch sucht, jedoch finde ich nicht den Befehl der mit die Linie auf den Ursprung verknüpft Habt ihr hier ein Ansatz? Besten Dank für euere Unterstützung Krassdi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SolidWehr Mitglied
Beiträge: 16 Registriert: 09.10.2019
|
erstellt am: 11. Dez. 2019 08:30 <-- editieren / zitieren --> Unities abgeben: Nur für krassdi
Hallo krassdi, bist du dir sicher das du in einer Zeichnung eine Skizzenlinie zeichnen willst? Weil einen Befehl zum einfügen von Mittellinien gibt es in der Zeichnungsumgebung da brauchst du nicht etwas erfinden! Grüße ------------------ ----------------------------------------- Vielen Dank für die Hilfe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
krassdi Mitglied Konstrukteur
Beiträge: 17 Registriert: 03.12.2019 SolidWorks 2022 SP5.0
|
erstellt am: 11. Dez. 2019 08:43 <-- editieren / zitieren --> Unities abgeben:
Hallo SolidWehr Ja wir machen die Linie in die Ansicht und vermassen dann von/auf diese Linie Im Anhang ein Musterbild Gruss Krassdi [Diese Nachricht wurde von krassdi am 11. Dez. 2019 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
krassdi Mitglied Konstrukteur
Beiträge: 17 Registriert: 03.12.2019 SolidWorks 2022 SP5.0
|
erstellt am: 11. Dez. 2019 08:43 <-- editieren / zitieren --> Unities abgeben:
|
Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
Beiträge: 3189 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 11. Dez. 2019 10:48 <-- editieren / zitieren --> Unities abgeben: Nur für krassdi
Zitat: Original erstellt von krassdi: … jedoch finde ich nicht den Befehl der mit die Linie auf den Ursprung verknüpft …
Hallo, manchmal - aber nur manchmal - hilft auch das "Makro aufzeichnen" bei mir sind da:
Code: Set Part = swApp.ActiveDoc boolstatus = Part.ActivateView("Zeichenansicht6") Set myView = Part.ActiveDrawingView myView.FocusLocked = True Part.ClearSelection2 True Set skSegment = Part.SketchManager.CreateCenterLine(2.227059, -0.684515, 0#, 3.764769, -0.684515, 0#) boolstatus = Part.Extension.SelectByID2("Point1@Ursprung@Baugruppe@Zeichenansicht", "EXTSKETCHPOINT", 0, 0, 0, True, 0, Nothing, 0) Part.SketchAddConstraints "sgCOINCIDENT"
Die Koordinaten, Ansichtsnamen, Baugruppennamen, … musst du natürlich entsprechend ermitteln. Erste Aufzeichnung lieferte Linie, danach Linie separat wieder aktivieren mit SelectByID2. Dabei steht dann schon ein Name drin, die Koordinaten (Blatt/Ansicht) müssen stimmen, … Direkt nach dem Erzeugen ist die Linie aber noch selektiert, da braucht man nur den Ursprung dazusuchen. So wie oben oder ähnlich. Gruß, Christian
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
krassdi Mitglied Konstrukteur
Beiträge: 17 Registriert: 03.12.2019 SolidWorks 2022 SP5.0
|
erstellt am: 11. Dez. 2019 11:02 <-- editieren / zitieren --> Unities abgeben:
Hallo Christian Das Aufzeichnen kenne ich, doch wenn ich dies mache liegt die Linie lose in der Anicht, und sollte noch auf den Ursprung der Ansicht Deckungsgleich verknüpft werden. Gruss Krassdi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
Beiträge: 3189 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 11. Dez. 2019 11:28 <-- editieren / zitieren --> Unities abgeben: Nur für krassdi
hast du mein Post auch bis zum Ende gelesen? Vermutlich liegt sie lose, weil dann der Name für Select nicht stimmt für die Linie. entweder den Namen rausnehmen aus dem Makrotext oder halt - wie in meinem Beispiel die Linie direkt nach dem Erzeugen in der Selektion behalten. Gruß, Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
krassdi Mitglied Konstrukteur
Beiträge: 17 Registriert: 03.12.2019 SolidWorks 2022 SP5.0
|
erstellt am: 11. Dez. 2019 11:47 <-- editieren / zitieren --> Unities abgeben:
Hallo Christian Das mit der Linie in die Ansicht einfügen klappt, sie bleibt auch selektiert. Jedoch sollte das Makro die selektierte Linie auch noch mit dem Ursprung der Ansicht verknüpfen (Deckungsgleich). Dies ist mein Problem, sorry wenn ich auf dem Schlauch stehe. Gruss krassdi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
Beiträge: 3189 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 11. Dez. 2019 11:58 <-- editieren / zitieren --> Unities abgeben: Nur für krassdi
du musst in der vorletzten Zeile sowohl den Baugruppennamen als auch den Ansichtsnamen anpassen, dann sollte das gehen. Am ende wäre natürlich schöner, wenn das Makro das selber herausfindet … Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Winni-two Mitglied Ing. Maschb.
Beiträge: 154 Registriert: 12.03.2010 SW 2021 SP5 Intel Xenon W2135 @3.7GHz Win 10 64 bit Graka: Nvidia Quadro P4000 32 GB Ram
|
erstellt am: 11. Dez. 2019 12:22 <-- editieren / zitieren --> Unities abgeben: Nur für krassdi
Hallo krassdi, probiere mal folgendes schnell zusammengeschustertes Makro: (zuvor eine Ansicht auswählen) Dim swApp As Object Dim Part As Object Dim swView As SldWorks.View Dim sw_View_Name As String Dim boolstatus As Boolean Sub main()
Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc Set swView = Part.ActiveDrawingView 'SelectionMgr.GetSelectedObject3(1) sw_View_Name = "Point1@Ursprung@" & swView.RootDrawingComponent.Name & "@" & swView.Name boolstatus = Part.ActivateView(swView.Name) Set skSegment = Part.SketchManager.CreateCenterLine(-0.05, -0.05, 0#, 0.05, -0.05, 0#) boolstatus = Part.Extension.SelectByID2(sw_View_Name, "EXTSKETCHPOINT", 0, 0, 0, True, 0, Nothing, 0) Part.SketchAddConstraints "sgCOINCIDENT" Part.ClearSelection2 True boolstatus = Part.ActivateView(swView.Name) Set skSegment = Part.SketchManager.CreateCenterLine(0.04, -0.04, 0#, 0.04, 0.04, 0#) boolstatus = Part.Extension.SelectByID2(sw_View_Name, "EXTSKETCHPOINT", 0, 0, 0, True, 0, Nothing, 0) Part.SketchAddConstraints "sgCOINCIDENT" Part.ClearSelection2 True End Sub Gruss Winni
[Diese Nachricht wurde von Winni-two am 11. Dez. 2019 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
krassdi Mitglied Konstrukteur
Beiträge: 17 Registriert: 03.12.2019 SolidWorks 2022 SP5.0
|
erstellt am: 11. Dez. 2019 13:28 <-- editieren / zitieren --> Unities abgeben:
|
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 11. Dez. 2019 14:39 <-- editieren / zitieren --> Unities abgeben: Nur für krassdi
Hallo, darf ich trotzdem nochmal Fragen wieso das ganze per Makro erfolgen muss? Weil die beiden Symmetrielinien kann mann doch recht flott mit dem Mittellinien-Befehl erstellen? Oder ist das jetzt nur Zufall das dein Beispiel symmetrisch aussieht, wenn ja hab ich nichts gesagt . Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete [Diese Nachricht wurde von bk.sc am 11. Dez. 2019 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
krassdi Mitglied Konstrukteur
Beiträge: 17 Registriert: 03.12.2019 SolidWorks 2022 SP5.0
|
erstellt am: 11. Dez. 2019 14:58 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd Aus dem Grund der Sicherheit, denn wenn die Aussenkanten facettiert sind ist die Gefahr gross das ich die falsche Linie erwische. Somit wird dann nicht vom Ursprung sondern von irgendwo vermasst. Ein weiterer Vorteil, wenn nicht vom Ursprung vermasst werden muss, kann ich die Linie einfach abhängen und verschieben, was eine zusätzliche Flexibilität mit sich bringt. Gruss Krassdi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |