Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor
  mit VBA Stücklistenspalte hinzufügen

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
  
Exklusives EDU-Programm für RTX PRO Blackwell, eine Pressemitteilung
Autor Thema:  mit VBA Stücklistenspalte hinzufügen (679 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: 14. Jan. 2003 13:48    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,

habe folgendes Anliegen:

möchte in eine bestehende *.idw mit Stückliste eine benutzerdefinierte Spalte in der Stückliste hinzufügen

Bei den Werkstoffen funktioniert folgendes Makro:
-------------------------------------------------------------------
Sub Neuen_Werkstoff_einfügen()
'fügt in einer *.ipt ein neues Material hinzu
'dieses Makro funktioniert nur wenn Material noch nicht vorhanden
Dim oPartDoc As PartDocument
Set oPartDoc = ThisApplication.ActiveDocument
Dim oNewMaterial As Material
Dim Werkstoff_neu As String, Dichte As Single
Werkstoff_neu = "S355J2G3"
Dichte = 7.85
Set oNewMaterial = oPartDoc.Materials.Add(Werkstoff_neu, Dichte)
End Sub
--------------------------------------------------------------------
Wo liegt mein Fehler für das Stücklisten Makro ???????????????
--------------------------------------------------------------------
Sub Neue_Spalte_in_Stückliste_hinzufügen()

    Dim oDrawDoc As DrawingDocument
    Set oDrawDoc = ThisApplication.ActiveDocument
   
    Dim oPartList As PartsList
    Set oPartList = oDrawDoc.ActiveSheet.PartsLists.Item(1)
   
    MsgBox ("Felder Senkrecht  : " & oPartList.PartsListColumns.Count)
    MsgBox ("Felder Waagerecht : " & oPartList.PartsListRows.Count)
   
   
    Dim Neue_Spalte As String
    Neue_Spalte = "Test"
   
'bis hier läuft es

    Dim NewColumn As PartsListColumn
    Set NewColumn = oPartList.PartsListColumns.Item(Neue_Spalte)
   
    MsgBox ("Felder Senkrecht  : " & oPartList.PartsListColumns.Count)
    MsgBox ("Felder Waagerecht : " & oPartList.PartsListRows.Count)

End Sub

---------------------------------------------------------------------

wer hat sich damit schon beschäftigt

MFG K. W.


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

daywa1k3r
Ehrenmitglied V.I.P. h.c.
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

Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570
Laptop: Alienware m17x
Win7, Inventor2012 64Bi

erstellt am: 14. Jan. 2003 13:56    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,

es wäre nett, wenn Du die Leuten sagen würdest ob die Tipps angekommen/geholfen haben.

http://ww3.cad.de/foren/ubb/Forum50/HTML/002061.shtml

Das hilft auch anderen Forum Teilnehmern.

Bis dahin...

------------------
Grüße daywa1k3r

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: 14. Jan. 2003 14:17    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  daywa1k3r,

habe Ihre Antwort erhalten. Bitte um Entschuldigung, dass ich mich nicht gemeldet habe. War zwischen den Tagen im Urlaub.
Hatte das Problem bis zu Ihrer Antwort schon gelöst.

Da ich jetzt wieder jeden Tag arbeite würde ich mich über eine erneute Antwort freuen.


Falls es Sie Interessiert meine Lösung
-----------------------------------------------

Sub Benutzerdefinierte_Properties()
'auslesen der Benutzerdefinierten Eigenschaften
Dim oApplication As Inventor.Application
Set oApplication = GetObject(, "Inventor.Application")
Dim oDoc As Document
Set oDoc = oApplication.ActiveDocument
Dim oPropsets As PropertySets
Set oPropsets = oDoc.PropertySets

 
Open "C:\tmp\testprop-2.txt" For Output As #1
'Schreibt alle Benutzerdefinierten Eigenschaften in ein Textfile
    Dim oProp As Property
    Set oPropSet = oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}")
   
    i = 1
    For Each oProp In oPropSet
    Dim Name As String
        Name = oProp.Name

    Dim Value As Variant
        Value = oProp.Value
 
    Dim PropertyId As Long
    PropertyId = oProp.PropId
   
    Display_Name = oPropSet.InternalName
   
    'MsgBox (Display_Name & " Name : " & Name & "  PropID " & PropertyId & " i = " & i)
   
    i = i + 1
   
    Name_Länge = Len(Name)
        Space_1 = 33 - Name_Länge
       
        If PropertyId < 9.9 Then
        Space_2 = 1
        End If
        If PropertyId > 9.9 Then
        Space_2 = 0
        End If
     
    file1 = Display_Name & " Name : " & Name & Space(Space_1) & "PropID " & Space(Space_2) & PropertyId & " i = " & i & " Value = " & Value
    Print #1, file1
   
    If Name = "Abmessung" Then
    CB_Abmessung.Value = True
    TB_Rohteilnummer.Value = oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Abmessung").Value
    End If

If CB_Abmessung.Value = False Then
    oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Add sAbmessung, "Abmessung"
    End If
       

'usw.......
         
Next
Close #1


End Sub

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

daywa1k3r
Ehrenmitglied V.I.P. h.c.
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

Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570
Laptop: Alienware m17x
Win7, Inventor2012 64Bi

erstellt am: 14. Jan. 2003 14:37    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,

eine Lösung interessiert immer. Und zwar nicht nur mich 

Zu dein Problem, das hier:

Set NewColumn = oPartList.PartsListColumns.Item(Neue_Spalte)

sieht falsch aus. Du übergibst als Item einen String. Ich glaube es wäre besser:

oPartList.PartsListColumns.Item(1).Title = Neue_Spalte

aber das erzeugt nicht eine neue Spalte. Mich würde auch interesieren ob sowas geht. Aber normal schon.

Vielleicht

Dim neu as Long
neu = oPartList.PartsListRows.Count + 1
oPartList.PartsListColumns.Item(neu).Title = Neue_Spalte

Kann ich aber jetzt leider nicht testen.


Bis bald...

------------------
Grüße daywa1k3r

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

Pisarz
Mitglied



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

Beiträge: 280
Registriert: 05.03.2002

AIP2011 Win7x64
HP Z400/W3565(3.2GHz) 12GB RAM
100GB SSD / 1TB Raid1
MSI R5770 Hawk
SpacePilot

erstellt am: 14. Jan. 2003 16:59    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

HI,

von der Idee der OOP her muss das Objekt PartsListColums (die "Sammlung" aller Spalten) eine Methode Add mitbringen, damit es eine neue Spalte gibt.

Gibts aber nicht. 


Also: Warten auf IV 8.3 SP1

------------------
Grüße Jörgen

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: 14. Jan. 2003 17:30    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

Das hab ich mir auch gedacht. Gibst aber nicht.

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

daywa1k3r
Ehrenmitglied V.I.P. h.c.
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

Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570
Laptop: Alienware m17x
Win7, Inventor2012 64Bi

erstellt am: 14. Jan. 2003 18:25    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:
von der Idee der OOP her muss das Objekt PartsListColums (die "Sammlung" aller Spalten) eine Methode Add mitbringen, damit es eine neue Spalte gibt.

Genau die (Add) habe ich versucht ihm aufzuzwingen, aber er wollte es nicht.

------------------
Grüße daywa1k3r

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

daywa1k3r
Ehrenmitglied V.I.P. h.c.
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

Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570
Laptop: Alienware m17x
Win7, Inventor2012 64Bi

erstellt am: 15. Jan. 2003 07:32    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:

Hi,

Thank you for contacting us.
I am afraid that there is no APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) method to do this as of now.

Sorry for the bad news,


autodesk
Thilaknath Rao
Developer Technical Services


------------------
Grüße daywa1k3r

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

Pisarz
Mitglied



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

Beiträge: 280
Registriert: 05.03.2002

AIP2011 Win7x64
HP Z400/W3565(3.2GHz) 12GB RAM
100GB SSD / 1TB Raid1
MSI R5770 Hawk
SpacePilot

erstellt am: 15. Jan. 2003 13: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

Naja, dass wollte ich eigentlich mit meinem Hinweis auf IV 8.3 sagen. Obwohl ich ehrlich gesagt nicht glaube, dass die das überhaupt implementieren.

Es gibt im übrigen noch ein anderes Problem mit den Stücklisten. Wenn man bei der Erstellung "Hauptbaugruppe" wählt, dann kann bei verschachtelten Baugruppen nur die oberste Ebene abgefragt werden. Wenn mann Unterbaugruppen "aufklappt", dann ändert sich im APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface)-Objekt nix.

Beispiel:

sowohl die Liste

ITEM  NAME
1        Verschraubung
2        Haken

als auch die aufgeklappte Liste

ITEM  NAME
1        Verschraubung
1.1      Schraube
1.2      Scheibe
1.3      Mutter
2        Haken


liefert
PartList.PartsListRows(1).Item(2) "Verschraubung"
PartList.PartsListRows(2).Item(2) "Haken"

Aber wahrscheinlich ist das kein Bug sondern ein Feature.

------------------
Grüße Jörgen

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

daywa1k3r
Ehrenmitglied V.I.P. h.c.
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

Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570
Laptop: Alienware m17x
Win7, Inventor2012 64Bi

erstellt am: 15. Jan. 2003 16:28    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

Gut dass wir das Feature jetzt schon haben und nicht auf die nächste Version von IV warten müssen 
Ja, das stimmt, aber sowas ist zwar ein Bug, aber reparabel. Es wäre möglich alle Zeilen einzulesen (zB. txt Datei mit Separator), die Liste zu löschen und anschliessend Row(1) für jede Zeile durch zB. BubbleSort zu jagen. Danach alles wieder reinschreiben. Sauarbeit, aber es würde gehen.

------------------
Grüße daywa1k3r

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

Pisarz
Mitglied



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

Beiträge: 280
Registriert: 05.03.2002

AIP2011 Win7x64
HP Z400/W3565(3.2GHz) 12GB RAM
100GB SSD / 1TB Raid1
MSI R5770 Hawk
SpacePilot

erstellt am: 15. Jan. 2003 16:37    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

nee, nee

Die Zeilen

1.1      Schraube
1.2      Scheibe
1.3      Mutter

existieren im Objekt schlichtweg nicht.

Mann müsste sich seine eigene Stückliste zusammenbauen, indem man die ComponentDefinition des Assembly (rekursiv) selbst durchsucht.

Auch 'ne Sauarbeit.

------------------
Grüße Jörgen

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



Anzeige:Infos zum Werbeplatz >>

speedyPDM CAD APP für Andere, Datenaustausch, Allgemeine Werkzeuge

speedyPDM ist das führende technische Dokumenten- und Produktdatenmanagementsystem für Solidworks, Solid Edge, Inventor, AutoCAD, ZWCAD, BricsCAD, Office und Email inklusive Revisionsmanagement.

daywa1k3r
Ehrenmitglied V.I.P. h.c.
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

Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570
Laptop: Alienware m17x
Win7, Inventor2012 64Bi

erstellt am: 15. Jan. 2003 19: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 Nur für VOSTA1 10 Unities + Antwort hilfreich

Zitat:

Die Zeilen

1.1  Schraube
1.2  Scheibe
1.3  Mutter

existieren im Objekt schlichtweg nicht.


Ah so, ... *aktexmelodiepfeif* Ja, wozu brauchst Du die überhaupt  ? Die Zeilen gehen dich ja nichts an 
Nein mal im Ernst, vielleicht ist es ein Inventor Jedi Gedanken Trick !!! Und wir Menchen beherrschen ihn nicht. Wer weiss... Die Warheit ist irgendwo da draussen *erneutaktexmelodiepfeif*

Naja, wie wir es auch immer drehen, ist progen auf Inventor eine SAUARBEIT !!!

------------------
Grüße daywa1k3r

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)2024 CAD.de | Impressum | Datenschutz