Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Verbindung zum Masterbauteil kappen

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 Autodesk Produkte
Autor Thema:  Verbindung zum Masterbauteil kappen (1409 mal gelesen)
motofreakmd
Mitglied
Student

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

Beiträge: 6
Registriert: 28.10.2014

erstellt am: 29. Okt. 2014 07: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

Hallo, ich bin neu hier im Forum. Derzeit bereite ich meine Masterarbeit vor, bei der ein komplett mittels ilogic gesteuertes Modell eines Gurtförderes erzeugt werden soll. Leider sind meine Programmierkenntnisse eher dürftig, weshalb ich mich bisher durch die Suche in Foren und bei google vorangekämpft habe. Dieses Forum hat mir bereits ein paar mal weitergeholfen.   Ich hoffe hierbei kann mir nun auch jemand unter die Arme greifen..
Zum allgemeinen Vorgehen:
In einer Baugruppe soll nach einigen Werteeingaben durch den Benutzer ein Teilsegment des Gurtes (gerades Stück oder ein Bogen)nach dem anderen in eine Baugruppe eingefügt werden, sodass sich ein zusammenhängender Verlauf ergibt.
Für die Teilsegmente gibt es jeweils ein Masterbauteil. Die eingelesenen Parameterwerte ändern nach jedem hinzugefügten Teilsegment die Maße des Masterbauteils auf das als nächstes hinzuzufügende Teilsegment.
Mein Problem ist folgendes:
Die so hinzugefügten Einzelsegmente sind abhängig vom jeweiligen Masterbauteil. Dies muss allerdings unterbunden werden, da sich sonst das bereits eingefügte Bauteil auf die Maße des folgenden Teilsegmentes ändert.

Kann man diese Abhängigkeit irgendwie unterdrücken?  Mir wurde bereits vorgeschlagen die Einzelsegmente  als ilogic Komponenten zu platzieren. Allerdings wird dabei ein Fenster zum Einstellen der Benutzerparameter angezeigt, was jedoch stört. Einen Code für dieses Vorgehen habe ich zudem auch nicht.

Ist das vielleicht mit der Funktion BreakLinkToFile() zu machen? – klingt irgendwie so.. (habe ich aus dem Visual Basic Object Browser)

Vielen Dank bereits vorab dafür, dass Sie sich mit meinem Problem beschäftigen.
P.S. falls noch weitere Fehler im Code enthalten sind, wäre ich über einen Hinweis sehr dankbar.

MfG Mario

Zum besseren Verständnis hier mein bisheriger (noch nicht ganz ausgereifter) Code:


iLogicVb.RunRule("Master:1", "Erstellen von Parametern und Einlesen der Werte")
Parameter.Quiet = True

Anzahl = Parameter("Master:1", "Nummer") ‘ Nummer ist die eingelesene Anzahl der Teilsegmente

‘ überflüssige Parameter werden auf Null gesetzt
For i=Anzahl+1 To Parameter("Master:1","k")’ k ist die Anzahl der im Vorfeld mittels ilogic Code maximal erzeugten Koordinatenpaare
Parameter("Master:1", "KOORDINATE_X_"&i) = 0 mm
Parameter("Master:1","KOORDINATE_Y_"&i) = 0 mm
Next

Dim z1 As String
Dim z2 As String
Dim z3 As String
Dim z4 As String
Dim z5 As String
Dim z6 As String

'Berechnung Neigung in y- und z-Richtung(z Richtung noch nicht integriert)                            
For i = 1 To Anzahl
    z1="KOORDINATE_X_"&i
    z2="KOORDINATE_Y_"&i
    z3="KOORDINATE_X_"&i+1
    z4="KOORDINATE_Y_"&i+1
    z5="KOORDINATE_X_"&i+2
    z6="KOORDINATE_Y_"&i+2
    a1=Parameter("Master:1", z1)
    a2=Parameter("Master:1", z2)
    a3=Parameter("Master:1", z3)
    a4=Parameter("Master:1", z4)
    a5=Parameter("Master:1", z5)
    a6=Parameter("Master:1", z6)
   
    a8=(a4-a2)/(a3-a1)-(a6-a4)/(a5-a3)
    ' Auswahl Teilstück Bogen oder Gerade
    If Parameter("Master:1", Parameter("KOORDINATE_X_"&i+1)) = 0 mm Then
   
    Goto next_i
   
    Else If a8 = 0 oE Or Parameter("Master:1", Parameter("KOORDINATE_X_"&i+2)) = 0 mm Then
    e = MaxOfMany(Parameter("Master:1", Parameter ("KOORDINATE_X_"&i)), Parameter("Master:1", Parameter ("BOGENENDE_X_"&i)), 0)
   
   
    If e = Parameter("Master:1", Parameter ("KOORDINATE_X_"&i)) Then
        go = Parameter("Master:1", Parameter ("KOORDINATE_Y_"&i))
    Else
        go = Parameter("Master:1", Parameter ("BOGENENDE_Y_"&i))
    End If
   
    Parameter("Obertrum Teilstück ohne Bogen 3D:"&i, "Koordinate_x_1") = e
    Parameter("Obertrum Teilstück ohne Bogen 3D:"&i, "Koordinate_y_1") = go
    Parameter("Obertrum Teilstück ohne Bogen 3D:"&i, "Koordinate_x_2") = Parameter("Master:1", "KOORDINATE_X_"&i+1)
    Parameter("Obertrum Teilstück ohne Bogen 3D:"&i, "Koordinate_y_2") = Parameter("Master:1", "KOORDINATE_y_"&i+1)
    Parameter("Obertrum Teilstück ohne Bogen 3D:"&i, "Gurtbreite") = Parameter("Master:1", GURTBREITE)
    Parameter("Obertrum Teilstück ohne Bogen 3D:"&i, "Gurtdicke") = Parameter("Master:1", GURTDICKE)
    Parameter("Obertrum Teilstück ohne Bogen 3D:"&i, "Muldung_OT") = Parameter("Master:1", MULDUNG_OT)
    Parameter("Obertrum Teilstück ohne Bogen 3D:"&i, "Luft") = Parameter("Master:1", LUFT)


'Public Sub AddOccurrence()
        ' Set a reference to the assembly component definintion.
        ' This assumes an assembly document is open.
        Dim oAsmCompDef As AssemblyComponentDefinition
        oAsmCompDef = ThisApplication.ActiveDocument.ComponentDefinition
       
        ' Set a reference to the transient geometry object.
        Dim oTG As TransientGeometry
        oTG = ThisApplication.TransientGeometry
       
        'Create a matrix.  A New matrix Is initialized With an identity matrix.
        Dim oMatrix As Matrix
        oMatrix = oTG.CreateMatrix
        a7=Atan(N)'*PI()/180)
        'Set the rotation Of the matrix about the Z axis.
        Call oMatrix.SetToRotation(a7,oTG.CreateVector(0, 0, 1), oTG.CreatePoint(0, 0, 0))
       
        ' Set the translation portion of the matrix so the part will be positioned
        ' at (3,2,1).
        Call oMatrix.SetTranslation(oTG.CreateVector((Parameter("Master:1", Parameter("KOORDINATE_X_"&i))/10 oE),(Parameter("Master:1", Parameter("KOORDINATE_Y_"&i))/10 oE) ,(Parameter("Master:1", Parameter("KOORDINATE_Z_"&i))/10 oE)))
       
        ' Add the occurrence.
        Dim oOcc As ComponentOccurrence
        oOcc = oAsmCompDef.Occurrences.Add("R:\Projekte\999999_Uebungsumgebung\Kraut\Obertrum Teilstück ohne Bogen 3D.ipt", oMatrix)

Goto next_i
Else
'Parameterübergabe an Teilsegment (Bogen):

Parameter("Obertrum Teilstück mit Bogen 3D:"&i, "Bogenmitte_x") = Parameter("Master:1", Parameter("KOORDINATE_X_"&i+1))
Parameter("Obertrum Teilstück mit Bogen 3D:"&i, "Bogenmitte_y") = Parameter("Master:1", Parameter("BOGENMITTE_Y_"&i))
Parameter("Obertrum Teilstück mit Bogen 3D:"&i, "Bogenmitte_z") = Parameter("Master:1", Parameter("BOGENMITTE_Z_"&i))

Parameter("Obertrum Teilstück mit Bogen 3D:"&i, "Bogenbeginn_x") = Parameter("Master:1", Parameter("BOGENBEGINN_X_"&i))
Parameter("Obertrum Teilstück mit Bogen 3D:"&i, "Bogenbeginn_y") = Parameter("Master:1", Parameter("BOGENBEGINN_Y_"&i))
Parameter("Obertrum Teilstück mit Bogen 3D:"&i, "Bogenbeginn_z") = Parameter("Master:1", Parameter("BOGENBEGINN_Z_"&i))

Parameter("Obertrum Teilstück mit Bogen 3D:"&i, "Bogenende_x") = Parameter("Master:1", Parameter("BOGENENDE_X_"&i))
Parameter("Obertrum Teilstück mit Bogen 3D:"&i, "Bogenende_y") = Parameter("Master:1", Parameter("BOGENENDE_Y_"&i))
Parameter("Obertrum Teilstück mit Bogen 3D:"&i, "Bogenende_z") = Parameter("Master:1", Parameter("BOGENENDE_Z_"&i))

Parameter("Obertrum Teilstück ohne Bogen 3D:"&i, "Gurtbreite") = Parameter("Master:1", GURTBREITE)
Parameter("Obertrum Teilstück ohne Bogen 3D:"&i, "Gurtdicke") = Parameter("Master:1", GURTDICKE)
Parameter("Obertrum Teilstück ohne Bogen 3D:"&i, "Muldung_OT") = Parameter("Master:1", MULDUNG_OT)
Parameter("Obertrum Teilstück ohne Bogen 3D:"&i, "Luft") = Parameter("Master:1", LUFT)

        'Public Sub AddOccurrence()
        ' Set a reference to the assembly component definintion.
        ' This assumes an assembly document is open.
        Dim oAsmCompDef As AssemblyComponentDefinition
        oAsmCompDef = ThisApplication.ActiveDocument.ComponentDefinition
       
        ' Set a reference to the transient geometry object.
        Dim oTG As TransientGeometry
        oTG = ThisApplication.TransientGeometry
       
        'Create a matrix.  A New matrix Is initialized With an identity matrix.
        Dim oMatrix As Matrix
        oMatrix = oTG.CreateMatrix
'        a7=Atan(N)'*PI()/180)
        'Set the rotation Of the matrix about the Z axis.
'        Call oMatrix.SetToRotation(a7,oTG.CreateVector(0, 0, 1), oTG.CreatePoint(0, 0, 0))
       
        ' Set the translation portion of the matrix so the part will be positioned
        ' at (3,2,1).
        Call oMatrix.SetTranslation(oTG.CreateVector((Parameter("Master:1", Parameter("KOORDINATE_X_"&i))/10 oE),(Parameter("Master:1", Parameter("KOORDINATE_Y_"&i))/10 oE) ,(Parameter("Master:1", Parameter("KOORDINATE_Z_"&i))/10 oE)))
       
        ' Add the occurrence.
        Dim oOcc As ComponentOccurrence
        oOcc = oAsmCompDef.Occurrences.Add("R:\Projekte\999999_Uebungsumgebung\Kraut\Obertrum Teilstück mit Bogen 3D.ipt", oMatrix)

    End If 
next_i:
Next

iLogicVb.RunRule("Master:1", "Allgemeine Angaben")

RuleParametersOutput
    '

[Diese Nachricht wurde von motofreakmd am 29. Okt. 2014 editiert.]

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 29. Okt. 2014 19:54    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 motofreakmd 10 Unities + Antwort hilfreich

Hallo

Bevor du die Verbindung der abgeleiteten Komponente irreversibel mit BreakLinkTofile kappst, versuch es vielleicht erstmal nur mit unterdrücken. Das DerivedPartComponent.SuppressLinkToFile Property machts möglich.

------------------
MfG
Ralf

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

motofreakmd
Mitglied
Student

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

Beiträge: 6
Registriert: 28.10.2014

erstellt am: 30. Okt. 2014 10:19    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 erst einmal für die Antwort! Die Idee ist nicht schlecht, nur glaube ich, dass die Eingefügten Teilsegmente überhaupt keine abgeleitete Bauteile sind.   wie kann ich diese denn zu solchen machen? Hat jemand einen entsprechenden Code für mich?

[Diese Nachricht wurde von motofreakmd am 30. Okt. 2014 editiert.]

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 30. Okt. 2014 18:46    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 motofreakmd 10 Unities + Antwort hilfreich

Hallo

Abgeleitete Komponenten erstellt man über den Befehl "Ableiten". 
Das bringt aber so nix. Ich verstehe das du die Teile sicher nicht hochladen darfst. Ich habe den Verdacht, das es statt AK über verknüpfte Parameter gemacht wurde. Wenn du in einem neu eingefügten Segment mal die fx-Parameter öffnest, müßten sich ganz unten die verknüpften Parameter befinden. Dort steht auch mit welchem Teil die Verknüpfung besteht. Diese Verknüpfung müßte für die variablen Parameter entfernt werden. Oder man legt einen Benutzerparameter an, und addiert in diesem den Wert des verknüpften Parameters (der für alle Segmente gleich bleibt) mit dem für dieses Teil nötigen Offset per Programmcode.
Unterdrücken läßt sich die Verknüpfung meines Wissens nicht.

------------------
MfG
Ralf

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

motofreakmd
Mitglied
Student

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

Beiträge: 6
Registriert: 28.10.2014

erstellt am: 03. Nov. 2014 10: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

Hallo,

verknüpft in dem Sinne sind die Parameter nicht.
Den einzelnen Segmenten werden über eine ilogic Regel in der Baugruppe die im Master (ipt ohne Zeichenelemente nur für das Einlesen und Speichern der Parameter) eingelesen Werte übergeben.

z.B.

Parameter("Obertrum Teilstück ohne Bogen 3D:"&i, "Gurtbreite") = Parameter("Master:1", GURTBREITE)

Ableiten klingt gut, nur weiß ich nicht, wie ich das in VB Code umsetze. Unglücklicherweise soll der Aufbau ja ohne Einflussnahme des Benutzers von statten gehen, wenn man die Eingabe der abgefragten Werte mal außer acht lässt.

Für ein abgeleitetes, eingefügtes Segment müsste die Übergabe der Parameter ja nur wie folgt abgeändert werden:

Parameter("Obertrum Teilstück ohne Bogen 3D-"&v&":"&i, "Gurtbreite") = Parameter("Master:1", GURTBREITE)
v wäre dann eine weitere variable, die die eingefügten Teilsegmente eines bestimmten Typs (gerade oder gebogen) hochzählt.

Irgendwie muss ich also realisieren, dass automatisch ein Bauteil abgleitet wird. Dieses wird dann in die Baugruppe eingefügt und die Parameter mit Werten versehen. Hat soetwas schon mal jemand gemacht? MfG
   

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 03. Nov. 2014 19: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 motofreakmd 10 Unities + Antwort hilfreich

Hallo

Ich glaub mit einer abgeleiteten Komponente wird das nicht funktionieren. Ich überlege die ganze Zeit warum du aus dem Bogen und dem geraden Stück nicht je ein iPart machst? Das erlaubt die Erstellung unabhängiger Bauteile mit verschiedenen Abmessungen, die Varianten können im Nachhinein umgeschaltet werden, Gleichteile basieren auf der gleichen Bauteildatei (gut für die Stückliste) und mittels iMates könnte man die Segmente zusammenheften.
Über deinen Dialog könntest du die Eckdaten abfragen, ermittelst daraus die einzufügende Variante und fügst diese ein.

Wird eine Menge Arbeit, aber meiner Meinung die erfolgversprechendste Variante.

------------------
MfG
Ralf

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

motofreakmd
Mitglied
Student

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

Beiträge: 6
Registriert: 28.10.2014

erstellt am: 04. Nov. 2014 15:03    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 für den Tipp. So wird ich's mal probieren!

MfG

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

motofreakmd
Mitglied
Student

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

Beiträge: 6
Registriert: 28.10.2014

erstellt am: 06. Nov. 2014 11: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

Ich habe mir jetzt iparts erstellt. Ist es möglich eine Version des iparts über ilogic zu erstellen, diese dann auch einzufügen (Versionsauswahl) und vllt auch bei bedarf zu löschen? MfG

[Diese Nachricht wurde von motofreakmd am 06. Nov. 2014 editiert.]

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