| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Skizzen erstellung in iam (1969 mal gelesen)
|
eagle82 Mitglied Konstrukteur
Beiträge: 35 Registriert: 23.06.2005 IV10 SP3a
|
erstellt am: 09. Mrz. 2006 11:45 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, ...nachdem ich im Formum noch nichts brauchbares gefunden habe, was mein Problem lösen könnte, schreib ich mal wieder einen eigenen Beitrag! Ich will eine Extrusion in einer iam vornehmen, soll ein nachträgliches Nachdrehen einer Zusammengebauten Gruppe darstellen. Die Gruppe besteht im Groben aus einer Platte in die eine Schraube kommt, welche nachgedreht und angebort wird und mittels eines Fixierstiftest gegen verdrehung gesichert wird. Nun ist aber mein Problem dass ich die funktion 'Sketches' über das AssamblyObject nicht ansprechen kann (...aus welchen Grund auch immer?) Bei einem PartDokument habe ich kein Problem eine Skizze zu erstellen, als Profil zu definieren und diese dann zu extrudieren. Nur bei der iam scheitere ich schon bei der erstellung der Skizze ...! Hoffe dass mir jemand hierbei weiterhelfen kann! Mfg und Vielen Dank für die Mühen gleich im Vorhinein! Nachtrag: Die Erstellung der Skizze bin ich mittels SendKeys umgangen, nun hab ich zwar eine Skizze offen ... nur scheitert´s jetzt bei der bearbeitung der Skizze! Weiß wer wie es möglich ist eine Aktive Skizze im Inventor als ein Sketch Objekt zu deklarieren (wo ich darauf zugreifen kann)??? Bitte um weitere Hilfe Mfg [Diese Nachricht wurde von eagle82 am 13. Mrz. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
eagle82 Mitglied Konstrukteur
Beiträge: 35 Registriert: 23.06.2005 IV10 SP3a
|
erstellt am: 13. Mrz. 2006 09:40 <-- editieren / zitieren --> Unities abgeben:
Also mein Anfängliches Problem, die Skizze zu erstellen, hätte ich jetzt eine Möglichkeit gefunden zu umgehen ... ich sende mittels dem Programm die Tastenbefehle für eine Skizze (-->SendKeys ("s") ) ... nur gleich nach diesem Problem folgt das Nächste Problem ... wie kann ich in dieser geöffneten Skizze zeichnen??? Dadurch dass ich keine Skizzenobjekt im VB habe kann ich auch keine Kreise seichnen oder dgl. ... --> Wie kann ich eine aktive Skizze von Inventor als Objekt definieren? --> Oder gibt´s noch weitere Möglichkeiten??? Bitte um Hilfe! Mfg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
eagle82 Mitglied Konstrukteur
Beiträge: 35 Registriert: 23.06.2005 IV10 SP3a
|
erstellt am: 15. Mrz. 2006 08:28 <-- editieren / zitieren --> Unities abgeben:
Hy Leute! Habe das Problem auf "russisch" gelöst ... dadurch dass anscheinend mehrere das Problem kennen hier mein Lösungsvorschlag: -Die Baugruppe aktiv setzten -mittels SendKeys("s",true) eine Skizze "manuell" in der iam aufrufen -diese Skizze als PlanarSketch definieren Dim oSketch As PlanarSketch Set oSketch = objI.ActiveEditObject nun kann man alle Befehle des SketchObjektes verwenden... -das Profil definieren Dim oProfile As Profile Set oProfile = oSketch.Profiles.AddForSolid -Beim aufrufen der Extrusion muss man wieder ein bischen trixsen ... SendKeys("e", True) (jedoch vorher die Baugruppe aktualisieren, sonst kommt Meldung und stört das Programm!) -Und die Eingaben bei der Extrusion habe ich dann auch gleich kreativ gestaltet: SendKeys(Tiefe, True) SendKeys("{enter}", True) ...damit funktioniert das eigentlich recht fein, ist vielleicht nicht gerade dass mit dem mann sich gerne zufrieden gibt (da ja nicht gerade viele Fehler oder unvorhergesehenes abgefangen werden kann) aber in der Not ... *g* Damit wünsche ich allen viel Spaß noch! Lg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mranderson Mitglied Entwicklungsingenieur Robotik
Beiträge: 70 Registriert: 25.04.2006 IV: Autodesk Inventor 9 VB: Visual Basic 6.0 OS: Microsoft Windows 2000 Professional SP 4 CPU: Intel Xeon 1,7 GHz Arbeitsspeicher: 1 GB
|
erstellt am: 22. Mai. 2006 08:52 <-- editieren / zitieren --> Unities abgeben: Nur für eagle82
Hallo, ich weiß, dass dieser Thread schon eine Weile her ist, allerdings bin ich jetzt auch in dieser Situation und vielleicht kann mir jemand meine Frage beantworten. Der Befehl sendkeys("s", true) funktioniert soweit ganz gut, aber wie bring ich dem bei, auf welche Fläche er denn die Skizze setzen soll? Weil wenn ich das sendkeys mache hängt einfach das Skizzensymbol an der Maus, die Skizze selbst wurde aber noch nicht erstellt. Also wenn mir dabei jemand helfen kann, bitte posten! Vielen Dank im voraus! Grüße MrAnderson alias René Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
eagle82 Mitglied Konstrukteur
Beiträge: 35 Registriert: 23.06.2005 IV10 SP3a
|
erstellt am: 22. Mai. 2006 09:01 <-- editieren / zitieren --> Unities abgeben:
Hallo René! Bevor du das SendKeys ausführst müsstest du eine Fläche selektieren, dann wird die Skizze automatisch auf der selektierten Fläche gemacht! Dafür hast du verschiedene Möglichkeiten, ich habe über die BrowserNode die XY-Ebene ("DoSelect") aktiviert und dann den SenkKeys-Befehl geschickt. Der Vorgang entspricht dem gleichen wie du es manuell machen würdest, anders herum kannst du das auch machen, dass du nach SendKeys eine Fläche anwählst ... Flächen findest du unter PartComponentDefinition...! Mfg Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mranderson Mitglied Entwicklungsingenieur Robotik
Beiträge: 70 Registriert: 25.04.2006 IV: Autodesk Inventor 9 VB: Visual Basic 6.0 OS: Microsoft Windows 2000 Professional SP 4 CPU: Intel Xeon 1,7 GHz Arbeitsspeicher: 1 GB
|
erstellt am: 22. Mai. 2006 09:40 <-- editieren / zitieren --> Unities abgeben: Nur für eagle82
Hi, danke für die schnelle Antwort! Jetzt habe ich aber irgendwie noch ein Problem. Der Befehel Sendkeys funktioniert nicht mehr. Mein Code: -------------------------------------------------- Dim oApp As Inventor.Application Set oApp = GetObject(, "Inventor.Application") Dim oAsmDoc As AssemblyDocument Set oAsmDoc = oApp.ActiveDocument SendKeys ("s") -------------------------------------------------- Kannst du mir mal schreiben, wie der Code richtig lauten müsste und vielleicht wie ich das machen muss, wenn ich eine Ursprungsebene automatisch auswählen lassen möchte. Vielen Dank schonmal! Grüße MrAnderson alias René Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
eagle82 Mitglied Konstrukteur
Beiträge: 35 Registriert: 23.06.2005 IV10 SP3a
|
erstellt am: 22. Mai. 2006 09:58 <-- editieren / zitieren --> Unities abgeben:
Hy! Also das ist ein kleines Modul das bei einer Schraube die in eine Platte eingeschraubt ist den überstand 'extrudiert'. 1.Teil Inventor aktivierung 2.Teil Offenes Document auf eine Baugruppe prüfen und aktivieren 3.Teil Die Ursprungsebene anwählen Wobei hier Item 2 angesprochen wird (XZ-Ebene) 3.Teil Skizze "s" - Grafik kappen "F7" - Kreis zeichnen "+M" 4.Teil aktive Skizze als objekt zuweisen & Kreis zeichnen 5.Teil Extrusion befüllen "e" Dieses Modul kannst du eigentlich in eine VB Sitzung kopieren müsste ohne weiteres funktionieren... (Angaben immer ohne Gewähr *g*) Hoffe das Hilft dir weiter, hat mich auch einige Nerven gekostet, habe aber bis jetzt noch keine andere Möglichkeit gefunden eine Skizze in einer Baugruppe zu erstellen gefunden! Mfg Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mranderson Mitglied Entwicklungsingenieur Robotik
Beiträge: 70 Registriert: 25.04.2006 IV: Autodesk Inventor 9 VB: Visual Basic 6.0 OS: Microsoft Windows 2000 Professional SP 4 CPU: Intel Xeon 1,7 GHz Arbeitsspeicher: 1 GB
|
erstellt am: 22. Mai. 2006 11:01 <-- editieren / zitieren --> Unities abgeben: Nur für eagle82
Vielen Dank!!! Funktioniert super! Allerdings brauch ich die Skizze nur zu öffnen, da das Zeichnen manuell gemacht werden muss. Ein kleines Anliegen hätte ich allerdings noch. Die Prozedur mit der Schleife zum auswählen der richtigen Ursprungsebene dauert allerdings ziemlich lange. Lässt sich das nicht irgendwie verkürzen, da ich ja genau weiß, welche Ebene ich auswählen möchte und wie die heißt? Außerdem möchte ich auf diese Ebene ausrichten lassen (hab ich über call SendKeys("{PGUP}", True) gemacht), weshalb ich die gesamte Schleife nochmal durchlaufen lassen muss. Kennst du eine Möglichkeit, um das ganze vielleicht zu verkürzen, oder zu mindest zum ausrichten das ganze nicht nochmal gemacht werden muss? Aber schonmal großes Dankeschön!!! Grüße MrAnderson alias René Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
eagle82 Mitglied Konstrukteur
Beiträge: 35 Registriert: 23.06.2005 IV10 SP3a
|
erstellt am: 22. Mai. 2006 11:20 <-- editieren / zitieren --> Unities abgeben:
Hy! Aber alles geht .. *g* Wenn du immer genau die gleiche Ebene brauchst dann lass sie nicht durchlaufen sondern sprich sie glich direkt an... oTopNode.BrowserNodes.Item("Ursprung").BrowserNodes.Item(2).DoSelect (Wenn er die Item ansprache über den Namen "Ursprung" nicht nimmt musst du nur den Index Nummerisch eingeben (meistens 2)) Und wenn du die Ebene "selected" hast dann kannst du über das oADoc.SelectSet.Item(1) die letzte Auswahl ansprechen ... kannst dir ja auch ein neues Objekt als Ebene zuweisen dann kannst du die Ebene mit deiner eigenen Variable ansprechen... Habe die Schleife nur drinnen weil sich gelegentlich etwas anderes ergibt und mehr spielraum habe bei den Abfragen ... Wegen dem Tempo das ist bei uns auch ein Problempunkt gewesen, wir haben uns jetzt entschlossen die Makros wieder in die VBA zu schreiben weil genau solche Sachen um das ~20-fache (mitgestoppt VB -> 1min60sek VBA -> 6sek) schneller gehen! Ein Kollege hat es so gemacht das er eine eigene dll in Inventor implimentiert hat und diese von VB anspricht (geht auch schneller!) Liegt irgendwo an der Schnittstelle von Inventor das die Geschwindigkeit so darunter leidet! Mfg Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mranderson Mitglied Entwicklungsingenieur Robotik
Beiträge: 70 Registriert: 25.04.2006 IV: Autodesk Inventor 9 VB: Visual Basic 6.0 OS: Microsoft Windows 2000 Professional SP 4 CPU: Intel Xeon 1,7 GHz Arbeitsspeicher: 1 GB
|
erstellt am: 22. Mai. 2006 11:51 <-- editieren / zitieren --> Unities abgeben: Nur für eagle82
|
mranderson Mitglied Entwicklungsingenieur Robotik
Beiträge: 70 Registriert: 25.04.2006 IV: Autodesk Inventor 9 VB: Visual Basic 6.0 OS: Microsoft Windows 2000 Professional SP 4 CPU: Intel Xeon 1,7 GHz Arbeitsspeicher: 1 GB
|
erstellt am: 24. Mai. 2006 14:25 <-- editieren / zitieren --> Unities abgeben: Nur für eagle82
Servus nochmal! nachdem das mit dem Erstellen einer neuen Skizze in einer Baugruppe wunderbar geklappt hat, hätte ich noch ein weiteres Problem: Ich möchte eine bereits erstellte und geschlossene Skizze wieder zum editieren öffnen. Ist das möglich und wenn ja, wie? Mit SendKeys kann man da ja glaube ich nicht handtieren, da man meines Wissens auschließlich über einen Doppelklick mit der Maus (oder Rechtsklick und Klick auf "Skizze bearbeiten") die Skizze zum editieren öffnen kann. Lässt sich das irgendwie praktisch Nachsimulieren? Ich hoffe es gibt da eine trickreiche Möglichkeit. Vielen Dank für Vorschläge!!! Grüße MrAnderson alias René
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
eagle82 Mitglied Konstrukteur
Beiträge: 35 Registriert: 23.06.2005 IV10 SP3a
|
erstellt am: 24. Mai. 2006 14:37 <-- editieren / zitieren --> Unities abgeben:
Hallo Rene! Also für dieses Problem brauchst du nicht viel Tricksen ... da gibt es verschiedene Möglichkeiten ... ...entweder du weißt genau wie die Skizze heißt und sprichst sie über den BrowserPane an und editierst sie ...(So wie das ansprechen der Ebene!) ...bzw du schaffst gleich beim erstellen der Skizze eine Objektzuweisung auf eine Variable von dir dann kannst du die zu jeder stelle deines Programmes direkt ansprechen... ...andere Möglichkeit ist es wenn du die letzte Skizze immer öffnen willst dass du einfach die Sketches "countest" und dann die letzte Skizze bearbeitest ... ...(mal überlegen was mir spontan noch einfällt ...) ...wenn du nur änderungen an Bemassungen machen willst könntest du sie auch über die Parameters ansprechen und ändern ... ...aber eine andere Möglichkeit geht auch mit SendKeys...nach dem gleichen Prinzip mit der erstellung markierst du die Skizze und simulierst einen doppelklick ...(musst du aber auch wissen wie die Skizze heißt!) Bei der Benennung von Skizzen ist Inventor ein bischen eigen, z.B.: Neu erstellt Skizze1,2 & 3 löscht du eine von diesen raus und erstellst eine neue dann nummeriert er chronologisch weiter, auch wenn du die 3 löscht geht er mit 4 weiter, sprich wenn du alle vorhandenen Skizzen löscht dann zählt er trotzdem bei 4 weiter, hast halt nur mehr die Skizze4 im modellbaum ...jedoch ist die Indexvergabe über das Programm immer von 1 weg egal wie der name ist -vorsicht beim Programmieren! Hoffe ich konnte dir weiter helfen! mfg Mario
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mranderson Mitglied Entwicklungsingenieur Robotik
Beiträge: 70 Registriert: 25.04.2006 IV: Autodesk Inventor 9 VB: Visual Basic 6.0 OS: Microsoft Windows 2000 Professional SP 4 CPU: Intel Xeon 1,7 GHz Arbeitsspeicher: 1 GB
|
erstellt am: 24. Mai. 2006 14:56 <-- editieren / zitieren --> Unities abgeben: Nur für eagle82
Hi Mario! habe auch versucht, über den BrowserPane zu gehen. Aber es steht kein .Edit zur Verfügung. --------------------------------------------------- Dim oApp As Inventor.Application Set oApp = GetObject(, "Inventor.Application") Dim oADoc As AssemblyDocument Set oADoc = oApp.ActiveDocument Dim oPane As BrowserPane Set oPane = oADoc.BrowserPanes.Item("Modell") Dim oTopNode As BrowserNode Set oTopNode = oPane.TopNode oTopNode.BrowserNodes.Item("Skizze 1").XXX ---------------------------------------------------- Kannst du mir erklären, was ich an oben angegeben Code ändern muss, damit ich grad die Skizze, die ich davor über das SendKeys erstellt habe, wieder öffnen will. Wenn ich die Längen der einzelnen Linien und deren Ausrichtung (oLinie(1).Geometry.EndPoint.X; oLinie(1).Geometry.EndPoint.Y usw.) auch ohne öffnen der Skizze ansprechen kann, wäre mir das auch recht. Die Skizze zum Editieren zu öffnen wäre mir aber lieber. Wäre super, wenn du mir mit dem Code helfen könntest! Grüße MrAnderson alias René Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
eagle82 Mitglied Konstrukteur
Beiträge: 35 Registriert: 23.06.2005 IV10 SP3a
|
erstellt am: 24. Mai. 2006 15:01 <-- editieren / zitieren --> Unities abgeben:
Versuch einmal statt XXX --> .doselect Dim oSketch as Sketch set oSketch = oADoc.SelectSet.Item(1) und dann oSketch.Edit So sollte das irgendwie gehen, hab´s jetzt nicht probiert also ohne Garantie ... Aber mit den Ansatz solltest du das schon schaffen! mfg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mranderson Mitglied Entwicklungsingenieur Robotik
Beiträge: 70 Registriert: 25.04.2006 IV: Autodesk Inventor 9 VB: Visual Basic 6.0 OS: Microsoft Windows 2000 Professional SP 4 CPU: Intel Xeon 1,7 GHz Arbeitsspeicher: 1 GB
|
erstellt am: 24. Mai. 2006 15:13 <-- editieren / zitieren --> Unities abgeben: Nur für eagle82
Sieht ja vielversprechend aus der Vorschlag, allerdings meckert er bei dem oSketch.Edit. Ich vermute, weil vorher beim oAdoc.SelectSet.Item(1) "nothing" steht. Habe aber natürlich das XXX in .DoSelect geändert. Frage mich nur, warum der die selektierte Skizze nicht erkennt, welche definitiv im Inventor Browser markiert wurde. Hast du eine Idee? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 24. Mai. 2006 15:24 <-- editieren / zitieren --> Unities abgeben: Nur für eagle82
|
mranderson Mitglied Entwicklungsingenieur Robotik
Beiträge: 70 Registriert: 25.04.2006 IV: Autodesk Inventor 9 VB: Visual Basic 6.0 OS: Microsoft Windows 2000 Professional SP 4 CPU: Intel Xeon 1,7 GHz Arbeitsspeicher: 1 GB
|
erstellt am: 24. Mai. 2006 15:30 <-- editieren / zitieren --> Unities abgeben: Nur für eagle82
|
mranderson Mitglied Entwicklungsingenieur Robotik
Beiträge: 70 Registriert: 25.04.2006 IV: Autodesk Inventor 9 VB: Visual Basic 6.0 OS: Microsoft Windows 2000 Professional SP 4 CPU: Intel Xeon 1,7 GHz Arbeitsspeicher: 1 GB
|
erstellt am: 29. Mai. 2006 09:19 <-- editieren / zitieren --> Unities abgeben: Nur für eagle82
Guten morgen! Also ... die Skizze, die ich wieder öffnen will, ist über dem Bauteilende. Die Skizze wird definitiv mit "oTopNode.BrowserNodes.Item("Skizze 1").DoSelect" ausgewählt. Das kann man einfach im Inventor nachschauen, ob die selektiert ist. Also muss der Fehler entweder bei dem "Set oSketch = oADoc.SelectSet.Item(1)" liegen, da beim Debuggen "Nothing" angezeigt wird, obwohl SelectSet.Count = 1 ist. Oder der Befehl "oSketch.Edit" funktioniert bei dieser Art von Skizze (in Baugruppe, über Bauteilende, ohne Extrusion) nicht. Gibt es denn eine andere Möglichkeit, die Linienlängen der Skizze auszulesen, ohne sie zum Editieren zu öffnen, oder stimmt irgendwas am Code nicht? Ich bin für alle Vorschläge sehr dankbar! Grüße MrAnderson alias René
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mranderson Mitglied Entwicklungsingenieur Robotik
Beiträge: 70 Registriert: 25.04.2006 IV: Autodesk Inventor 9 VB: Visual Basic 6.0 OS: Microsoft Windows 2000 Professional SP 4 CPU: Intel Xeon 1,7 GHz Arbeitsspeicher: 1 GB
|
erstellt am: 01. Jun. 2006 10:31 <-- editieren / zitieren --> Unities abgeben: Nur für eagle82
Guten Morgen allerseits! Jetzt muss ich nochmal nachfragen ... hat niemand eine Idee, ob man eine vorhandene Skizze in einer Baugruppe (auch über Umwege) öffnen kann? Und wenn ja, wie wäre das zu bewerkstelligen bzw. was habe ich bei meiner Ausführung (nach den Tipps, die hier bereits gegeben wurden) falsch gemacht habe? Also wenn jemand einen Einfall hat, wie man das Öffnen hinbekommen könnte, bitte unbedingt posten! Bin auf jeden Fall sehr dankbar!!! Einen schönen Tag noch! Grüße MrAnderson alias René Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
eagle82 Mitglied Konstrukteur
Beiträge: 35 Registriert: 23.06.2005 IV10 SP3a
|
erstellt am: 01. Jun. 2006 11:15 <-- editieren / zitieren --> Unities abgeben:
Hy Rene! Also wenn du die erstellte Skizze über den BrowserPane 'selecten' kannst dann brauchst du nur noch einen Doppelklick schicken ...durch das wird die Skizze auch in den Bearbeitungsmodus gebracht ... setzt natürlich voraus dass du weist wie die Skizze heißt!!! mfg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mranderson Mitglied Entwicklungsingenieur Robotik
Beiträge: 70 Registriert: 25.04.2006 IV: Autodesk Inventor 9 VB: Visual Basic 6.0 OS: Microsoft Windows 2000 Professional SP 4 CPU: Intel Xeon 1,7 GHz Arbeitsspeicher: 1 GB
|
erstellt am: 01. Jun. 2006 12:03 <-- editieren / zitieren --> Unities abgeben: Nur für eagle82
Hi! Ja, an sowas habe ich auch schon gedacht, habe aber in der Programmierhilfe nichts gefunden. Wie sieht denn der Befehl aus, einen Doppelklick zu schicken? Danke für die Antwort! Grüße MrAnderson alias René Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
eagle82 Mitglied Konstrukteur
Beiträge: 35 Registriert: 23.06.2005 IV10 SP3a
|
erstellt am: 01. Jun. 2006 12:09 <-- editieren / zitieren --> Unities abgeben:
|
mranderson Mitglied Entwicklungsingenieur Robotik
Beiträge: 70 Registriert: 25.04.2006 IV: Autodesk Inventor 9 VB: Visual Basic 6.0 OS: Microsoft Windows 2000 Professional SP 4 CPU: Intel Xeon 1,7 GHz Arbeitsspeicher: 1 GB
|
erstellt am: 01. Jun. 2006 13:05 <-- editieren / zitieren --> Unities abgeben: Nur für eagle82
Danke für den Hinweis. Aber wie das ganze aussehen soll kannst du mir nicht zufällig sagen? Ich finde auch in der visual basic hilfe nicht das passende. Also wenn du mir vielleicht den Code zeigen könntest wäre echt super. Habe im Moment noch keine Ahnung wie das aussehen soll. Danke schonmal für deine Hilfe! Grüße MrAnderson alias René Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
eagle82 Mitglied Konstrukteur
Beiträge: 35 Registriert: 23.06.2005 IV10 SP3a
|
erstellt am: 06. Jun. 2006 13:06 <-- editieren / zitieren --> Unities abgeben:
Hy! Also in den allgemeinen Teil: 'Bestimmen der Zugriffs-API von Windows für die Maussteuerung Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long) Private Const MOUSEEVENTF_LEFTDOWN = &H2 ' left button down Private Const MOUSEEVENTF_LEFTUP = &H4 ' left button up Und dann nur mehr mouse_event MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 mouse_event MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 ...das simuliert einen Doppelklick! Mfg Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mranderson Mitglied Entwicklungsingenieur Robotik
Beiträge: 70 Registriert: 25.04.2006 IV: Autodesk Inventor 9 VB: Visual Basic 6.0 OS: Microsoft Windows 2000 Professional SP 4 CPU: Intel Xeon 1,7 GHz Arbeitsspeicher: 1 GB
|
erstellt am: 06. Jun. 2006 16:30 <-- editieren / zitieren --> Unities abgeben: Nur für eagle82
Hi, vielen Dank für den Code ... darauf wäre ich nie gekommen. Allerdings funktioniert es trotzdem nicht. Muss ich da noch irgendwas ändern oder irgendeine Library aktivieren? Bei mir sieht das dann so aus: Code:
Set oApp = GetObject(, "Inventor.Application") Dim oADoc As AssemblyDocument Set oADoc = oApp.ActiveDocument Dim oPane As BrowserPane Set oPane = oADoc.BrowserPanes.Item("Modell") Dim oTopNode As BrowserNode Set oTopNode = oPane.TopNode oTopNode.BrowserNodes.Item("Skizze 1").DoSelect Dim oSketch As Sketch Set oSketch = oADoc.SelectSet.Item(1) mouse_event MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 mouse_event MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
Das wäre echt super, wenn das funktionieren würde. Einen schönen Abend noch! Grüße MrAnderson alias René Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
eagle82 Mitglied Konstrukteur
Beiträge: 35 Registriert: 23.06.2005 IV10 SP3a
|
erstellt am: 07. Jun. 2006 07:36 <-- editieren / zitieren --> Unities abgeben:
Hy! Also statt den .doselect brauchst du ein DoPreSelect (setzt den Mauszeiger über das Object!) denn bei do Select setzt du nur eine Markierung (hilft bei SendKeys, aber nicht für die Maus!) Und falls du es bei anderen Objekten einmal anwendest dann musst du auch schaun dass das Element auch sichtbar ist (.EnsureVisible) In die Allgemeine Deklaration hast du die Funktion- und Tastendeklaration reingeschrieben?! Sollte mit den DoPreSelect dann funktionieren! mfg Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mranderson Mitglied Entwicklungsingenieur Robotik
Beiträge: 70 Registriert: 25.04.2006 IV: Autodesk Inventor 9 VB: Visual Basic 6.0 OS: Microsoft Windows 2000 Professional SP 4 CPU: Intel Xeon 1,7 GHz Arbeitsspeicher: 1 GB
|
erstellt am: 07. Jun. 2006 08:58 <-- editieren / zitieren --> Unities abgeben: Nur für eagle82
Guten Morgen, vielen Dank! Hat einwandfrei funktioniert! Da muss man ja echt mit allen Tipps und Tricks arbeiten. Aber irgendwie kann ich dir keine Units geben, weil wenn ich auf 10 klicke öffnet sich ein fenster, wo ich dann schauen kann, wem ich bereits units gegeben habe, und da stehst du nur einmal drin, obwohl ich dir ja jetzt eigentlich schon 2 mal 10 Units gegeben habe. Naja, vielleicht fällt dir dazu was ein, dann würde ich dir die Units gerne zukommen lassen. Bin auf jeden Fall froh, dass das jetzt so super funktioniert. Grüße MrAnderson alias René Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
eagle82 Mitglied Konstrukteur
Beiträge: 35 Registriert: 23.06.2005 IV10 SP3a
|
erstellt am: 07. Jun. 2006 11:44 <-- editieren / zitieren --> Unities abgeben:
Hy Rene! Freut mich dass es rennt, das reicht mir! Wie gesagt mich interessieren die Units wirklich nicht so, mir gehts eher darum dass meine Programme rennen wenn ich nicht weiterkomme ... und ebenso helfe ich auch gerne anderen die Probleme die Inventor mit sich bringt zu lösen(umgehen!) mfg Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 IV9-SP3 IV10-Sp3a IV11
|
erstellt am: 03. Nov. 2006 22:17 <-- editieren / zitieren --> Unities abgeben: Nur für eagle82
|
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 IV9-SP3 IV10-Sp3a IV11
|
erstellt am: 04. Nov. 2006 23:20 <-- editieren / zitieren --> Unities abgeben: Nur für eagle82
|
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 IV9-SP3 IV10-Sp3a IV11
|
erstellt am: 04. Nov. 2006 23:58 <-- editieren / zitieren --> Unities abgeben: Nur für eagle82
Hallo nochmal, die Skizze umbenennen funzt auch, nur der Browsereintrag zieht dabei nicht mit. Private Sub MakeSketch() Dim odoc As AssemblyDocument Set odoc = ThisApplication.ActiveDocument Dim oCompDef As AssemblyComponentDefinition Set oCompDef = odoc.ComponentDefinition Dim oTG As TransientGeometry Set oTG = ThisApplication.TransientGeometry Dim oPlane As WorkPlane Set oPlane = oCompDef.WorkPlanes.Item(2) Dim oSketch As PlanarSketch Set oSketch = oCompDef.Sketches.Add(oPlane, True) oSketch.Edit Dim varRadius As Double varRadius = 3 Dim oPoint0 As Point2d Set oPoint0 = oTG.CreatePoint2d(0#, 0#) Call oSketch.SketchCircles.AddByCenterRadius(oPoint0, 2#) oSketch.ExitEdit 'Change the name. oSketch.name = "My New Sketch" odoc.Update End Sub ------------------ Gruß Hans-Peter Der Wahnsinn in Sachen Musik. Das Saxregister Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |