Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Zwischenraum mit Bauteilen befüllen

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:  Zwischenraum mit Bauteilen befüllen (549 mal gelesen)
AstraUrtyp
Mitglied


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

Beiträge: 6
Registriert: 11.10.2007

Unix CATIA V5 R16 SP4
hp workstation c8000

erstellt am: 26. Okt. 2007 11:26    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 liebe CAD-Gemeinde,

Situation:
Ich habe etwa 50 Bauteile im Produkt angeordnet.
Per Makro messe ich zwischen bestimmten Bauteilsflächen den Abstand.
Die Werte für die Abstände variieren zwischen 1000 mm und 2400 mm.
Für den Zwischenraum stehen sechs verschiedene Bauteile zur Verfügung:
50, 100, 200, 600, 900 und 1600 (alle Werte in mm)

Problem:
Nun möchte ich diese Lücke mit den oben genannten Bauteilen auffüllen und zwar in der Rangfolge der Größe nach. Und zwar von groß nach klein.
Ich habe es bereits mit mehreren ineinander geschachtelten If-Schleifen versucht, doch das scheint mir ein endloses Unterfangen zu sein. Im ersten Schritt geht es mir um einen Vorschlag der berechnet werden und dem Benutzer ausgegeben werden soll. (z.B.: Der Zwischenraum 1700 mm kann mit einem Bauteil 1600mm und einem Bauteil 100mm befüllt werden! usw.)

Frage:
Gibt es für dieses Problem eine Funktion oder bzw. einen einfacheren Weg (Schleife o.ä.)???

Ich bin Euch für jeden Tipp und/oder Vorschlag dankbar.

Gruß
AstraUrtyp

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

AstraUrtyp
Mitglied


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

Beiträge: 6
Registriert: 11.10.2007

Unix CATIA V5 R16 SP4
hp workstation c8000

erstellt am: 26. Okt. 2007 13:52    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

Entschuldigt bitte, aber meine System-Info ist scheinbar abhanden gekommen:

CATIA V5R16
Service Pack 4
UNIX

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

zoltan.bekesi
Mitglied



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

Beiträge: 321
Registriert: 22.10.2006

Job:
CATIA V5R19 / XP 32bit
MS Office 2003
Microstation V8 2004 Edition
DELL Precision M6300

erstellt am: 26. Okt. 2007 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 AstraUrtyp 10 Unities + Antwort hilfreich

Hallo,

Du könntest zwei verschachtelte Schleifen verwenden.
Die äußere Schleife wäre eine Do..While, die innere eine For..Next oder eine Do..While.
Die äußere Schleife sucht dann nach, bis noch etwas möglich ist und die Innere wählt den größtmöglichen aus.

Ohne Bedarf auf Vollständigkeit:

Code:

Dim aBauteilgroessen(5) as integer 'Array mit den Bauteilgrößen, Absteigend sortiert
aBauteilgroessen(0)=1600
aBauteilgroessen(1)=900
...
aBauteilgroessen(5)=50

Dim i as integer

Do While (Abstand>=aBauteilgroessen(5)) 'So kannst Du noch was einfügen
  for i=0 to 5
      if Abstand>=aBauteilgroessen(i) then
        'Du hast den größtmöglichen gefunden
        'hier kannst Du es einfügen oder was auch immer
        exit for 'steigt aus der Schleife aus, sonst würde jede weitere passen
      end if
  next
Loop


Gruß,
Zoltan

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

AstraUrtyp
Mitglied


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

Beiträge: 6
Registriert: 11.10.2007

Unix CATIA V5 R16 SP4
hp workstation c8000

erstellt am: 28. Okt. 2007 22: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

Hallo Zoltan,

vielen Dank für Deine schnelle Antwort. Dein Vorschlag klingt sehr gut!
Werde mich da mal ransetzen und es ausprobieren.

Gruß
Olli

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