Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Arbeitsebene workplane in Baugruppe (*.Iam)

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:  Arbeitsebene workplane in Baugruppe (*.Iam) (1102 mal gelesen)
VOSTA1
Mitglied
techn. Angestellter


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

Beiträge: 108
Registriert: 23.12.2002

erstellt am: 15. Dez. 2004 12:13    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,

wie kann man in einer Baugruppe (*.iam) eine Arbeitsebene über VBA erzeugen. Habe in der Hilfe nur was zu Bauteilen gefunden.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Private Sub Ebene_iam()
     
       
    Dim oPartDoc As Document
    Set oPartDoc = ThisApplication.ActiveDocument
   
    Dim RefPlane As WorkPlanes
    Set RefPlane = oPartDoc.ComponentDefinition.WorkPlanes
           
     
    MsgBox RefPlane.Count
   
    For i = 1 To RefPlane.Count STEP 1
   
    MsgBox RefPlane.Item(i).Name
   
         
    Next i
   
           
    ' Offsetabfrage für neue AE
    Dim Offset As String
    Offset = InputBox("Offsetwert für neue Geometriebezugsebene") + "mm"

  '----------------------------------
'wie muß es hier weitergehen????????????????????
'ab hier bekomme ich immer Fehlermeldungen

'Dim NewPlane As WorkPlanes
'Set NewPlane = RefPlane.AddByPlaneAndOffset(RefPlane.Item(1), Offset)
   
Call RefPlane.AddByPlaneAndOffset(RefPlane.Item(1), Offset)


End Sub

MFG VOSTA1

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

PaulSchuepbach
Moderator
Programmierer




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

Beiträge: 1005
Registriert: 01.10.2003

erstellt am: 15. Dez. 2004 13:44    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 VOSTA1 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von VOSTA1:
...    Dim RefPlane As WorkPlanes
    Set RefPlane = ...  '

Hallo Vosta,


'WorkPlanes' ist das Collection-Objekt ALLER Arbeitsebenen und nicht dasselbe wie 'WorkPlane'. Wenn Du ein eine Aebeitsebene brauchst, dann musst Du das auch entsprechend deklarieren:
Dim RefPlane As WorkPlane


Gruesse,

Paul

www.morecam.ch/cad.htm


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

VOSTA1
Mitglied
techn. Angestellter


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

Beiträge: 108
Registriert: 23.12.2002

erstellt am: 15. Dez. 2004 15:33    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 Paul,

habe ein Problem, da ich WorkPlane nicht definieren kann.

Bekomme immer eine Fehlermeldung :
++++++++++++++++++++++++++++++++++++++
Fehler beim kompilieren !
Ein modul hat einen unzulässigen Typ
++++++++++++++++++++++++++++++++++++++

Sub New_Plane()
    Dim oDoc As PartDocument
    Set oDoc = ThisApplication.ActiveDocument
    Dim RefPlane As workplane
    Set RefPlane = oDoc.Definition.workplane.Item(3)
    Dim Offset As Single
    Offset = InputBox("Geben Sie den Offsetwert ein:")
   
    ' Erstellung der neuen Ebene
    Dim oWp1 As WorkPlane
    Set oWp1 = oDoc.ComponentDefinition.WorkPlanes.AddByPlaneAndOffset(RefPlane, Offset)
   
End Sub

+++++++++++++++++++++++++++++++++++++++++++++

Dieses Makro für eine *.ipt läuft auch nicht

er macht bei
Dim oWp1 As WorkPlane  eine Fehlermeldung
Fehler beim kompilieren !
Ein modul hat einen unzulässigen Typ

und "WorkPlane"  wird danach vollkommen kleingeschrieben "workplane"
Obwohl über Auswahlmenü als "WorkPlane" eingefügt

Woran kann das liegen???

MFG


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

yamaha
Mitglied
Konstrukteur


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

Beiträge: 374
Registriert: 19.05.2004

Autocad/Inventor 2022, Windows 10 Pro 64Bit

erstellt am: 15. Dez. 2004 19:12    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 VOSTA1 10 Unities + Antwort hilfreich

Hallo Vosta,

also dieser Code müßte für ein IPT funktionieren:

Public Sub CreateWorkPlane()
Dim oCompDef As PartComponentDefinition
Set oCompDef = ThisApplication.ActiveDocument.ComponentDefinition
Dim oWp As WorkPlane
Set oWp = oCompDef.WorkPlanes.AddByPlaneAndOffset(oCompDef.WorkPlanes(1), 2.5)
oWp.Name = "Work Plane2"
End Sub

Für ein IAM wird´s schwierieger nach meinem Kenntnissstand.
In der Hilfe zum Objekt "Workplanes" und der Methode "AddByPlaneAndOffset" steht:
-------------------------------------------------------------------
Method that creates a new work plane that is parallel to the input plane at a specified distance in the specified direction. This method is not currently supported when creating a work plane within an assembly.
-------------------------------------------------------------------
In einem IAM geht anscheinend nur die Methode: AddFixed


------------------
Gruß Jörn

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

yamaha
Mitglied
Konstrukteur


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

Beiträge: 374
Registriert: 19.05.2004

Autocad/Inventor 2022, Windows 10 Pro 64Bit

erstellt am: 15. Dez. 2004 19:21    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 VOSTA1 10 Unities + Antwort hilfreich

Hallo Vosta,

hab noch was gefunden, was dir evtl. weiterhilft.
Dazu mußt du allerdings eine Arbeitsebene in einer
Baugruppe bereits vorhanden haben. Also keine Arbeitsebene
vom Ursprung. Dann die angelegte Arbeitsebene markieren und
folgender Code:

Public Sub OffsetWorkPlane()

Dim oDoc As AssemblyDocument
Set oDoc = ThisApplication.ActiveDocument

Dim oCompDef As AssemblyComponentDefinition
Set oCompDef = oDoc.ComponentDefinition

Dim oOriginalWorkPlane As WorkPlane
Set oOriginalWorkPlane = oDoc.SelectSet.Item(1)

Dim oXAxis As UnitVector
Dim oYAxis As UnitVector
Dim oOrigin As Point

Call oOriginalWorkPlane.Definition.GetData(oOrigin, oXAxis, oYAxis)

Dim oNormal As UnitVector
Set oNormal = oOriginalWorkPlane.Plane.Normal

Dim oOffset As Vector
Set oOffset = oNormal.AsVector

oOffset.ScaleBy (10)

Call oOrigin.TranslateBy(oOffset)

Dim oOffsetWorkPlane As WorkPlane
Set oOffsetWorkPlane = oCompDef.WorkPlanes.AddFixed(oOrigin, oXAxis, oYAxis)

End Sub

------------------
Gruß Jörn

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

VOSTA1
Mitglied
techn. Angestellter


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

Beiträge: 108
Registriert: 23.12.2002

erstellt am: 16. Dez. 2004 09:40    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

Vielen Dank für Eure Mühen.
Es scheint wohl an meiner Inventor Installation zu liegen.
Da das Makro bei meiner Kollegin läuft und auf meinem Rechner nicht.
Werde wohl neu installieren müssen, da ich überhaupt keine Ahnung habe
warum der "Workplane" Befehl nicht Verfügbar ist.
Alle anderen Makros laufen einwandfrei.
Er stört sich nur an "Workplane".
MFG

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

VOSTA1
Mitglied
techn. Angestellter


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

Beiträge: 108
Registriert: 23.12.2002

erstellt am: 16. Dez. 2004 10:06    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

Habe mein Problem gefunden!

Es lag daran, daß ich ein Modul erstellt habe mit dem Namen "workplane".
habe es in "Workplane_" umbenannt und alles läuft wieder.


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

SHP
Mitglied
Konstrukteur


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

Beiträge: 1331
Registriert: 17.07.2003

IV9-SP3
IV10-Sp3a
IV11

erstellt am: 30. Okt. 2006 22:15    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 VOSTA1 10 Unities + Antwort hilfreich

Hallo,
würde mich interessieren ob das jetzt von einer Ursprungsebene aus auch geht?


Zitat:
Original erstellt von yamaha:
Hallo Vosta,

hab noch was gefunden, was dir evtl. weiterhilft.
Dazu mußt du allerdings eine Arbeitsebene in einer
Baugruppe bereits vorhanden haben. Also keine Arbeitsebene
vom Ursprung. Dann die angelegte Arbeitsebene markieren und
folgender Code:

Public Sub OffsetWorkPlane()

Dim oDoc As AssemblyDocument
Set oDoc = ThisApplication.ActiveDocument

Dim oCompDef As AssemblyComponentDefinition
Set oCompDef = oDoc.ComponentDefinition

Dim oOriginalWorkPlane As WorkPlane
Set oOriginalWorkPlane = oDoc.SelectSet.Item(1)

Dim oXAxis As UnitVector
Dim oYAxis As UnitVector
Dim oOrigin As Point

Call oOriginalWorkPlane.Definition.GetData(oOrigin, oXAxis, oYAxis)

Dim oNormal As UnitVector
Set oNormal = oOriginalWorkPlane.Plane.Normal

Dim oOffset As Vector
Set oOffset = oNormal.AsVector

oOffset.ScaleBy (10)

Call oOrigin.TranslateBy(oOffset)

Dim oOffsetWorkPlane As WorkPlane
Set oOffsetWorkPlane = oCompDef.WorkPlanes.AddFixed(oOrigin, oXAxis, oYAxis)

End Sub


------------------
Gruß
Hans-Peter
Der Wahnsinn in Sachen Musik.

   Das Saxregister
  

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