Autor
|
Thema: Punkte aus Excel in Skizze (2742 mal gelesen)
|
bronnerc Mitglied Dipl.-Ing. (FH) Maschinenbau
Beiträge: 17 Registriert: 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: 321 Registriert: 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: 17 Registriert: 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: 1212 Registriert: 17.07.2009 Celsius-Mobile H720 i7-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 >>)
|