Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Start- und Endwerte alle Linien einer Skizze bestimmen

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 SOLIDWORKS
  
HEDELIUS Hausmesse 2024
Autor Thema:  Start- und Endwerte alle Linien einer Skizze bestimmen (1277 mal gelesen)
GuidoCAD
Mitglied



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

Beiträge: 202
Registriert: 27.11.2009

SolidWorks Premium 2013 SP 5.0 (de)
Win7 Pro N SP 1 (de)

erstellt am: 26. Mrz. 2014 12:36    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


SMA.png

 
Hallo,

derzeit entwerfe ich einige Leiterplatten mit der EAGLE PCB Design Software. Hierbei kann der Fall eintreten, dass ein Bauteil in der Bibliothek von EAGLE noch nicht definiert ist und ich es selbst anlegen muss. Beim Anlegen eines neuen Bauteils erstellt man für die Boardansicht des Bauteils ein einfaches Symbol (vergl. Anhang). Leider ist das Anlegen dieser Symbole in EAGLE nicht ganz so komfortabel wie das Anlegen einer Skizze in SolidWorks. Ich würde daher sehr gerne die Skizzen in SolidWorks erstellen und diese dann exportieren. Die Anforderungen sind hierbei nicht sehr hoch. Die Skizze besteht (in der Regel) nur aus einzelnen Linien. Ich benötige eigentlich nur die xy-Koordinaten der Start- und Endwerte der Linien. Momentan habe ich keinerlei Ansatz hiefür. Habt ihr mir einen Tipp?

Mit freundlichen Grüßen
Guido

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 26. Mrz. 2014 12:59    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 GuidoCAD 10 Unities + Antwort hilfreich

Hallo GuidoCAD,

es gibt in der API-Hilfe ein Makro namens Get Lines in Sketch Example (VBA), das sollte als Basis oder sogar als Ergebnis schon recht gut sein.

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de

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

GuidoCAD
Mitglied



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

Beiträge: 202
Registriert: 27.11.2009

SolidWorks Premium 2013 SP 5.0 (de)
Win7 Pro N SP 1 (de)

erstellt am: 26. Mrz. 2014 22: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

Hallo Stefan,

vielen Dank für den Tipp. Ausgehend von dem von Dir verlinkten Makro habe ich mir das im Folgenden angefügte Makro erstellt. Markiert man in SolidWorks eine Skizze und führt das Makro aus wird eine Liste erstellt, die für jede Linie der Skizze den zugehörigen EAGLE-Befehl enthält. An den Beginn der Liste werden noch zwei EAGLE-Befehle vorangestellt. Der erste Befehl dient der "Layer"-Auswahl, der zweite Befehl stellt EAGLE so ein, dass die angegebenen Punkte der Linien direkt verbunden werden. Die erstellte Befehlsliste wird im Debugfenster ausgegeben und in die Zwischenablage kopiert. Damit der Befehl "CommandList.PutInClipboard" keine Fehlermeldung hervorruft muss der Verweis auf die "Microsoft Forms 2.0 Object Library" ("%windir%\system32\FM20.DLL") gesetzt sein. Hierfür in der Visual Basic Programmierumgebung unter "Extras" => "Verweise..." das entsprechende Häkchen setzten. Über die Konstanten am Anfang des Makros kann man den x- und y-Werten noch einen Offset mitgeben, die Linienbreite vorgeben und den EALGE-Layer auf dem die Linien erstellt werden sollen angeben. Zu guter Letzt kann auch noch die Anzahl der Nachkommastellen angegeben werden mit denen die x- und y-Werte ausgegeben werden.

Bitte beachten:

- Vor dem Aufruf des Makros eine Skizze auswählen (Die Skizze darf nicht zur Bearbeitung geöffnet sein).
- Das Makro fängt keinerlei Fehler ab.

Mit freundlichen Grüßen
Guido

Code:
Dim swApp As Object
Option Explicit
'------------------------------------------------
' Preconditions: Model document is open and a sketch is selected.
' Postconditions: None
'-------------------------------------------------
Sub main()
   
    Const conXOffset = 0    'x-Offset in mm
    Const conYOffset = 0    'y-Offset in mm
    Const conLineWidth = 0.025  'Width of lines in inch
    Const conEagleLayer = 51    'tdocu => 51
                                'tplace => 21
    Const conDecimalPlaces = 6  'Number of decimal places used for output
   
    Dim swApp                  As SldWorks.SldWorks
    Dim swModel                As SldWorks.ModelDoc2
    Dim swPart                  As SldWorks.PartDoc
    Dim swSelMgr                As SldWorks.SelectionMgr
    Dim swFeat                  As SldWorks.Feature
    Dim swSketch                As SldWorks.Sketch
    Dim NumLines                As Long
    Dim vLines                  As Variant
    Dim i                      As Variant
    Dim CommandList            As DataObject
   
    Set swApp = CreateObject("SldWorks.Application")
    Set swModel = swApp.ActiveDoc
    Set swPart = swModel
    Set swSelMgr = swModel.SelectionManager
    Set swFeat = swSelMgr.GetSelectedObject5(1)
    Set swSketch = swFeat.GetSpecificFeature2
    Set CommandList = New DataObject
   
    NumLines = swSketch.GetLineCount2(1)    'Exclude crosshatch lines
    vLines = swSketch.GetLines2(1)  'Exclude crosshatch lines

    CommandList.SetText "Layer " & conEagleLayer & ";"
    CommandList.SetText CommandList.GetText + vbNewLine + "SET Wire_Bend 2;"
   
    For i = 0 To NumLines - 1
    CommandList.SetText CommandList.GetText + vbNewLine & _
        "Wire " & Replace(CStr(Round(conLineWidth, conDecimalPlaces)), ",", ".") & _
        " (" & _
        Replace(CStr(Round(vLines(12 * i + 6) * 1000 / 25.4, conDecimalPlaces)), ",", ".") & " " & _
        Replace(CStr(Round(vLines(12 * i + 7) * 1000 / 25.4, conDecimalPlaces)), ",", ".") & _
        ") (" & _
        Replace(CStr(Round(vLines(12 * i + 9) * 1000 / 25.4, conDecimalPlaces)), ",", ".") & " " & _
        Replace(CStr(Round(vLines(12 * i + 10) * 1000 / 25.4, conDecimalPlaces)), ",", ".") & _
        ");"
    Next i
   
    CommandList.PutInClipboard
   
    Debug.Print "----------"
    Debug.Print CommandList.GetText

End Sub



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)2024 CAD.de | Impressum | Datenschutz