Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Länge und Durchmesser auslesen mit VB

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
  
Innovationstag mit SolidCAM und Plogmann bei HEDELIUS in Meppen
Autor Thema:  Länge und Durchmesser auslesen mit VB (981 mal gelesen)
MichaelHammer
Mitglied


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

Beiträge: 6
Registriert: 13.04.2005

erstellt am: 13. Apr. 2005 12:11    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

Ich möchte für ein Add-In die Länge und den Durchmesser aller Schrauben in meiner Baugruppe auslesen. Ich finde alle Schrauben über ihr Kennwort "Screw" mittels Feature.name, habe jedoch keine Ahnung wie ich an die Geometriedaten herankomme.

Kann mir jemand weiterhelfen?

Danke

Michael Hammer

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

Andreas Müller
Mitglied
Masch. Ing. HTL / Betriebsing. STV


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

Beiträge: 1151
Registriert: 11.04.2001

erstellt am: 13. Apr. 2005 13:13    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 MichaelHammer 10 Unities + Antwort hilfreich

Hallo Michael.

Erst mal: Willkommen im SWX-Forum!

Wenn z.B. in allen Skizzen der Schraubenmodelle das Mass für den Durchmesser resp. Länge gleich heissen, könntest Du das richtige Mass raussuchen und dann den Wert auslesen.

------------------
Gruss
Andreas
A+E Müller AG

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

MichaelHammer
Mitglied


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

Beiträge: 6
Registriert: 13.04.2005

erstellt am: 13. Apr. 2005 15:34    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

Hm

Leider habe ich das Problem, dass die Schrauben zwar meistens schon unterschiedlich heissen (und somit andere Geometriedaten haben) aber es gibt auch fast gleiche Schrauben, die sich nur in der Länge unterscheiden aber genau gleich heissen, deswegen benötige ich unbedingt die Geometriedaten.

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

ArsDesignare
Mitglied



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

Beiträge: 50
Registriert: 19.03.2005

Dell M60
Win2k SP4
SWX2004 SP5.0

erstellt am: 13. Apr. 2005 16:23    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 MichaelHammer 10 Unities + Antwort hilfreich

Handelt es sich denn bei so einer Schraube in einer Baugruppe nicht eher um eine Komponente als um ein Feature?


Vielleicht mal eine Beispiel-Baugruppe posten!?!

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

MichaelHammer
Mitglied


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

Beiträge: 6
Registriert: 13.04.2005

erstellt am: 13. Apr. 2005 17:06    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


schraubenpark.jpg

 
Hab mal eine Beispielbaugruppe ohne störendes Beiwerk angelegt.

Sollte die Längen und Durchmesser dieser Schrauben auslesen können.

Gruß

Michael Hammer

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

u.clemens
Mitglied
Konstrukteur


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

Beiträge: 964
Registriert: 04.07.2000

engineer's law
o cheap
o fast
o good
check only two !

erstellt am: 13. Apr. 2005 18:10    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 MichaelHammer 10 Unities + Antwort hilfreich

also ich würde das Problem mit Dateieigenschaften zu lösen versuchen ...

einerseits könnte man allen Schrauben die Eigenschaft "Hallo, ich bin eine Schraube" mitgeben und die kann man dann per API auswerten,
anderseits (und aus meiner Sicht noch besser) - Du linkst die betreffenden Werte, die Du brauchst, in Dateieigenschaften und wertest diese dann aus.

P.S. haben denn Deine Schrauben überhaupt Bemaßungen? Also wir verwenden die VarBox und das sind alles Import-Feature - die somit keine Maße haben ...

------------------
mfg uc

[Diese Nachricht wurde von u.clemens am 13. Apr. 2005 editiert.]

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

MichaelHammer
Mitglied


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

Beiträge: 6
Registriert: 13.04.2005

erstellt am: 13. Apr. 2005 18:16    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

Auf das wollte ich im Prinzip hinaus, doch welche API-Klassen/Methoden/Eigenschaften kann muss ich dazu verwenden?

MfG

Michael Hammer

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

Andreas Müller
Mitglied
Masch. Ing. HTL / Betriebsing. STV


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

Beiträge: 1151
Registriert: 11.04.2001

erstellt am: 14. Apr. 2005 08:09    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 MichaelHammer 10 Unities + Antwort hilfreich

Hallo Michael.
Dann empfehle ich Dir, mal die "Suchen"-Funktion mit dem Stichwort "Dateieigenschaft". Da bekommst Du so einiges an sehr nützlichen Informationen.

------------------
Gruss
Andreas
A+E Müller AG

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

MichaelHammer
Mitglied


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

Beiträge: 6
Registriert: 13.04.2005

erstellt am: 14. Apr. 2005 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

Ok, meiner Ansicht nach läuft das irgendwie in die falsche Richtung, deshalb möchte ich mal meinen Quellcode hier reinstellen:

'Variablen, Objekte Anlegen
Dim CurModelDoc As SldWorks.ModelDoc2
Dim CurFeature As SldWorks.feature
Dim x As Integer
Dim Komponentenzaehler As Integer
Dim Komponentenfeld() As String
Dim Komponentenlaenge() As Double
Dim komponentendurchmesser() As Double

'Variablen, Objekte Initialisieren
x = 0
Set CurModelDoc = swApp.ActiveDoc()
Set CurFeature = CurModelDoc.FirstFeature()

'Anzahl der Elemente ermitteln
While Not CurFeature Is Nothing
    Komponentenzaehler = Komponentenzaehler + 1
    Set CurFeature = CurFeature.GetNextFeature()
Wend

'Feldgroessen festlegen
ReDim Komponentenfeld(Komponentenzaehler + 1)
ReDim Komponentenlaenge(Komponentenzaehler + 1)
ReDim komponentendurchmesser(Komponentenzaehler + 1)

Set CurFeature = CurModelDoc.FirstFeature()

'Auslesen der Komponenteneigenschaften in die Komponentenfelder
While Not CurFeature Is Nothing
    Komponentenfeld(x) = CurFeature.Name
    'Komponentenlaenge(x) = ???
    'Komponentendurchmesser(x) = ???
    x = x + 1
    Set CurFeature = CurFeature.GetNextFeature()
Wend

Das ist im Prinzip der Teil, wo ich nicht weiterkomme, denn alles weitere (Stringverarbeitung, Rechnungen etc.) ist mit Visual Basic sehr leicht realisierbar!

Vielen Dank für die bisherigen Tipps

Michael Hammer

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

PASCAM
Mitglied
Diplom Informatiker


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

Beiträge: 67
Registriert: 25.11.2002

erstellt am: 14. Apr. 2005 13:37    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 MichaelHammer 10 Unities + Antwort hilfreich

Hallo Michael,

Du hast doch schon fast alles:
Das CutFeature ist ein Feature, daher bekommst Du mit GetFirstDiplayDimension das erste Maß, die weteren mit GetNect5 von DisplayDimension. Das eigentliche Maß bekommst Du vom DisplayDimension mittels GetDimension.
Jetzt kann es sein, dass der Durchmesser in der Skizze ist. Dann musst Du Dir vom Feature einfach die Skizze geben lassen (Child oder Parent) und das gleiche machen (auch eine Skizze ist ein Feature).

Damit muesstest Du Dein Problem loesen koennen.

Gruss, Ralph

------------------
PASCAM Ralph Müller
Softwareentwicklung

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

Andreas Müller
Mitglied
Masch. Ing. HTL / Betriebsing. STV


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

Beiträge: 1151
Registriert: 11.04.2001

erstellt am: 14. Apr. 2005 13:44    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 MichaelHammer 10 Unities + Antwort hilfreich

Hallo Michael.

Zitat:
Original erstellt von MichaelHammer:
Ok, meiner Ansicht nach läuft das irgendwie in die falsche Richtung...

Hmmm...kann sein, dass wir komplett verschiedene Sprachen sprechen, aber meineserachtens läuft das schon in die richtige Richtung. Nur befürchte ich ,dass Du (oder ich) das nicht richtig verstehst. Ich denke es gibt für Dich 2 Möglichkeiten:

1. Du schreibst in eine Dateieigenschaft "Inbusschraube DIN 912 M10x25". Dann kannst Du in Deinem Programm diese Eigenschaft auslesen und die gewünschten Werte ("M10 und "25") extrahieren.

Wenn Du keine solche Eigenschaft hast, dannst Du sie logischerweise auch nicht auslesen, d.h. du könntest

2. Das Mass in Deinem Modell das die Länge resp. Durchmesser definiert, bekommt einen spezifischen Namen (z.B. "Länge"). Dann kannst Du die Features durchackern bis Du dieses Mass gefunden hast und dann den Wert auslesen.

If MassName = "Länge" then
    Komponentenlaenge(x) = Wert_von_Mass
End If
If MassName = "Durchmesser" then
    Komponentendurchmesser(x) = Wert_von_Mass
End If

3. Vielleicht gibt es noch einen anderen Weg...

Du musst aber bei allen Möglichkeiten eine Standardiesierung über alle Komponenten (Schrauben) vorgeben, damit Dein Programm sagen kann: "Wenn ich das gefunden habe, kann ich den Wert auslesen". Sonst hast Du keine Chance, ich wüsste jedenfalls nicht wie

------------------
Gruss
Andreas
A+E Müller AG

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

Piet
Mitglied
Konstruktionsleiter & Konstrukteur


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

Beiträge: 661
Registriert: 20.11.2001

SWx 2021

erstellt am: 14. Apr. 2005 15:21    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 MichaelHammer 10 Unities + Antwort hilfreich

Vielleicht versteh ich dein Problem ja auch falsch, aber die Anzahl und Größe von Schrauben braucht man doch für jede Stückliste.

Ich mach es daher im Prinzip wie Andreas:
Die Schrauben sind als Konfigurationsteile angelegt. In der Tabelle erzeuge ich mir mit der Excel-Funktion "verketten" eine Spalte mit dem Titel "Beschreibung", die aus den Tabellenmaßen automatisch z.B. den Wert "M6x30" erzeugt. Dazu gebe ich der Schraube die benutzerdefinierte Eigenschaft "Benennung", z.B. mit dem Wert "Schraube DIN912".
Die Eigenschaften "Benennung" und "Beschreibung" frage ich in meiner Stückliste ab, und hab damit meine gewünschte Übersicht.

Piet

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

MichaelHammer
Mitglied


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

Beiträge: 6
Registriert: 13.04.2005

erstellt am: 20. Apr. 2005 09:38    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

Um Die Eigenschaften Länge und Durchmesser zuzuweisen kann doch nur während der Konstruktion geschehen, und das ist nicht vorgesehen, sondern nur eine nachträgliche analyse. Und wie in dem bild gezeigt, haben zwei Schrauben den gleichen Namen, aber unterschiedliche Länge, was aber über den Namen nicht bestimmt werden kann.

Es kann durchaus sein, dass ich ihre Herangehensweise nicht verstehe, aber den Programmiertipp fand ich irgendwie besser (auch wenn er nicht so richtig funktioniert hat)

aber hier mal der erweiterte code, meine frage dazu währe, wie sketch verwendet werden müsste.

Vielen Dank für die bisherigen Vorschläge, Anregungen

Set CurFeature = CurModelDoc.FirstFeature()

While Not CurFeature Is Nothing

'MsgBox "jetzt bin ich im feature" + CurFeature.Name

'Funktion prüft of das Teil eine Schraube ist...
If treffer(CurFeature.Name) = True Then
'Set CurSubFeature = CurFeature.GetFirstSubFeature
'While Not CurSubFeature Is Nothing
MsgBox "jetzt bin ich im subfeature" + CurSubFeature.Name
Set CurDispDimension = CurFeature.GetFirstDisplayDimension
While Not CurDispDimension Is Nothing
MsgBox "jetzt bin ich in der dimension!"
Set CurAnnotation = CurDispDimension.GetAnnotation
Set CurDimension = CurDispDimension.GetDimension
MsgBox CurDimension.Value
MsgBox CurDimension.FullName
MsgBox CurAnnotation.Width
MsgBox CurDimension.GetSystemValue2("")
Set CurDispDimension = CurFeature.GetNextDisplayDimension(CurDispDimension)
Wend

End If
Set CurFeature = CurFeature.GetNextFeature()
Wend

tut aber noch nicht so ganz!

MfG

Michael Hammer

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