Hallo Zusammen,
heute habe ich eine kleine iLogic Regel zum Thema Schwerpunkt von Baugruppen und Bauteilen. Denn diese Woche habe ich an einem Fall gearbeitet bei dem einem Anwender wichtig war den Schwerpunkt auch in einer Abgeleiteten Baugruppe als Punkt zur Verfügung zu haben.
Warum dann nicht ein Arbeitspunkt an der Position einfügen, wo sich der Schwerpunkt in der originalen Baugruppe befindet?
Na, dazu muss man ihn bei der Ableitung der Baugruppe zur Verfügung haben. Doch wie positioniere ich einen Arbeitspunkt am rechnerischen Schwerpunkt? -Mit einer kleinen iLogic-Regel geht es am schnellsten. So ganz nebenbei erfahren Sie auch wie man Werte wie den Schwerpunkt aus den iProperties übernehmen kann. Nachstehend der VB.NET Code mit Beschreibung:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | Dim oDoc As Document oDoc = ThisApplication.ActiveDocument ' Prüfung ob schon ein Arbeitspunkt am Schwerpunkt existiert Dim oCenterOfMass As Point oCenterOfMass = oDoc.ComponentDefinition.MassProperties.CenterOfMass 'Fehler Ignorieren später in der If Anweisung auswerten On Error Resume Next Dim oWorkPoint As WorkPoint oWorkPoint = oDoc.ComponentDefinition.WorkPoints.item ("Schwerpunkt") If Err.Number = 0 Then 'Der vorhandene Arbeitspunkt wird gelöscht oWorkPoint.Delete 'Ein neuer Arbeitspunkt wird am aktuellen Schwerpunkt angelegt oWorkPoint = oDoc.ComponentDefinition.WorkPoints.AddFixed(oCenterOfMass) 'Arbeitspunkt wird umbenannt oWorkPoint.Name = "Schwerpunkt" 'Dokument wird aktualisiert oDoc.Update MessageBox.Show("Der vorhandene Arbeitspunkt wurde ersetzt!", "MCDCAD.de Info") Else ' Es wird ein neuer Arbeitspunkt am Schwerpunkt eingefügt. oWorkPoint = oDoc.ComponentDefinition.WorkPoints.AddFixed(oCenterOfMass) ' Der entstandene Arbeitspunkt wird umbenannt oWorkPoint.Name = "Schwerpunkt" oDoc.Update MessageBox.Show("Ein Arbeitspunkt wurde am aktuellen Schwerpunkt eingefügt", "MCDCAD.de Info") End If |
Viel Spass mit der Regel und ein schönes verlängertes Wochenende,
Helge Brettschneider