| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | |  | Von Digital Twins bis Hochleistungs-Computing: PNY präsentiert seine Zukunftstechnologien für die Industrie von morgen, eine Pressemitteilung
|
Autor
|
Thema: 3d Polylinie (Linie aus mehr als 2 Punkten) (3257 mal gelesen)
|
dechgo Mitglied Dipl. Ing. (FH)

 Beiträge: 93 Registriert: 13.04.2005 Win 7 (64bit) Inventor 2011 AutoCAD 2011 Producstream Professional Pro 2011
|
erstellt am: 24. Feb. 2011 10:05 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen, ich habe mich schon länger gefragt ob es in Invetor mittels VBA möglich ist direkt eine 3d Polylinie zu ergeugen. Also eine Linie welche gleich durch mehrere Punkte definiert ist. Meine momentane vorgehensweise ist, dass ich mittels einer Schleife 3d Linien aus 2 Punkten erzeuge wobei die Linien immer einen gemeinsamen Punkt haben...
Code:
oSketch3D.SketchLines3D.AddByTwoPoints(oPunkte3d(index - 1), oPunkte3d(index))
Die erzeugte Linie wird danach schon als zusammenhänge Kurve erkannt, also ein Sweeping entlang der erzeugten Linien ist möglich.Das einzige Problem ist, ich habe extrem viele Punkte und das erstellen dauert leider sehr lange. Ich hatte daher gehofft, dass es so ähnlich wie mit dem erstellen eines Splines geht bei dem man alle Punkte in einer Objekt-Kollektion sammelt und dem Spline dann sagt er soll durch alle Punkte gehen... Code:
oSketch3D.SketchSplines3D.Add(ofitpoints)
Erstellt man die Polylinie im AutoCAD ist es innerhalbt 1s erstellt, da dort die Linie komplett zusammen erstellt wird Im Inventor kann es aber bis zu 5min dauern, da er wirklich jede Linie einzeln zeichnet. Man kann schön zuschauen wie sich nach und nach die Linien aufbauen... Vielleicht kann man die Erstellung im Inventor beschleunigen indem man irgendwie sagt, dass er die Linien erst darstellen soll nachdem alle gezeichnet sind. Sowas wie "ScreenUpdating" ausschalten, wie es in Excel möglich ist. Was ich probiert habe und auch möglich ist, dass man die Polylinie in AutoCAD erstellt und diese dann in Inventor direkt in eine 3dSkizze lädt. Ich finde das aber etwas umständlich durch das hin und her kopieren mit AutoCAD & Inventor.... Ich würde mich über Tipps und Hinweise sehr freuen Danke im voraus Gruss Dennis Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaulSchuepbach Moderator Programmierer
   

 Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 25. Feb. 2011 07:01 <-- editieren / zitieren --> Unities abgeben:          Nur für dechgo
|
dechgo Mitglied Dipl. Ing. (FH)

 Beiträge: 93 Registriert: 13.04.2005 Win 7 (64bit) Inventor 2011 AutoCAD 2011 Producstream Professional Pro 2011
|
erstellt am: 25. Feb. 2011 14:59 <-- editieren / zitieren --> Unities abgeben:         
Hallo Paul, teilweise kann die "polyline" aus ca. 3000 Linien zusammengesetzt sein. Ich erstelle nicht für jede einzelne Linie eine eigene 3D Skizze, das würde auch nicht funktionieren, da ich danach an der erzeugten Linie entlang sweepen muss. Es wird eine 3d Skizze erstellt und in dieser werden die ganzen Linien erstellt wobei die Linien immer einen gemeinsamen Punkt haben. Dadruch erkennt Inventor das die Linien zusammengehören, wodurch ein späteres Sweepen möglich ist. Ja die Punkte kommen aus einer Tabelle, ich werde mal versuchen ein vereinfachte Tabelle zur Verfügung zu stellen. Je mehr Linien es sind (denn das variiert) umso langsamer wird Inventor. Also die ersten 100-200 Linien werden sehr schnell erstellt, aber dann wird es immer langsamer. Das ganze dient hier auch nur zur Visualisierung. Das ist also kein wirkliches Bauteil was später gefertigt wird.... Gruss Dennis Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaulSchuepbach Moderator Programmierer
   

 Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 28. Feb. 2011 07:50 <-- editieren / zitieren --> Unities abgeben:          Nur für dechgo
Hallo Dennis, ich denke, dass das Problem die vielen Linien in einer einzigen 3D-Skizze sind. Dass die Performance stark nachlässt bei vielen Skizzenelementen in einer einzigen Skizze ist bekannt. So Spontan fallen mir 2 Sachen ein: 1. Vor dem Erzeugen der der Linien die View aus- udn danach wieder einblenden: Code:
Dim oView As Inventor.View Set oView = oApp.ActiveView oView.Visible = False' jetzt Linien erzeugen oView.Visible = True
2. Linien auf mehrere Sketch3D verteilen: Du kannst ein Sweep auch erstellen mit Linien die über mehrere 3D-Skizzen verteilt sind. Dieser Weg ist etwas aufwändiger, aber ich vermute, dass damit die Performance massiv besser werden wird.
Aber mal Hand auf's Herz: wenn Du diese Funktion 1x am Tag brauchst - was sind dann 5 Minuten Wartezeit (im Vergleich zur manuellen Erstellung...) ? Also wenn Du eine solche Erstellung mehrmals täglich brauchst, dann lohnt sich der Aufwand. HTH ------------------ Grüsse, Paul Inventor-Programmierung, Inventor-Tools und Inventor API-Schulung Meine Tochter auf Youtube Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
dechgo Mitglied Dipl. Ing. (FH)

 Beiträge: 93 Registriert: 13.04.2005 Win 7 (64bit) Inventor 2011 AutoCAD 2011 Producstream Professional Pro 2011
|
erstellt am: 01. Mrz. 2011 11:16 <-- editieren / zitieren --> Unities abgeben:         
Hallo paul, danke für den Code um die View ein und ausschalten zu können. Damit geht es tatsächlich ein wenig schneller. Das mit mehreren 3d Skizzen muss ich bei Gelegenheit einmal ausprobieren. Du hast vollkommen recht wenn du sagst, dass ich die 5min warten kann. Aber da ich bei solchen Dingen etwas ungeduldig bin, kann es nie schnell genug gehen . Vor allem wenn man weiss das bei AutoCAD es direkt erstellt wird. Ich habe halt gedacht es gäbe irgendeine einfache Möglichkeit Inventor dazu zu bringen, dass er es direkt auf einmal zeichnet und nicht Linie für Linie... Aber vielen dank für deine Hilfe Paul. Gruss Dennis Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |