Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Typ bei Gewindedefinition lesen und setzen

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
Autor Thema:  Typ bei Gewindedefinition lesen und setzen (3512 mal gelesen)
Tiberius
Mitglied
 


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

Beiträge: 414
Registriert: 19.02.2002

erstellt am: 11. Aug. 2011 11:28    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,

angenommen es wurde eine Bohrung mit "kein Standard" oder "Standardgewinde" als Typ bei der Gewindedefinition angelegt, wie lese ich diesen Parameter aus? An den Durchmesser und die Steigung komme ich Problemlos ran, da gibts genügend Beispiele, jedoch zum Auslesen oder sogar setzen des Typs habe ich nichts gefunden.

Gruß

Tiberius

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

DanielFr.
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 11. Aug. 2011 12:25    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 Tiberius 10 Unities + Antwort hilfreich

Hallo,

in einem "Hole"-Objekt gibt es eine HoleThreadDescription. Hier steht in der Eigenschaft "Value" z.B. M8x1 bei einem metrischen Feingewinde. Ist "kein Standard" in den Gewindedefinitionen eingestellt ist der Wert leer. Somit kommst du auf die gewünschten Eigenschaften und kannst diese auslesen

------------------
MFG Daniel

Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...)

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

Tiberius
Mitglied
 


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

Beiträge: 414
Registriert: 19.02.2002

erstellt am: 11. Aug. 2011 12:33    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,

das hatte ich schon gesehen, nur hat es einen Fehler ausgeworfen.

.SelHole.Diameter.Value und
.SelHole.ThreadPitch.Value geben einen Wert aus.

.SelHole.ThreadDescription.Value bringt einen Fehler.

Gruß

Tiberius

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

meisterlumpi
Mitglied



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

Beiträge: 118
Registriert: 15.04.2011

Intel Core2 Quad Q6600 2.40 GHz | 4 GB RAM | Win7x64

erstellt am: 11. Aug. 2011 12:43    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 Tiberius 10 Unities + Antwort hilfreich

setzen geht mit

Code:

' Standardgewinde
hole1.ThreadingMode = catSmoothHoleThreading
hole1.ThreadSide = catRightThreadSide
hole1.ThreadingMode = catThreadedHoleThreading
hole1.CreateStandardThreadDesignTable catHoleMetricThickPitch

' Kein Standard
hole1.ThreadingMode = catSmoothHoleThreading
hole1.ThreadSide = catRightThreadSide
hole1.ThreadingMode = catThreadedHoleThreading

' Feingewinde
hole1.ThreadingMode = catSmoothHoleThreading
hole1.ThreadSide = catRightThreadSide
hole1.ThreadingMode = catThreadedHoleThreading
hole1.CreateStandardThreadDesignTable catHoleMetricThinPitch


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

Tiberius
Mitglied
 


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

Beiträge: 414
Registriert: 19.02.2002

erstellt am: 11. Aug. 2011 13:17    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

Und wie rufe ich den Inhalt der Parameter ab von:

Code:
hole1.ThreadingMode
hole1.ThreadSide
hole1.ThreadingMode

Und wie hole ich mir den hier gesetzten Wert?:

Code:
hole1.CreateStandardThreadDesignTable catHoleMetricThickPitch

Gruß

Tiberius

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

meisterlumpi
Mitglied



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

Beiträge: 118
Registriert: 15.04.2011

Intel Core2 Quad Q6600 2.40 GHz | 4 GB RAM | Win7x64

erstellt am: 11. Aug. 2011 13:40    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 Tiberius 10 Unities + Antwort hilfreich

den wert von

Code:

hole1.ThreadingMode
hole1.ThreadSide

kannst du wie gewohnt abrufen

Code:

TM = hole1.ThreadingMode

ThreadSide ist 0 oder 1 glaub ich, also links oder rechts. welche werte die parameter genau haben können steht in der Hilfe (F1).

wie man den wert von StandardThreadDesignTable ausließt weiß ich nicht.
Gruß

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

Tiberius
Mitglied
 


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

Beiträge: 414
Registriert: 19.02.2002

erstellt am: 11. Aug. 2011 13:51    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

Danke,

das hat geholfen. Ich hatte die Werte (0) schon herausbekommen nur ich hab dem "Frieden" nicht getraut.

Code:
hole1.ThreadSide = 0 '0 = Rechtsgewinde, 1 = Linksgewinde
hole1.ThreadingMode = 0 '0 = Gewinde vorhanden, 1 = kein Gewinde vorhanden

Vielleicht hat sonst noch wer eine Idee bezüglich der StandardThreadDesignTable.

[Diese Nachricht wurde von Tiberius am 11. Aug. 2011 editiert.]

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

meisterlumpi
Mitglied



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

Beiträge: 118
Registriert: 15.04.2011

Intel Core2 Quad Q6600 2.40 GHz | 4 GB RAM | Win7x64

erstellt am: 11. Aug. 2011 14:35    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 Tiberius 10 Unities + Antwort hilfreich

siehe Hole (Object)

Property ThreadingMode() As CatHoleThreadingMode
  Values für CatHoleThreadingMode
  catThreadedHoleThreading - The hole is threaded -> = 0
  catSmoothHoleThreading - The hole is smooth threaded -> = 1

Property ThreadSide() As CatHoleThreadSide
  Values für CatHoleThreadSide:
  catRightThreadSide - The hole is right-threaded -> = 0
  catLeftThreadSide  - The hole is left-threaded -> = 1

anstatt

Code:
hole1.ThreadSide = 0
könntest du auch
Code:
hole1.ThreadSide = catRightThreadSide
schreiben. im prinzip das selbe nur man kann sich mehr drunter vorstellen als bei 0.

auf der seite stehen auch alle methoden für das objekt hole. und es sieht schlecht aus für das auslesen des ThreadDesignTable. dachte es geht vielleicht über HoleThreadDescription aber mittlerweile denke ich mit vba geht es gar nicht. könnte die funktion auch gebrauchen, daher lasse ich mich gern eines besseren belehren.

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

Pietzonka
Mitglied
Maschinening.


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

Beiträge: 114
Registriert: 14.03.2006

erstellt am: 24. Jun. 2015 10:42    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 Tiberius 10 Unities + Antwort hilfreich


Fehlermeldung.jpg

 
Hallo meisterlumpi und weitere Gewinde-Kundige!

Meine Aufgabe besteht im Austauschen von allen G1/8" gegen M10x1.
Dazu habe ich mir ein Makro gebastelt, das mit beigefügter Fehlermeldung stoppt.

Hier der Code:

Language="VBSCRIPT"
Dim I As Integer
Dim J As Integer
Dim partDocument1 As Document
Dim part1 As Part
Dim bodies1 As Bodies
Dim Bodies1Menge As Integer
Dim shapes1 As Shapes
Dim hole1 As Shape
Dim Shapes1Menge As Integer
Dim BodyAktuell As Body
Dim strParam1 As StrParam


Sub CATMain()

Set partDocument1 = CATIA.ActiveDocument
Set part1 = partDocument1.Part
Set bodies1 = part1.Bodies
Bodies1Menge = bodies1.Count
MsgBox("Die Bodies1Menge =  " & Bodies1Menge )

For I = 1  To Bodies1Menge Step 1
Abfrage
Next

part1.Update
End Sub

Sub Abfrage()
Set BodyAktuell = bodies1.Item(I)
Set shapes1 = BodyAktuell.Shapes
Shapes1Menge = shapes1.Count
MsgBox("Die Shapes1Menge für Körper " & I & " =  " & Shapes1Menge )

For J = 1  To Shapes1Menge Step 1
Gewindeabfrage ()
Next
End Sub


Sub Gewindeabfrage ()
'On Error Resume Next
Set hole1 = shapes1.Item(J)
If hole1.ThreadingMode = catThreadedHoleThreading Then
If hole1.HoleThreadDescription = "G1/8" Then
hole1.ThreadingMode = catThreadedHoleThreading
hole1.ThreadSide = catRightThreadSide
hole1.CreateUserStandardDesignTable "Feingewinde_neu" , "D:\Program Files\Dassault Systemes\B20\win_b64\reffiles\standard\Feingewinde_neu.txt"
Set strParam1 = hole1.HoleThreadDescription
strParam1.Value = "M10x1"
MsgBox("M10x1 gewesen!")
End if
End If
End Sub

Vielleicht seht Ihr eher als ich die Fehlerursache?

MfG  Stephan

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 24. Jun. 2015 11: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 Nur für Tiberius 10 Unities + Antwort hilfreich

Servus
Du prüfst bei jedem Shape (also auch Block, Tasche, usw) die Eigenschaften die nur eine Bohrung hat.
Ich würde einfach über die Suche alle Bohrungen selektieren und dann diese abarbeiten, anstatt die Schleifen über Körper7Shapes.

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Pietzonka
Mitglied
Maschinening.


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

Beiträge: 114
Registriert: 14.03.2006

erstellt am: 24. Jun. 2015 14:39    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 Tiberius 10 Unities + Antwort hilfreich

@ Berd:
Danke für Deine Hilfe!
Deinem Hinweis folgend, habe ich es mit der Suche probiert.
Was mit hole... funktionerte, geht jetzt nicht mehr. Offenbar kann Catia mit meiner Selelction nichts anfangen.
Welchen Fehler habe ich gemacht?


Language="VBSCRIPT"

Dim partDocument1 As Document
Dim part1 As Part
Dim strParam1 As StrParam
Dim selection1 As Selection
Dim BohrungAktuell As Hole
Dim I As Integer

Sub CATMain()
Set partDocument1 = CATIA.ActiveDocument
Set part1 = partDocument1.Part
Set selection1 = partDocument1.Selection
selection1.Search "(CATPrtSearch.Hole.Threaded=TRUE & CATPrtSearch.Hole.DiameterThread=9.728mm),all"

BohrungenMenge = selection1.Count
MsgBox("Die BohrungenMenge =  " & BohrungenMenge )

For I = 1  To BohrungenMenge Step 1
Abfrage
Next

part1.Update
selection1.Clear
End Sub


Sub Abfrage()
Set BohrungAktuell = selection1.Item(I)
MsgBox("Auswahl-Nr= " & I & "  Name:  " & BohrungAktuell.Name)
GewindeNeu ()
End Sub


Sub GewindeNeu ()
'On Error Resume Next
BohrungAktuell.CreateUserStandardDesignTable "Feingewinde_neu" , "D:\Program Files\Dassault Systemes\B20\win_b64\reffiles\standard\Feingewinde_neu.txt"
Set strParam1 = BohrungAktuell.HoleThreadDescription
strParam1.Value = "M10x1"
MsgBox(" o.k. gewesen!")
End Sub

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 24. Jun. 2015 14:45    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 Tiberius 10 Unities + Antwort hilfreich

Servus
Versuch es mal so:
Code:
Set BohrungAktuell = selection1.Item(I).Value
Das Übergeben der Objekt über globale Objekte finde ich sehr unübersichtlich.

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Pietzonka
Mitglied
Maschinening.


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

Beiträge: 114
Registriert: 14.03.2006

erstellt am: 25. Jun. 2015 08:25    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 Tiberius 10 Unities + Antwort hilfreich

Danke, Bernd!

Das war die Lösung!

Wenn ich die Objekte erst in Sub Main deklariere, erhalte ich diese Fehlermeldung:  Objekt erforderlich: selection1

Mit freundlichem Gruß
Stephan

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