ich habe hier ein Macro (nicht von miŕ

und keine Ahnung woher ich es habe....)
kann es aber wegen den BOFH nicht hochladen.
deswegen der Text als copy&paste:
Punkt im 3 D selektieren und Macro ausführen...
Dim swApp As Object
Dim Part As Object
Dim SelMgr As Object
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set SelMgr = Part.SelectionManager
Set FS = CreateObject("Scripting.FileSystemObject")
' Erzeugen des CSV-Dateinamens
dateiname = Replace(UCase(Part.GetPathName), "SLDPRT", "CSV")
' Wenn das Modell nicht gespeichert ist, kann keine CSV-Datei erzeugt werden --> Abbruch
If (dateiname = "") Then
MsgBox "Bitte das Model speichern!", vbCritical, "Erfassung Koordinaten"
Exit Sub
End If
' Freundliche Begrüßung oder Abbruch
Retval = MsgBox("Die ausgewählten Punkt werden in eine CSV-Datei: " & dateiname & " übertragen!" & _
Chr(13) & Chr(13) & "Achtung! Bitte NUR Punkte selektieren!", 33, "Erfassung Koordinaten")
If Retval = 2 Then Exit Sub
' CSV-Datei definieren
Set CSVDatei = FS.CreateTextFile(dateiname, True)
' Überschriften schreiben
CSVDatei.WriteLine "Nr." & ";" & "X" & ";" & "Y" & ";" & "Z"
' Selektierte Punkte zählen
oc = SelMgr.GetSelectedObjectCount
' Wenn Ergebnis der Zählung gleich Null --> Abbruch
If (oc = 0) Then
MsgBox "Es ist nichts selektiert!", vbCritical, "Erfassung Koordinaten"
Exit Sub
End If
' Für jedes gezählte Element ...
For oi = 1 To oc Step 1
' Koordinaten in X, Y und Z erfassen
pointx = SelMgr.GetSelectionPoint(oi)
PunktX = pointx(0) * 1000
PunktY = pointx(1) * 1000
PunktZ = pointx(2) * 1000
' Formatierung der Werte festgelegen
Formatierung = "#0.00"
' Formatierung durchführen
PunktX = Format(PunktX, Formatierung)
PunktY = Format(PunktY, Formatierung)
PunktZ = Format(PunktZ, Formatierung)
' Text erstellen
Text = oi & ";" & PunktX & ";" & PunktY & ";" & PunktZ
' Zeile in CSV-Datei schreiben
CSVDatei.WriteLine Text
Next
' CSV-Datei schließen
CSVDatei.Close
' Abfrage, ob SCV-Datei gezeigt werden soll
Retval = MsgBox(dateiname & " erstellt." & Chr(13) & Chr(13) & "Soll die Datei jetzt angezeigt werden?", 292, "Erfassung Koordinaten")
' Wenn JA, dann in Notepad anzeigen
If Retval = 6 Then start = Shell("notepad " & dateiname, 1)
End Sub
getesten in SWX
2016 evtl. noch die Verweise anpassen.
------------------
Wenn ,Wenn....Wenn meine Tante Nüsse hätte, dann wäre sie mein Onkel....
Nachtrag:
Händische Variante:
Zeichnung ableiten
Tabelle einfügen
3 Spalten (Punktnamen,x-Wert,Y-Wert)
n Zeilen für n Punkte
dann die entsprechende Zelle in der Tabelle anklicken und danach auf das entsprechende Maß auf der Zeichnung klicken.
Warscheinlich ist das Makro schneller auch wenn du dann aus der CSV-Datei die Z-Koordinaten löschen musst.
HTH
[Diese Nachricht wurde von Olaf Wolfram am 17. Dez. 2018 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP