Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Versatz in Skizze

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Versatz in Skizze (1195 mal gelesen)
TimC
Mitglied



Sehen Sie sich das Profil von TimC an!   Senden Sie eine Private Message an TimC  Schreiben Sie einen Gästebucheintrag für TimC

Beiträge: 21
Registriert: 26.02.2008

erstellt am: 14. Apr. 2008 12:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Blech_Versatz.gif

 
Hallo zusammen,

ich möchte einen Versatz der äußeren Kontur des Bleches nach innen zeichnen.

Dazu gehe ich wie folgt vor:

Code:

Dim doc As PartDocument
Set doc = ThisApplication.ActiveDocument

Dim oDef As SheetMetalComponentDefinition
Set oDef = doc.ComponentDefinition

Dim oFace As Face
Set oFace = oDef.FlatPattern.BaseFace

Set oSk = oDef.Sketches.Add(oFace, True)
oSk.Name = "LochSkizze"


Dim oCollection As ObjectCollection
Set oCollection = ThisApplication.TransientObjects.CreateObjectCollection

For x = 1 To oSk.SketchLines.Count
    oCollection.Add oSk.SketchLines.ITEM(x)
Next

Dim o As SketchEntitiesEnumerator
Set o = oSk.OffsetSketchEntitiesUsingDistance(oCollection, 1.2, True)


Das funktioniert aber nur so lange bis ich zusätzlich noch eine innere Kontur zeichne (Siehe Anhang).

Ich muss dazu sagen das ich sachen Inventor-VBA-Zeichnen noch totaler Anfänger bin.

Hat jemand vielleicht einen Tipp wie man das eleganter gestalten kann?

Gruß, Tim

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

daywa1k3r
Moderator
Softwareentwickler




Sehen Sie sich das Profil von daywa1k3r an!   Senden Sie eine Private Message an daywa1k3r  Schreiben Sie einen Gästebucheintrag für daywa1k3r

Beiträge: 3497
Registriert: 01.08.2002

Alienware m17x, Win7, Inventor2012

erstellt am: 14. Apr. 2008 13:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für TimC 10 Unities + Antwort hilfreich

Ich kann es jetzt nicht testen, aber es kann sein, dass mehrere Skizzen mit gleichen Namen nicht zulässig sind:

Code:

oSk.Name = "LochSkizze"

Um das auszuschließen kannst du beim zweiten Durchlauf den Skizzennamen auf „LochSkizze2“ setzen.

------------------
Grüße Igor

FX64 Software Solutions

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

TimC
Mitglied



Sehen Sie sich das Profil von TimC an!   Senden Sie eine Private Message an TimC  Schreiben Sie einen Gästebucheintrag für TimC

Beiträge: 21
Registriert: 26.02.2008

erstellt am: 14. Apr. 2008 14:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Igor,

richtig, Inventor erlaubt keinen doppelten Skizzennamen. Aber das ist eigentlich auch nicht das Problem.

Ich glaube ich habe mich nicht eindeutig ausgedrückt.

Ich erstelle eine Skizze auf der Hauptfläche des Bleches "BaseFace":

Code:

Dim doc As PartDocument
Set doc = ThisApplication.ActiveDocument
Dim oDef As SheetMetalComponentDefinition
Set oDef = doc.ComponentDefinition

Dim oFace As Face
Set oFace = oDef.FlatPattern.BaseFace

Set oSk = oDef.Sketches.Add(oFace, True)



(der Name der Skizze wurde weggelassen)

Darauf erstellt dann der Inventor die gewünschte Skizze und zeichnet die Kontur nach (im Anhang mit der Lila-Kontur).
in diesem Fall auch die Innere!
Um einen Versatz mit Inventor zu erstellen lade ich alle SketchLines in eine ObjectCollection. Daraus lässt sich nun ein Versatz erstellen.
Problem: In der ObjectCollection sind nun auch die SketchLines der Inneren-Kontur. Beim Versatz-Befehl gibt das Probleme (wie man sich vorstellen kann).

Code:

Dim oCollection As ObjectCollection
Set oCollection = ThisApplication.TransientObjects.CreateObjectCollection

For x = 1 To oSk.SketchLines.Count
    oCollection.Add oSk.SketchLines.ITEM(x)
Next

Dim o As SketchEntitiesEnumerator
Set o = oSk.OffsetSketchEntitiesUsingDistance(oCollection, 1.2, True)


Ich suche also einen Weg wie ich in der "ObjectCollection" nur die SketchLines der äußeren Kontur habe.

Gruß, Tim

[Diese Nachricht wurde von TimC am 14. Apr. 2008 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rtend12
Mitglied
Dipl.-Ing. (FH) Maschinenbau / Konstrukteur


Sehen Sie sich das Profil von rtend12 an!   Senden Sie eine Private Message an rtend12  Schreiben Sie einen Gästebucheintrag für rtend12

Beiträge: 436
Registriert: 21.07.2004

Catia V5 (R16SP5, B18SP5)
VB.Net 2003

erstellt am: 14. Apr. 2008 20:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für TimC 10 Unities + Antwort hilfreich

Hallo Tim,

du könntest dir die Linien der ersten Skizze merken.
Entweder du nutzt die RefernceKey-Funktionalität oder du vergibst jeder Linie der ersten Skizze ein AttributeSet.
Beim 2. Versatz wertest du das aus und nimmst nur die Linien in die Collection, die den passenden ReferenceKey oder AttributeSet haben.

Gruß
Reinhard

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz