Autor
|
Thema: SPAWorkbench - Measurable (2635 mal gelesen)
|
FiRo Mitglied Skript-Student
Beiträge: 26 Registriert: 07.11.2007 V5R17
|
erstellt am: 24. Jul. 2008 11:40 <-- editieren / zitieren --> Unities abgeben:
Hi, ich hab mal wieder ein problem Folgendes Szenario: Ich habe einen geschlossenen kantenzug. vom mittelpunkt aus geht eine gerade durch diesen kantenzug. jetzt nehme ich den/die schnittpunkt/e und moechte sie einer polylinie zufuegen. direkt geht das nicht, da der schnittpunkt mit der geraden mitwandert. also moechte ich die koordinaten des schnittpunktes auslesen und dort einen punkt erzeugen. normalerweise macht man sowas ja (soweit ich weiss) mit der spaWorkbench und dem measurable object. bei meinem code, kommt allerdings immer ein fehler: (der einfachheithalber, hab ich hier einfach ein test-punkt erzeugt [code] Dim p As Part Dim hybridShapeFactory1 As HybridShapeFactory Dim hybridShapePointCoord1 As HybridShapePointCoord Dim TheSPAWorkbench As SPAWorkbench Dim TheMeasurable 'As Measurable Dim ref As Reference Dim coords(2) 'As Variant Set p = CATIA.ActiveDocument.Part set hybridShapeFactory1 = p.HybridShapeFactory Set TheSPAWorkbench = CATIA.ActiveDocument.GetWorkbench("SPAWorkbench") Set hybridShapePointCoord1 = hybridShapeFactory1.AddNewPointCoord(0#, 0#, 0#) Set ref = part1.CreateReferenceFromObject(hybridShapePointCoord1) Set TheMeasurable = TheSPAWorkbench.GetMeasurable(ref) Call TheMeasurable.GetPoint(coords) [/code ] i-eine ahnung was ich falsch mach oder warum der fehler kommt? ich arbeite unter xp mit v5r17 ------------------ no milk today... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Moderator² Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 24. Jul. 2008 11:52 <-- editieren / zitieren --> Unities abgeben: Nur für FiRo
Hallo, wo bekommt er denn bei (Set ref = part1.CreateReferenceFromObject(hybridShapePointCoord1) Part1 her? Das ist doch ganicht deklariert. ------------------ MFG Rick Schulz Konfuzius sprach: "Wer sich das Alte noch einmal vor Augen führt, um das Neue zu verstehen, der kann anderen ein Lehrer sein."
[Diese Nachricht wurde von RSchulz am 24. Jul. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
FiRo Mitglied Skript-Student
Beiträge: 26 Registriert: 07.11.2007 V5R17
|
erstellt am: 24. Jul. 2008 11:55 <-- editieren / zitieren --> Unities abgeben:
|
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 24. Jul. 2008 11:57 <-- editieren / zitieren --> Unities abgeben: Nur für FiRo
Es müsste Set ref = p.CreateReferenceFromObject(hybridShapePointCoord1) heißen, aber was für ein Fehler kommt denn? ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
FiRo Mitglied Skript-Student
Beiträge: 26 Registriert: 07.11.2007 V5R17
|
erstellt am: 24. Jul. 2008 12:03 <-- editieren / zitieren --> Unities abgeben:
sorry, echt nicht mein tag heute. das wollte ich natuerlich auch noch reinschreiben. Es kommt: "Run-time error '-2147467259 (800004005)': The method GetPoint failed" ziemlich aussagekraeftig :-/ Auch interessant: Wenn ich die Variable 'TheMeasurable' explizit als 'Measurable' deklarier (ist in meinem code auskommentiert), dann kommt folgender fehler: "Compile Error: Function or interface marked as restricted, or the function uses an Automation type not supported in Visual Basic" Beider Fehler kommen in R16 wie R17. ------------------ no milk today... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 25. Jul. 2008 02:11 <-- editieren / zitieren --> Unities abgeben: Nur für FiRo
Hallo FiRo, meine erste (dumme) Frage ist: Weißt Du eigentlich, was Du tust bzw. programmierst? Nach meinem bescheidenen Verständnis kann das, was Du da an Code-Schnipsel hast, nie funktionieren! Warum? Du deklarierst zwar einen Punkt, erzeugst ihn aber nicht. Und dann versuchst Du die Koordinaten dieses nicht vorhandenen Punktes auszulesen und wunderst Dich, dass CATIA sagt: "Geht nicht!". Ich habe Deinen Code mal so angepasst, dass er läuft: Code: Dim p As Part Dim hybridBody As HybridBody Dim hybridShapeFactory1 As HybridShapeFactory Dim hybridShapePointCoord1 As HybridShapePointCoord Dim TheSPAWorkbench As SPAWorkbench Dim TheMeasurable 'As Measurable Dim ref As Reference Dim coords(2) 'As Variant Set p = CATIA.ActiveDocument.Part Set hybridBody = p.HybridBodies.Add Set hybridShapeFactory1 = p.HybridShapeFactory Set hybridShapePointCoord1 = hybridShapeFactory1.AddNewPointCoord(0, 0, 0) hybridBody.AppendHybridShape hybridShapePointCoord1 p.UpdateObject hybridBody Set TheSPAWorkbench = CATIA.ActiveDocument.GetWorkbench("SPAWorkbench") Set ref = part1.CreateReferenceFromObject(hybridShapePointCoord1) Set TheMeasurable = TheSPAWorkbench.GetMeasurable(ref) Call TheMeasurable.GetPoint(coords)
mfg, Lusilnie
------------------
Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!! frei nach größeren Geistern Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
FiRo Mitglied Skript-Student
Beiträge: 26 Registriert: 07.11.2007 V5R17
|
erstellt am: 29. Jul. 2008 09:18 <-- editieren / zitieren --> Unities abgeben:
hi lusilnie, ich bin zwar kein profi, aber denke schon grob zu wissen was ich tu. der code sollte eigentlich funktioniere, nach allem was ich bisher mit VBs erlebt hab. die deklaration des punktes ist mit dim hybridShapePointCoord1 as HybridShapePointCoord erledigt, die erzeugung mit Set hybridShapePointCoord1 = hybridShapeFactory1.AddNewPointCoord(0, 0, 0) mit hybridBody.AppendHybridShape hybridShapePointCoord1 fuegt man nur einen vorhandenen punkt einem geo.set hinzu. man kann allerdings schon vorher mit dem punkt arbeiten. das mach ich bisher mit allen projekten so und das tut auch. ich hab das absichtlich bisher so gemacht, da es mir zu unuebersichtlich wird, wenn ich alle 'hilfsgeometrien' einem geo.set hinzufueg. aber vielen dank fuer deinen hinweis. ------------------ no milk today... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
FiRo Mitglied Skript-Student
Beiträge: 26 Registriert: 07.11.2007 V5R17
|
erstellt am: 29. Jul. 2008 09:33 <-- editieren / zitieren --> Unities abgeben:
Asche auf mein Haupt. auch wenn ich nicht so recht verstehen warum, deine loesung tut. ich vermute, dass die workbenches vllt nicht ineinander uebergreifen oder die SPAWorkbench nur sachen sieht, die einem geo.set zugeordnet sind oder sonstige eigenarten von VBS. innerhalb einer workbench hatte es bis jetzt funktioniert und deklaration/erzeugung sollten auch so stimmen, wie ich's oben geschrieben hatte. oder ich hab irgendwas so richtig falsch verstanden. be it as it is, vielen dank ------------------ no milk today... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |