| 
|  |  |  |  | CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48 |  |  |  |  |  | KISTERS 3DViewStation: Schnelligkeit und Präzision in dem neuen JT-Importer, eine Pressemitteilung 
 |  
| Autor | Thema:  Punkte aus Excel in Skizze (3093 mal gelesen) |  | bronnerc Mitglied
 Dipl.-Ing. (FH) Maschinenbau
 
  
 
      Beiträge: 17Registriert: 08.01.2008
 |    erstellt am: 19. Okt. 2010 16:36  <-- editieren / zitieren -->    Unities abgeben:            
  Moin zusammen. Ich versuche aus Ecxel Punkte zu lesen und in eine Skizze einzufügen.In 3D ist's klar, hab ich auch verstanden. Nur in eine Skizze einfügen bekomme ich nicht hin!
 Irgendwie mit Factory2D, aber wie genau?? Brauche dringend Hilfe!
 Bekannter Code für 3D:Sub CATMain()
 'Set CATIA = GetObject("", "CATIA.Application") ' wird nur benötigt, weil ich Excel als Entwicklungssumgebung benutze
 Dim Excel As Application
 Dim WB As Workbook
 Dim WS As Worksheet
 
 Set Excel = CreateObject("Excel.Application")       ' Excel starten
 Excel.Visible = True
 Set WB = Excel.Workbooks.Open("D:...Punkte.xls") ' Arbeitsmappe öffnen
 Set WS = WB.Worksheets.Item(1)                      ' Tabelle holen
 
 Set Part1 = CATIA.ActiveDocument.Part ' aktives part holen
 Set partDocument1 = CATIA.ActiveDocument
 Set HybShapeFac = Part1.HybridShapeFactory             'factory zu erstellen der Punkte
 Set HKoerper = CATIA.ActiveDocument.Part.HybridBodies  'hauptkörper holen zum einfügen der Punkte
 Set measurement_points = HKoerper.Add                  'Geoset einfügen
 measurement_points.Name = "Messpunkte"            'benennen
 
 nRow = 2                                                'ab Zeile 2 Zeile der Tabelle einlesen
 
 Do  'lesen bis EOF
 ' Spalte 1 = Name // Spalte 2,3,4 = Werte
 Element = (WS.Cells(nRow, 1).Value)
 XCoord = CDbl(WS.Cells(nRow, 2).Value)
 YCoord = CDbl(WS.Cells(nRow, 3).Value)
 ZCoord = CDbl(WS.Cells(nRow, 4).Value)
 
 Set hybridShapeFactory1 = Part1.HybridShapeFactory
 Set hybridShapePointCoord1 = hybridShapeFactory1.AddNewPointCoord(XCoord, YCoord, ZCoord)
 measurement_points.AppendHybridShape hybridShapePointCoord1   ' Punkt einfügen
 hybridShapePointCoord1.Name = Element                         ' Punkt benennen
 nRow = nRow + 1                                           ' Zeile hochzählen
 Loop While (WS.Cells(nRow, 2).Text <> "")                     ' Schleife verlassen, wenn Zelle leer ist
 
 Part1.Update              ' Part aktualisieren
 Excel.Quit                  ' Excel schliessen
 End Sub
 Was muss man ändern, damit die Punkte wie gesagt in eine Skizze eingefügt werden?Ich weiß, 3D und dann projizieren, aber das ist ja net so schön!
 Danke im Voraus! Hoffe, mir kann und will jemand helfen! Grüße    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |  | zoltan.bekesi Mitglied
 
 
   
 
      Beiträge: 321Registriert: 22.10.2006
 Job:CATIA V5R19 / XP 32bit
 MS Office 2003
 Microstation V8 2004 Edition
 DELL Precision M6300
 |    erstellt am: 19. Okt. 2010 19:00  <-- editieren / zitieren -->    Unities abgeben:           Nur für bronnerc   |  | bronnerc Mitglied
 Dipl.-Ing. (FH) Maschinenbau
 
  
 
      Beiträge: 17Registriert: 08.01.2008
 |    erstellt am: 22. Okt. 2010 16:04  <-- editieren / zitieren -->    Unities abgeben:            
  Vielen Dank, hat geklappt. Bin leider jetzt erst wieder dazu gekommen! Schon mal 10 U's an dich! Aber, die nächste Frage: Ich möchte in einer InputBox Zahlenwerte eingeben, aber nur Zahlenwerte.Wie kann ich das korrekt in einer Do Loop Until-Schleife beschreiben??? Ich bekomme es nicht hin!
   Danke im Voraus für die Hilfe!
 Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |  | Christian.O Mitglied
 Konstrukteur
 
     
 
      Beiträge: 1212Registriert: 17.07.2009
 Celsius-Mobile H720i7-3840QM
 32 Gb Arbeitsspeicher
 256 Gb SSD
 Quadro K2000M
 Windows 7 Professional (64 Bit)
 Catia V5R19 (64 Bit)
 SpacePilot Pro
 |    erstellt am: 22. Okt. 2010 16:12  <-- editieren / zitieren -->    Unities abgeben:           Nur für bronnerc   
  Servus, ich hab das bis jetzt immer so gelöst. Es wird aber sicherlich eine einfachere Lösung dafür geben. Code:
 '***Länge in die InputBox eingeben
 strEingabe = "Länge"
 strEingabe = InputBox("Geben Sie die Länge des Bauteils ein.", "Eingabe der Bauteillänge", strEingabe)
 
 '***Eingabe in eine Zahl umwandeln
 strAusgabe = IsNumeric(strEingabe)
 If (strAusgabe = True) And (strEingabe <> "0") And Not (strEingabe = "") Then
 
 '***Eingabe in eine Positive Zahl umwandeln
 strAusgabe = Abs(strEingabe)
 ElseIf strEingabe = "" Then
 MsgBox "Diesem Button wurde kein Befehl hinterlegt." + vbNewLine + _
 "Sie gelangen wieder zur Eingabe.", vbCritical + vbOKOnly, "Kein Befehl hinterlegt"
 Do
 '***Länge in die InputBox eingeben
 strEingabe = "Länge"
 strEingabe = InputBox("Geben Sie die Länge des Bauteils ein.", "Eingabe der Bauteillänge", strEingabe)
 
 '***Eingabe in eine Zahl umwandeln
 strAusgabe = IsNumeric(strEingabe)
 If strEingabe = "" Then
 MsgBox "Diesem Button wurde kein Befehl hinterlegt." + vbNewLine + _
 "Sie gelangen wieder zur Eingabe.", vbCritical + vbOKOnly, "Kein Befehl hinterlegt"
 ElseIf (strAusgabe = True) And (strEingabe = "0") Then
 MsgBox "0 kann nicht als Eingabe verwendet werden.", vbCritical + vbOKOnly, "Falsche Eingabe"
 ElseIf (strAusgabe = False) And (strEingabe <> "0") Then
 MsgBox "Die Eingabe kann nicht verwendet werden, da es sich um keine Zahl handelt.", vbCritical + vbOKOnly, "Falsche Eingabe"
 End If
 Loop Until (strAusgabe = True) And (strEingabe <> "0") And Not (strEingabe = "")
 
 '***Eingabe in eine Positive Zahl umwandeln
 strAusgabe = Abs(strEingabe)
 ElseIf (strAusgabe = True) And (strEingabe = "0") Then
 MsgBox "0 kann nicht als Eingabe verwendet werden.", vbCritical + vbOKOnly, "Falsche Eingabe"
 Do
 '***Länge in die InputBox eingeben
 strEingabe = "Länge"
 strEingabe = InputBox("Geben Sie die Länge des Bauteils ein.", "Eingabe der Bauteillänge", strEingabe)
 
 '***Eingabe in eine Zahl umwandeln
 strAusgabe = IsNumeric(strEingabe)
 If strEingabe = "" Then
 MsgBox "Diesem Button wurde kein Befehl hinterlegt." + vbNewLine + _
 "Sie gelangen wieder zur Eingabe.", vbCritical + vbOKOnly, "Kein Befehl hinterlegt"
 ElseIf (strAusgabe = True) And (strEingabe = "0") Then
 MsgBox "0 kann nicht als Eingabe verwendet werden.", vbCritical + vbOKOnly, "Falsche Eingabe"
 ElseIf (strAusgabe = False) And (strEingabe <> "0") Then
 MsgBox "Die Eingabe kann nicht verwendet werden, da es sich um keine Zahl handelt.", vbCritical + vbOKOnly, "Falsche Eingabe"
 End If
 Loop Until (strAusgabe = True) And (strEingabe <> "0") And Not (strEingabe = "")
 
 '***Eingabe in eine Positive Zahl umwandeln
 strAusgabe = Abs(strEingabe)
 ElseIf (strAusgabe = False) And (strEingabe <> "0") Then
 MsgBox "Die Eingabe kann nicht verwendet werden, da es sich um keine Zahl handelt.", vbCritical + vbOKOnly, "Fehler"
 Do
 '***Länge in die InputBox eingeben
 strEingabe = "Breite"
 strEingabe = InputBox("Geben Sie die Länge des Bauteils ein.", "Eingabe der Bauteillänge", strEingabe)
 
 '***Eingabe in eine Zahl umwandeln
 strAusgabe = IsNumeric(strEingabe)
 If strEingabe = "" Then
 MsgBox "Diesem Button wurde kein Befehl hinterlegt." + vbNewLine + _
 "Sie gelangen wieder zur Eingabe.", vbCritical + vbOKOnly, "Kein Befehl hinterlegt"
 ElseIf (strAusgabe = True) And (strEingabe = "0") Then
 MsgBox "0 kann nicht als Eingabe verwendet werden.", vbCritical + vbOKOnly, "Falsche Eingabe"
 ElseIf (strAusgabe = False) And (strEingabe <> "0") Then
 MsgBox "Die Eingabe kann nicht verwendet werden, da es sich um keine Zahl handelt.", vbCritical + vbOKOnly, "Falsche Eingabe"
 End If
 Loop Until (strAusgabe = True) And (strEingabe <> "0") And Not (strEingabe = "")
 
 '***Eingabe in eine Positive Zahl umwandeln
 strAusgabe = Abs(strEingabe)
 End If
 
 ------------------Mit freundlichen Grüßen aus Tirol
 Christian Obholzer
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |  | Anzeige.:
 Anzeige: (Infos zum Werbeplatz >>)
  |