Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor
  Volumenkörper mit iLogic unsichtbar schalten

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: Inventor besser verstehen - Fläche löschen
Autor Thema:   Volumenkörper mit iLogic unsichtbar schalten (2278 mal gelesen)
kiri2
Mitglied
Tech.Produktdesigner


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

Beiträge: 34
Registriert: 13.03.2014

erstellt am: 19. Aug. 2014 13:27    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,

in Zusammenhang mit meiner Frage hier: http://ww3.cad.de/foren/ubb/Forum50/HTML/034449.shtml hat sich mir die Frage ergeben ob man Volumenkörper mit iLogic sichtbar und unsichtbar schalten kann.

Ich habe durch googeln ein Code gefunden der halbwegs Funktioniert. Jedoch benutzt dieser die Zeile:
oPartDef.SurfaceBodies.Item(1).Visible = False

Die Nummer "1" sagt ihm welchen Volumenkörper er ausblenden soll. Nur leider Ändern sich die oder irgendwas (es erschliesst sich mir nicht ganz). Und generell ist es sehr Fehleranfällig.

Gibt es da eine gute andere Methode? Am besten wo man per Benennung ausblenden kann!

Grüße

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

loop29
Mitglied



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

Beiträge: 903
Registriert: 15.02.2004

Factory Design Suite Ultimate 2012,
Dell T3600, 16 Gbyte, Quadro 4000
Dell M6800, 32 Gbyte, Quadro K5100M

erstellt am: 19. Aug. 2014 13:57    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 kiri2 10 Unities + Antwort hilfreich

Hi kiri2,

kopierst Dir den code von dem Link in eine neue Regel innerhalb des multibody parts und probierst mal aus.

http://inventortrenches.blogspot.fr/2013/01/ilogic-solid-body-visibility.html

Falls Du Dir das noch anpassen willst helfe ich auch gerne.
Der Code arbeitet mit der Component Definition von Inventor innerhalb des Multibody Parts. Komponenten sind hier die einzelnen Volumenkörper. Um an die Komponenten ranzukommen musst Du erst ein Objekt instanziieren:

Dim oCompDef as ComponentDefinition
oCompDef = ThisDoc.Document.ComponentDefinition

Dann die Volumenkörper:

Dim oBody as SurfaceBody

Dann legt Curtis sich einen Array an wo er die ganzen Volumenkörpernamen reinschmeißt.

Dim MyArrayList As New ArrayList
i = 1
For Each SurfaceBody in oCompDef.SurfaceBodies
oBody = oCompDef.SurfaceBodies.Item(i)
MyArrayList.add(oBody.Name)
i = i +1
Next

Dann lässt er den Benutzer über die InputListBox auswählen, welche Volumenkörper geschaltet werden sollen.

Der Rest ist dann ausführen der entsprechenden Auswahl.
Geschaltet wird über den Ausdruck: oBody.Visible = False/True

Beste Grüße

Falk

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

kiri2
Mitglied
Tech.Produktdesigner


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

Beiträge: 34
Registriert: 13.03.2014

erstellt am: 19. Aug. 2014 14:53    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

Okay habe es. War etwas vorschnell gleich zu Fragen.

Denke so sollte es gehen:

If Parameter = 2 Then
    i = 2
        For Each SurfaceBody In oCompDef.SurfaceBodies
          oBody = oCompDef.SurfaceBodies.Item(i)
          oBody.Visible = False

Next
End If

Oder bekomme ich da irgendwie die Namen mit rein?

[Diese Nachricht wurde von kiri2 am 19. Aug. 2014 editiert.]

[Diese Nachricht wurde von kiri2 am 19. Aug. 2014 editiert.]

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

loop29
Mitglied



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

Beiträge: 903
Registriert: 15.02.2004

Factory Design Suite Ultimate 2012,
Dell T3600, 16 Gbyte, Quadro 4000
Dell M6800, 32 Gbyte, Quadro K5100M

erstellt am: 19. Aug. 2014 17:53    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 kiri2 10 Unities + Antwort hilfreich

Du kommst an den Namen des Volumenkörpers nur ran über die Komponentendefinition, so wie in dem Beispiel von Curtis gezeigt.
Er geht ja über die Aufzählung aller Komponenten und schreibt sich den Namen mit oBody.Name in den Array.
Vielleicht gibt es eine Möglichkeit direkt auf die Komponente über den Namen zuzugreifen, aber das würd ich dann als ziemlich fummelig
empfinden wenn Du vorher den Browsernamen vorher eintippern musst.
Da finde ich die Darstellung in der Liste komfortabler.
Es wäre auch noch möglich über einen Selection Set im Browser.

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

loop29
Mitglied



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

Beiträge: 903
Registriert: 15.02.2004

Factory Design Suite Ultimate 2012,
Dell T3600, 16 Gbyte, Quadro 4000
Dell M6800, 32 Gbyte, Quadro K5100M

erstellt am: 20. Aug. 2014 16: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 Nur für kiri2 10 Unities + Antwort hilfreich

Hey Kiri,

hab grad nicht ganz soviel Zeit, aber zu Deinem Problem mit den Parametern:

Ich hatte mir mal eine Regel erstellt mit der ich die Werkstoffmaterialien in Bauteile & Baugruppen reingeschrieben hab.
Dort hab ich mit Try Catch eine Abfrage nach dem existierenden Parameter gemacht, weil die Regel ja sonst immer wieder den Parameter
ins Bauteil reinschreibt.

Hier ist der Code:

Sub Main()
Dim oDoc As Document
oDoc = ThisApplication.ActiveDocument

Dim oCompDef As ComponentDefinition
oCompDef = oDoc.ComponentDefinition

Dim oParams As Parameters
oParams = oCompDef.Parameters

Dim oUserParams As UserParameters
oUserParams = oParams.UserParameters

Dim Werkstoff As Parameter

Try
oTester = oUserParams.Item("Werkstoff")
Catch
oMaterialType = oUserParams.AddbyValue("Werkstoff", "", kTextUnits)
MultiValue.List("Werkstoff") = iProperties.Materials
End Try
End Sub

Ich hoffe Du kannst Dir daraus einen Reim machen 

Viel Erfolg

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

kiri2
Mitglied
Tech.Produktdesigner


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

Beiträge: 34
Registriert: 13.03.2014

erstellt am: 20. Aug. 2014 22:48    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

Das Problem ist jetzt das er immer in den Catch reingeht, egal ob der Parameter existiert oder nicht. So soll das doch nicht sein oder?

Try
Dann schauen ob der Parameter da ist.
Catch
Wenn nicht dann erstelle ihn.
End Try

Oder sehe ich das falsch?

Eine Möglichkeit gleich mehrere Parameter mit Nummerierung abzufragen geht nicht oder? Finde leider keinen Weg in der Hilfe von Inventor.
Also das ich gleich abfragen kann ob zum Beispiel Länge_1, Länge_2 ... Länge_x schon vorhanden sind?

[Diese Nachricht wurde von kiri2 am 21. Aug. 2014 editiert.]

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

loop29
Mitglied



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

Beiträge: 903
Registriert: 15.02.2004

Factory Design Suite Ultimate 2012,
Dell T3600, 16 Gbyte, Quadro 4000
Dell M6800, 32 Gbyte, Quadro K5100M

erstellt am: 21. Aug. 2014 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 kiri2 10 Unities + Antwort hilfreich

Ja, Try probiert hier den Wert aus "Werkstoff" in den UserParameter oTester reinzuschreiben. Das funktioniert nicht wenn "Werkstoff" nicht existiert und dann macht er mit catch weiter.

Man könnte ja jetzt auch mit einer If-Abfrage und einem Index die entsprechenden Parameter abfragen. Dann kannst Du auch mehrere Parameter über den Laufindex überprüfen.

Grüße

[Diese Nachricht wurde von loop29 am 21. Aug. 2014 editiert.]

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

kiri2
Mitglied
Tech.Produktdesigner


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

Beiträge: 34
Registriert: 13.03.2014

erstellt am: 22. Aug. 2014 08:41    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

Zitat:
Original erstellt von loop29:
Ja, Try probiert hier den Wert aus "Werkstoff" in den UserParameter oTester reinzuschreiben. Das funktioniert nicht wenn "Werkstoff" nicht existiert und dann macht er mit catch weiter.

Man könnte ja jetzt auch mit einer If-Abfrage und einem Index die entsprechenden Parameter abfragen. Dann kannst Du auch mehrere Parameter über den Laufindex überprüfen.

Grüße

[Diese Nachricht wurde von loop29 am 21. Aug. 2014 editiert.]


Hab jetzt alles zum laufen bekommen. Besten Dank für deine Hilfe! Viel bei gelernt und immer top Antworten erhalten!

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

loop29
Mitglied



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

Beiträge: 903
Registriert: 15.02.2004

Factory Design Suite Ultimate 2012,
Dell T3600, 16 Gbyte, Quadro 4000
Dell M6800, 32 Gbyte, Quadro K5100M

erstellt am: 22. Aug. 2014 10:20    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 kiri2 10 Unities + Antwort hilfreich

Hey Kiri,

sehr schön, freut mich das zu hören.
Viel Erfolg weiterhin 

Beste Grüße

Falk

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