| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SolidEdge |
| |
 | SPOT-ON: NX Sheet Metal, ein Webinar am 15.07.2025
|
Autor
|
Thema: Gewindebohrung+VB (2154 mal gelesen)
|
Demokrat2000 Mitglied
 
 Beiträge: 145 Registriert: 27.09.2004 Cum ergo, cogito sum oder Ich denke, also bin ich bzw. Zu wissen, was die Welt im Inneren zusammenhält.
|
erstellt am: 12. Jan. 2005 07:34 <-- editieren / zitieren --> Unities abgeben:         
Hallo User, mal ne frage. Ich habe mir aus S.E. ein paar Programmierbsp. ,über das Suchwort HoleData, geholt. Leider mußte ich feststellen,das die dortigen Programmierbsp. nur für einfache Bohrungen, Senbkbohrungen etc. aber jeweils immer ohne Gewinde sind. Hier mal der Code der das veranlasst. creating the holedata Set objRegHoleData = objDoc.HoleDataCollection.Add(HoleType:=igRegularHole, _ HoleDiameter:=0.01, BottomAngle:=90) Leider weiß ich auch nicht (und finde auch keine Anleitung, wie man das für Gewinde machen kann). Denn soetwas wie igThreadhole gibt es scheinbar nicht. Hat einer das von Euich schon mal probiert oder ist das hier noch Neuland??? so werde noch ein bissle im Neuland VB stöbern :-) Demokrat2000 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Demokrat2000 Mitglied
 
 Beiträge: 145 Registriert: 27.09.2004 Cum ergo, cogito sum oder Ich denke, also bin ich bzw. Zu wissen, was die Welt im Inneren zusammenhält.
|
erstellt am: 12. Jan. 2005 07:51 <-- editieren / zitieren --> Unities abgeben:         
|
amg13 Mitglied
  
 Beiträge: 942 Registriert: 20.12.2002 Aktuell: FSC R550 2x Xeon X5450 QuadCore 8GB RAM Nvidia FX4800 Dell Precision M6300 Solid Edge ST3 NX 7.5 Solid Works 2010 Pro/E Das war einmal: HP Workstation >80x SolidEdge V19 (Classic & Foundation) 14x SMAP3D Piping/Partfinder
|
erstellt am: 12. Jan. 2005 10:20 <-- editieren / zitieren --> Unities abgeben:          Nur für Demokrat2000
Hi, wenn du mehrer Bohrungen mit einem Befehl erstellen willst, dann suche mal unter userdefinedpattern. Ansonsten probiere ich auch gerade mit damit herum wie ich über eine Exceltabell Teile konstruieren kann. cya AMG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Demokrat2000 Mitglied
 
 Beiträge: 145 Registriert: 27.09.2004 Cum ergo, cogito sum oder Ich denke, also bin ich bzw. Zu wissen, was die Welt im Inneren zusammenhält.
|
erstellt am: 12. Jan. 2005 10:23 <-- editieren / zitieren --> Unities abgeben:         
|
progi Mitglied Programmierer

 Beiträge: 74 Registriert: 18.08.2004 VB.net SE 16
|
erstellt am: 14. Jan. 2005 14:50 <-- editieren / zitieren --> Unities abgeben:          Nur für Demokrat2000
Hi, ich habe mich ein wenig damit beschäftigt, jedoch bin ich froh das mein Programm so funktioniert, geht wahrscheinlich auch anders. hier der Code GetHoleDataType23 = Document.HoleDataCollection.Add( _ SolidEdgePart.FeaturePropertyConstants.igCountersinkHole, _ fDiameter, , , CountersinkDiameter, CountersinkAngle, BottomAngle, _ SolidEdgePart.FeaturePropertyConstants.igTappedHole, _ , , , SolidEdgePart.FeaturePropertyConstants.igFinite, ThreadDepth, , _ , , , , , ThreadDescription) und dann habe ich noch ein paar Einstellungen nachher gesetzt, hat den Eindruck gemacht, das das ganze stabiler läuft, die Daten sind aus der Holes.txt (Verzeichnis C:\Programme\Soli ..\Program\Holes.txt) GetHoleDataType23.ThreadMinorDiameter = fThreadMinorDiameter GetHoleDataType23.ThreadNominalDiameter = fThreadNominalDiameter GetHoleDataType23.ThreadDescription = ThreadDescription (z.B. "M10" also wie in der Holes.txt) Falls Unklarheiten bestehen, Ausrufezeichen neben der erzeugten Bohrung, händisch nachbearbeiten ohne was zu verändern und dann im Überwachungsfenster kucken, was sich geändert hat. Weniger Daten reichen wahrscheinlich schon aus, dann mal händisch nachbearbeiten, kucken was passiert, bei mir ist SE da oft abgestürzt, mit mehr Daten ging das dann besser. Alle Daten gleichzeitig bereitet manchmal Probleme. Ich hoffe ich konnte helfen Gruß Andreas ------------------ Besten Dank Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Demokrat2000 Mitglied
 
 Beiträge: 145 Registriert: 27.09.2004 Cum ergo, cogito sum oder Ich denke, also bin ich bzw. Zu wissen, was die Welt im Inneren zusammenhält.
|
erstellt am: 14. Jan. 2005 15:04 <-- editieren / zitieren --> Unities abgeben:         
|
Demokrat2000 Mitglied
 
 Beiträge: 145 Registriert: 27.09.2004 Cum ergo, cogito sum oder Ich denke, also bin ich bzw. Zu wissen, was die Welt im Inneren zusammenhält.
|
erstellt am: 21. Jan. 2005 10:42 <-- editieren / zitieren --> Unities abgeben:         
Hey Leute, wo schreibt denn S.E. die Information hin, welche Teile im aktuellen Part verwendet werden? Ich will noch immer einem aktuellen part eine Gewindebohrung verpassen und mit dem untenstehenden Code klappt das leider nicht? Dort übergebe ich nämlich nur der Variablen objBase die Rotationsausprägung . MfG Demokrat2000 Private Sub CommandButton1_Click() Dim objApp As SolidEdgeFramework.Application Dim objDoc As SolidEdgePart.PartDocument Dim objBaseProfile As SolidEdgePart.Profile Dim RevolvedProduce_1 As SolidEdgePart.RevolvedProtrusion Dim objBaseProfArray(1 To 2) As SolidEdgePart.Profile Dim objBase As SolidEdgePart.Model Dim objRegHoleData As SolidEdgePart.HoleData Dim objRP As SolidEdgePart.RefPlane Dim objRegHoleProfile As SolidEdgePart.Profile Dim objRegHole As SolidEdgePart.Hole Dim lngHoleType As Long Dim lngStatus As Long ' Report errors Const PI = 3.14159265358979 ' Create/get the application with specific settings On Error Resume Next Set objApp = GetObject(, "SolidEdge.Application") objApp.Visible = True Set objDoc = objApp.ActiveDocument Set objBase = objDoc.RevolvedProduce_1 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Demokrat2000 Mitglied
 
 Beiträge: 145 Registriert: 27.09.2004 Cum ergo, cogito sum oder Ich denke, also bin ich bzw. Zu wissen, was die Welt im Inneren zusammenhält.
|
erstellt am: 21. Jan. 2005 17:51 <-- editieren / zitieren --> Unities abgeben:         
Hallo @ all, ich habs geschafft und zwar kann ich jetzt eine Gewindebohrung erzeugen und diese auch in der Größe verändern. Aber leider ändert sich die Kernlochbohrung noch nicht mit. Das komische ist ja,das in dieser bohrungsoptionstabelle (wo ich eine Bohrung mit erzeugen kann) die Info drinne steht (M10 Gewinde, 10 Bohrung)aber bei allem was ich ändere die Kernlochbohrung bleibt konstant.WO hat er denn jetzt das Problem?Zudem existiert der Wert in der Holes.txt nicht. Ich wünsche Euch ein schönes WE. Martin Private Sub CommandButton1_Click() Dim objApp As SolidEdgeFramework.Application Dim objDoc As SolidEdgePart.PartDocument Dim objBaseProfile As SolidEdgePart.Profile Dim objRevProts As SolidEdgePart.RevolvedProtrusions Dim objBaseProfArray(1 To 2) As SolidEdgePart.Profile Dim objBase As SolidEdgePart.Model Dim objRegHoleData As SolidEdgePart.HoleData Dim objRP As SolidEdgePart.RefPlane Dim objRegHoleProfile As SolidEdgePart.Profile Dim objRegHole As SolidEdgePart.Hole Dim lngHoleType As Long Dim lngStatus As Long Dim Abstand_Bohrung As Range Dim Gewindegroesse As Range Dim Gewindetiefe As Range ' Report errors
Const PI = 3.14159265358979 ' Create/get the application with specific settings On Error GoTo 0 ' Open a Testcase Set Abstand_Bohrung = Worksheets("Tabelle1").Range("B1") Set Gewindegroesse = Worksheets("Tabelle1").Range("B2") Set Gewindetiefe = Worksheets("Tabelle1").Range("B3") Set objApp = GetObject(, "SolidEdge.Application") Set objDoc = objApp.ActiveDocument ' Get the model object in the test case Set objBase = objDoc.Models(1) 'Get the RevolvedProtrusions Object for the Model Set objRevProts = objBase.RevolvedProtrusions ' *** creating a Regular Hole using the Holedatacollection object ' creating the holedata Set objRegHoleData = objDoc.HoleDataCollection.Add(HoleType:=igRegularHole, _ HoleDiameter:=Gewindegroesse / 1000, BottomAngle:=118) ' creating the profile for the hole and validating it Set objRP = objDoc.RefPlanes.AddParallelByDistance(parentplane:=objDoc.RefPlanes(1), _ distance:=Abstand_Bohrung / 1000, normalside:=igRight) Set objRegHoleProfile = objDoc.ProfileSets.Add.Profiles.Add(pRefPlaneDisp:=objRP) Call objRegHoleProfile.Holes2d.Add(xcenter:=0, ycenter:=0) lngStatus = objRegHoleProfile.End(ValidationCriteria:=igProfileClosed) If lngStatus <> 0 Then MsgBox " profile for the hole is not closed" End If ' creating the hole Set objRegHole = objBase.Holes.AddFinite(Profile:=objRegHoleProfile, _ ProfilePlaneSide:=igLeft, FiniteDepth:=Gewindetiefe / 1000, Data:=objRegHoleData) If (objRegHole.Status <> igFeatureOK) Then MsgBox "AddFinite method of the Holes object fails" End If
MsgBox "Abstand_Bohrung: " & Abstand_Bohrung, vbInformation MsgBox "Gewindegroesse: " & Gewindegroesse, vbInformation MsgBox "Gewindetiefe: " & Gewindetiefe, vbInformation objRegHoleProfile.Visible = False ' getting the hole type of the regular hole lngHoleType = objRegHoleData.HoleType ' USER DISPLAY ' Release objects Set objApp = Nothing Set objDoc = Nothing Set objBaseProfile = Nothing Set objBaseProfArray(1) = Nothing Set objBase = Nothing Set objRegHoleData = Nothing Set objRP = Nothing Set objRegHoleProfile = Nothing Set objRegHole = Nothing End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
modeng Ehrenmitglied V.I.P. h.c.
     
 Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 21. Jan. 2005 23:04 <-- editieren / zitieren --> Unities abgeben:          Nur für Demokrat2000
so ich das sehe, erzeugt dies SE-Sample eine einfache Bohrung -- sonst nichts. Ergaenzung: Der Typ der Bohrung richtet sich nach der Grundeinstellung welche fuer Holes in SE gespeichert wurde (Auslieferungszustand: Simple). Es fehlt ergo die Angabe das es ein Gewinde sein soll sowie weitere Angaben fuer das Gewinde Klaus
[Diese Nachricht wurde von modeng am 21. Jan. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Frank_K Mitglied Student

 Beiträge: 10 Registriert: 28.10.2003
|
erstellt am: 24. Jan. 2005 14:54 <-- editieren / zitieren --> Unities abgeben:          Nur für Demokrat2000
Hallo Martin, Du mußt zu dem HoleData-Objekt noch weitere Werte hinzufügen, damit eine Gewindebohrung erzeugt wird. TreatmentType: igTappedHole, damit ein Gewinde angelegt wird ThreadDepthMethod: igAll oder igFinite (hier schweigt sich dei Hilfe über die zulässigen Werte aus, meiner Meinung nach sind diese beiden sinnvoll) ThreadDepth: Gewindelänge ThreadSetting: igRegularThread, igStraightPipeThread oder igTaperedPipeThreadSetting (igRegularThread würde ich als metrisches Gewinde ansehen) Ansonsten experimentier mal mit dem HoleData-Objekt. Dort werden alle Daten für Lochform und Gewinde (innen/außen) verwaltet. Wenn Du Änderungen an Bohrung oder Gewinde vornimmst, mußt Du beide Objekte anpassen, das Hole/Holes2D-Objekt und das HoleData-Objekt. Grüße, Frank Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Demokrat2000 Mitglied
 
 Beiträge: 145 Registriert: 27.09.2004 Cum ergo, cogito sum oder Ich denke, also bin ich bzw. Zu wissen, was die Welt im Inneren zusammenhält.
|
erstellt am: 27. Jan. 2005 08:53 <-- editieren / zitieren --> Unities abgeben:         
|
modeng Ehrenmitglied V.I.P. h.c.
     
 Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 27. Jan. 2005 09:09 <-- editieren / zitieren --> Unities abgeben:          Nur für Demokrat2000
als Angaben, sofern sie nicht per Programm etc. ueberschrieben werden, dienen die Daten, welche in den Holes Options innerhalb von SE als Grundeinstellung gespeichert sind. Also wurde zwar ein Gewinde erzeugt, das aber mehr per Zufall ... Irgendwie scheint es da wohl ein Verstaendnisproblem zu geben ... Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Frank_K Mitglied Student

 Beiträge: 10 Registriert: 28.10.2003
|
erstellt am: 27. Jan. 2005 11:50 <-- editieren / zitieren --> Unities abgeben:          Nur für Demokrat2000
Zitat: als Angaben, sofern sie nicht per Programm etc. ueberschrieben werden, dienen die Daten, welche in den Holes Options innerhalb von SE als Grundeinstellung gespeichert sind. Also wurde zwar ein Gewinde erzeugt, das aber mehr per Zufall ...
Ja, damit scheinst Du recht zu haben. Wenn in dem Programm Daten der Gewindebohrung definiert werden und nicht alle erforderlichen Eigenschaften mit Daten versehen werden, dann nimmt SE seine Vorgaben. Bsp.: Gewindetiefe 20 mm soll erzeugt werden Im HoleData-Objekt wird ThreadDepthMethod=igFinite gesetzt, dann muß auch ThreadDepth=0.02 gesetzt werden. Hat ThreadDepth keinen Wert, dan nimmt SE seine Vorgabe. Ich habe im Programm mal ausprobiert, eine Gewindebohrung mit unpassenden Werten zu erzeugen. Es ging problemlos ein M20-Gewinde in ein 10mm Loch zu setzen. SE gibt kein Hinweis auf den Fehler. Bei der Programmierung scheint man ziemlich genau aufpassen zu müssen, damit alle Werte richtig zusammenpassen. Martin, beschreibe mal bitte genau Dein Problem mit der Kernbohrung, was Du machen wolltest und wie das Ergebnis aussieht. Frank Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Demokrat2000 Mitglied
 
 Beiträge: 145 Registriert: 27.09.2004 Cum ergo, cogito sum oder Ich denke, also bin ich bzw. Zu wissen, was die Welt im Inneren zusammenhält.
|
erstellt am: 27. Jan. 2005 15:47 <-- editieren / zitieren --> Unities abgeben:         
Hallo Frank, dieses Add (siehe Bild) hat nen Haufenmöglichkeiten aber wenn man ihm die minimale größe des Gewindes sagt und die maximale Größe des Gewindes sagt, dann bekommt er damit ein Problem. ich kann jede gewindegröße ihm geben aber das kernloch bleibt bei 4.72mm. Denn das müßte ja bei einer Bohrung die minimale größe des Gewindes sein. Es klappt aber leider nicht. Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Demokrat2000 Mitglied
 
 Beiträge: 145 Registriert: 27.09.2004 Cum ergo, cogito sum oder Ich denke, also bin ich bzw. Zu wissen, was die Welt im Inneren zusammenhält.
|
erstellt am: 27. Jan. 2005 15:49 <-- editieren / zitieren --> Unities abgeben:         
|
Frank_K Mitglied Student

 Beiträge: 10 Registriert: 28.10.2003
|
erstellt am: 28. Jan. 2005 10:26 <-- editieren / zitieren --> Unities abgeben:          Nur für Demokrat2000
Gehe ich richtig in der Annahme, daß Du die Parameter "ThreadMinorDiameter" und "ThreadExternalDiameter" meinst? Diese Werte bestimmenen den Kerndurchmesser bei Innen-(ThreadMinorDiameter) und bei Außengewinde (ThreadExternalDiameter). An Hand dieser Parameter sucht SE aus der Holes.txt/ThreadPipe.txt den passenden Gewindetyp. Geometrien beeinflussen diese Werte nicht, nach meinen Verständnis. Wenn wir bei Deiner Bohrung bleiben, angenommen Du hast ein 10mm Loch, dann kannst Du mit ThreadMinorDiameter von 8.376mm ein M10 Gewinde anlegen, mit ThreadMinorDiameter von 8.647mm ein M10 x 1.25 Gewinde. Leichter ist es aber, statt der Durchmesser die passende Gewindebeschreibung anzugeben. Mit ThreadDescription="M10" hast Du denselben Effekt. Für ein M10-Gewinde mußt Du allerdings auch eine Bohrung mit 10mm Durchmesser anlegen. Wenn Du die Gewindegröße ändern willst, mußt Du die Gewindegröße UND den HoleDiameter-Parameter in dem HoleData-Objekt ändern. Es sollte eigentlich ausreichen die Parameter in dem HoleData-Objekt zu ändern und SE sollte das Modell automatisch aktualisieren. Sollte das nicht so funktionieren, dann sehe ich nur den Ausweg zu Fuß: Bohrung löschen und eine neue anlegen. Frank Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Demokrat2000 Mitglied
 
 Beiträge: 145 Registriert: 27.09.2004 Cum ergo, cogito sum oder Ich denke, also bin ich bzw. Zu wissen, was die Welt im Inneren zusammenhält.
|
erstellt am: 28. Jan. 2005 11:01 <-- editieren / zitieren --> Unities abgeben:         
Hallo Frank, danke erst einmal für die Hilfe. Ich habe immer noch einproblem, mit dem Code. Die Bohrtiefe liegt standardmäßig immer auf 50,8. Mit Finite Depth kann ich ja diese Tiefe steuern, das scheint aber nur ebi einfachen Bohrungen zu funktionieren,denn bei Gewindetypen funzt das nicht mehr. Set objRegHole = objBase.Holes.AddFinite(Profile:=objRegHoleProfile, _ ProfilePlaneSide:=igLeft, FiniteDepth:=1, Data:=objRegHoleData) Es gibt aber auch keine Angabe in der Add Funktion, wo man das dort einfügen kann. Set objRegHoleData = objDoc.HoleDataCollection.Add(HoleType:=igRegularHole, _ HoleDiameter:=Gewindegroesse / 1000, BottomAngle:=118, _ TreatmentType:=igTappedHole, ThreadDepth:=0.025, ThreadDescription:="M16"). Mhh naja mal sehen und finden, was sich noch alles suchen läßt. MArtin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Frank_K Mitglied Student

 Beiträge: 10 Registriert: 28.10.2003
|
erstellt am: 28. Jan. 2005 11:17 <-- editieren / zitieren --> Unities abgeben:          Nur für Demokrat2000
Zitat: Set objRegHole = objBase.Holes.AddFinite(Profile:=objRegHoleProfile, _ ProfilePlaneSide:=igLeft, FiniteDepth:=1, Data:=objRegHoleData)
Bist Du sicher, daß die Bohrungstiefe 1000mm sein soll? Zitat: Set objRegHoleData = objDoc.HoleDataCollection.Add(HoleType:=igRegularHole, _ HoleDiameter:=Gewindegroesse / 1000, BottomAngle:=118, _ TreatmentType:=igTappedHole, ThreadDepth:=0.025, ThreadDescription:="M16").
Füge mal vor dem ThreadDepth-Paramater noch ThreadDepthMethod:=igFinite ein, sonst hat ThreadDepth keine Wirkung. Damit sollte sich die Gewindetiefe steuern lassen. Grüße, Frank Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Demokrat2000 Mitglied
 
 Beiträge: 145 Registriert: 27.09.2004 Cum ergo, cogito sum oder Ich denke, also bin ich bzw. Zu wissen, was die Welt im Inneren zusammenhält.
|
erstellt am: 28. Jan. 2005 11:20 <-- editieren / zitieren --> Unities abgeben:         
Hallo Frank, mein Problem ist nicht die Gewindetiefe sondern die Bohrtiefe. Das ist der punkt, den er nicht macht. Trotz meiner angabe,das die Bohrtiefe 1m sein soll, macht er nur eine Bohrtiefe von 50,8mm. Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Frank_K Mitglied Student

 Beiträge: 10 Registriert: 28.10.2003
|
erstellt am: 28. Jan. 2005 12:00 <-- editieren / zitieren --> Unities abgeben:          Nur für Demokrat2000
Hallo Martin, in der Tat ein merkwürdiger Effekt. Der Code sieht eigentlich fehlerfrei aus. Ich würde mal 2 Wege ausprobieren: Zwei Referenzebenen anlegen, eine auf der Oberfläche, wo die Bohrung anfängt und die 2. dann im Körper, wo die Bohrung aufhören soll. Dann die Bohrung mit AddFromTo anlegen und die beiden Ebenen angeben. Der 2. Weg ist erst die Bohrung mit einem HoleData-Objekt als einfache Bohrung anlegen und dann das HoleData-Objekt um die Gewindeangaben ergänzen. Probier mal, ob das funktioniert. Grüße, Frank Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Demokrat2000 Mitglied
 
 Beiträge: 145 Registriert: 27.09.2004 Cum ergo, cogito sum oder Ich denke, also bin ich bzw. Zu wissen, was die Welt im Inneren zusammenhält.
|
erstellt am: 28. Jan. 2005 12:18 <-- editieren / zitieren --> Unities abgeben:         
|
modeng Ehrenmitglied V.I.P. h.c.
     
 Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 28. Jan. 2005 14:15 <-- editieren / zitieren --> Unities abgeben:          Nur für Demokrat2000
... wie vorstehend schon mal gesagt: alle Werte, die nicht explizit ueberschrieben werden werden aus den Daten der Grundeinstellung uebernommen (save as default bzw. Auslieferungszusatnd) -- daher klappt dann so manches nicht modeng Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Demokrat2000 Mitglied
 
 Beiträge: 145 Registriert: 27.09.2004 Cum ergo, cogito sum oder Ich denke, also bin ich bzw. Zu wissen, was die Welt im Inneren zusammenhält.
|
erstellt am: 28. Jan. 2005 14:17 <-- editieren / zitieren --> Unities abgeben:         
|
modeng Ehrenmitglied V.I.P. h.c.
     
 Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 28. Jan. 2005 18:07 <-- editieren / zitieren --> Unities abgeben:          Nur für Demokrat2000
|
Demokrat2000 Mitglied
 
 Beiträge: 145 Registriert: 27.09.2004 Cum ergo, cogito sum oder Ich denke, also bin ich bzw. Zu wissen, was die Welt im Inneren zusammenhält.
|
erstellt am: 31. Jan. 2005 09:14 <-- editieren / zitieren --> Unities abgeben:         
Hallo Modeng, ich habe mich jetzt entschieden ein zusätzliches Feature für die Bohrspitze zu machen und dieses einzublenden, wenn ich die Bohrung mache.Ist zwar noch ein zusätzlicher aufwand mehr aber es macht mehr Sinn, als da jetzt noch ne Ewigkeit zu programmieren und zu gucken. Gruß Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
progi Mitglied Programmierer

 Beiträge: 74 Registriert: 18.08.2004 VB.net SE 16
|
erstellt am: 23. Feb. 2005 13:54 <-- editieren / zitieren --> Unities abgeben:          Nur für Demokrat2000
Hallo, habe die Diskussion nicht mehr mitbekommen. Soweit ich das verstanden habe willst Du nicht durch alles bohren, sondern eine bestimmte Tiefe, oder? hier auf Verdacht mal alle Bohrungen: Select Case ExtentType Case SolidEdgePart.FeaturePropertyConstants.igThroughAll oHole = oModel.Holes.AddThroughAll( _ oProfile, ProfilePlaneSide, HoleData) Case SolidEdgePart.FeaturePropertyConstants.igToEndOfEdge oHole = oModel.Holes.AddThroughNext( _ oProfile, ProfilePlaneSide, HoleData) Case SolidEdgePart.FeaturePropertyConstants.igFromTo oHole = oModel.Holes.AddFromTo( _ oProfile, FromFaceOrRefPlane, oFaceOrRefPlane, HoleData) Case SolidEdgePart.FeaturePropertyConstants.igFinite oHole = oModel.Holes.AddFinite( _ oProfile, ProfilePlaneSide, Depth, HoleData) End Select Meine Vermutung ist das das Holedata nicht die richtigen Daten enthält. Die ProfilePlaneSide ist SolidEdgePart.FeaturePropertyConstants.igRight oder SolidEdgePart.FeaturePropertyConstants.igLeft Am besten mal eine Bohrung per Hand machen und dann mit VB6 die Eigenschaften der HoleData anschauen. Eventuell die Daten im HoleData einzeln setzen, die Reihenfolge scheint nicht beliebig zu sein (Wechselwirkung: Threaddescrition und Diameter). Ich hoffe das hilft irgendwie Gruß Andeas ------------------ Besten Dank Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
progi Mitglied Programmierer

 Beiträge: 74 Registriert: 18.08.2004 VB.net SE 16
|
erstellt am: 23. Feb. 2005 14:15 <-- editieren / zitieren --> Unities abgeben:          Nur für Demokrat2000
Hallo, das ganze Programm kann ich nicht rausgeben. Hier der Code für eine einfache Gewindebohrung (vb.net): Public Function GetHoleDataType20(ByVal ThreadDescription As String, ByVal ThreadDepth As Double, _ Optional ByVal Document As Object = Nothing, _ Optional ByVal BottomAngle As Double = 118) As SolidEdgePart.HoleData 'Dim oHoleData As SolidEdgePart.HoleData Dim fDiameter As Double Dim fThreadMinorDiameter As Double Dim fThreadNominalDiameter As Double Dim sDiameter As String Dim oObject As Object Dim oEntry As ParseHolesTXT.HoleEntryItem If Document Is Nothing Then Document = goSE.GetSE.ActiveDocument End If If Not Document Is Nothing Then Try oEntry = goHolesTXT.HoleEntryItem(ThreadDescription) 'Liest die Daten aus der Holes.TXT, wir haben eine geänderte Holes.Txt, der Parser funktioniert nicht mit der normalen. If Not oEntry Is Nothing Then fDiameter = oEntry.Diameter fThreadMinorDiameter = oEntry.ThreadMinorDiameter fThreadNominalDiameter = oEntry.ThreadNominalDiameter End If GetHoleDataType20 = Document.HoleDataCollection.Add( _ SolidEdgePart.FeaturePropertyConstants.igRegularHole, _ fDiameter, , , , , BottomAngle, _ , , , , SolidEdgePart.FeaturePropertyConstants.igFinite ) GetHoleDataType20.TreatmentType = SolidEdgePart.FeaturePropertyConstants.igTappedHole GetHoleDataType20.ThreadDepth = ThreadDepth GetHoleDataType20.ThreadMinorDiameter = fThreadMinorDiameter GetHoleDataType20.ThreadNominalDiameter = fThreadNominalDiameter GetHoleDataType20.ThreadDescription = ThreadDescription Catch ex As Exception oEntry = Nothing GetHoleDataType20 = Nothing Throw New FL.SEException(goRes.getText("HoleDataFailed")) End Try End If oObject = Nothing oEntry = Nothing End Function Ich hoffe das hilft ein wenig. Gruß Andreas
------------------ Besten Dank Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
modeng Ehrenmitglied V.I.P. h.c.
     
 Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 23. Feb. 2005 18:39 <-- editieren / zitieren --> Unities abgeben:          Nur für Demokrat2000
es fehlt der deutliche Hinweis: laeuft nur mit VB.NET bzw. NET Framework (steht zwar drin wird aber dort leicht ueberlesen -- das Coding ist interessanter ;-) und -- es geht auch einfacher ohne Holes.txt ... [Diese Nachricht wurde von modeng am 23. Feb. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
progi Mitglied Programmierer

 Beiträge: 74 Registriert: 18.08.2004 VB.net SE 16
|
erstellt am: 24. Feb. 2005 09:10 <-- editieren / zitieren --> Unities abgeben:          Nur für Demokrat2000
ich hatte bei den Bohrungen das Problem, das SE danach Probleme gemacht hatte. Die Bohrungen werden ganz normal angezeigt, das Nacharbeiten brachte aber Probleme mit sich. Wenn man nur die ThreadDescription auf z.B. "M10" stellt haben sich die anderen Maße nicht automatisch geändert. So scheint das besser zu laufen, geht aber bestimmt auch besser, hauptsache meine Bohrungen machen keine Probleme -))! Laufen tut der Programmabschnitt so ja eh nicht, sollte nur das Vorgehen anzeigen. Gruß Andreas ------------------ Besten Dank Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
modeng Ehrenmitglied V.I.P. h.c.
     
 Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 24. Feb. 2005 10:00 <-- editieren / zitieren --> Unities abgeben:          Nur für Demokrat2000
@progi, [...] Wenn man nur die ThreadDescription auf z.B. "M10" stellt haben sich die anderen Maße nicht automatisch geändert. [...] das verhalten von SE ist in diesem Fall korrekt. Die Holes.txt wird nicht angezogen, es gelten die Werte, welche als letztes fuer eine Bohrung angegeben wurden (Bohrung --> Options). Es sind also diverse Werte per Programm anzugeben um eine komplette (Gewinde)Bohrung zu erhalten. modeng Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
progi Mitglied Programmierer

 Beiträge: 74 Registriert: 18.08.2004 VB.net SE 16
|
erstellt am: 24. Feb. 2005 10:37 <-- editieren / zitieren --> Unities abgeben:          Nur für Demokrat2000
Hallo, dann müßte das ja doch von Vorteil sein, wenn man die richtigen Daten aus der Holes.txt in das DataHole einträgt, sollte dann doch stimmen? Besser als die alten Daten, oder? Gruß Andreas ------------------ Besten Dank Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |