Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Makro DesignTable Wert ändern

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 SOLIDWORKS
  
SOLIDWORKS Cloud: Anleitung zum Konstruieren im Browser
Autor Thema:  Makro DesignTable Wert ändern (2549 mal gelesen)
kons92
Mitglied
Konstrukteur


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

Beiträge: 91
Registriert: 07.12.2009

i920,6GB DDR3,FX3500
SW2011 SP1.0
Win7 64Bit

erstellt am: 15. Okt. 2010 17:31    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 an alle,
ich möchte gerne ein Makro schreiben, welches einen Wert in einer DesignTable bzw. Konfigurationstabelle ändert. Leider bekomme ich beim Ausführen meines Codes den Fehler
Funktion oder Variable erwartet und .SetEntryValue ist blau makiert.

Der Code

Code:

Sub main()

Dim swApp As SldWorks.SldWorks

Dim swModel As SldWorks.ModelDoc2

Dim swDesignTable As SldWorks.DesignTable

Dim cells(1) As String

Dim boolstatus As Boolean

Set swApp = Application.SldWorks

Set swModel = swApp.ActiveDoc

Set swDesignTable = swModel.GetDesignTable


swDesignTable.EditTable

Dim instance As IDesignTable
Dim Row As Integer
Dim Col As Integer
Dim IsText As Boolean
Dim Retval As String

Row = 10
Col = 10

IsText = True
Retval = "TestTest"

boolstatus = instance.SetEntryValue(Row, Col, IsText, Retval)
boolstatus = swDesignTable.UpdateTable(SwConst.swDesignTableUpdateOptions_e.swUpdateDesignTableAll, True)


End Sub


Code:

Dim instance As IDesignTable
Dim Row As Integer
Dim Col As Integer
Dim TextIn As String

instance.SetEntryText(Row, Col, TextIn)

Das ist der Auszug aus der API Hilfe zum Thema "Sets the text value of the specified entry"

Ich hoffe einer kann mir weiterhelfen

Vielen Dank

Kons92

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

Torsten Niemeier
Ehrenmitglied V.I.P. h.c.
Maschinenbau Ingenieur



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

Beiträge: 3682
Registriert: 21.06.2001

"ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform
** CSWP 04/2011 **
** CSWE 08/2011 **

erstellt am: 15. Okt. 2010 18: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 Nur für kons92 10 Unities + Antwort hilfreich

Hallo Kons,

ich schätze, Du mußt Dein idesigntable erst attachen, bevor Du eine Methode darauf anwendest.

Siehe hier:

http://help.solidworks.com/2011/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.IDesignTable~GetTotalColumnCount.html


Gruß, Torsten

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

kons92
Mitglied
Konstrukteur


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

Beiträge: 91
Registriert: 07.12.2009

i920,6GB DDR3,FX3500
SW2011 SP1.0
Win7 64Bit

erstellt am: 15. Okt. 2010 19:23    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 Thorsten,
ich habe den Code nun geändert, doch leider bekomme ich die gleiche Fehlermeldung wie vorher.

Der Code

Code:

Option Explicit

Sub main()

Dim swApp As SldWorks.SldWorks

Dim swModel As SldWorks.ModelDoc2

Dim swDesignTable As SldWorks.DesignTable

Dim cells(1) As String

Dim boolstatus As Boolean

Set swApp = Application.SldWorks

Set swModel = swApp.ActiveDoc

Set swDesignTable = swModel.GetDesignTable


swDesignTable.EditTable

Dim instance As IDesignTable
Dim Row As Integer
Dim Col As Integer
Dim IsText As Boolean
Dim Retval As String
Dim value As Integer



value = instance.GetTotalColumnCount()


Row = 10
Col = 10

IsText = True
Retval = "TestTest"

boolstatus = instance.SetEntryValue(Row, Col, IsText, Retval)
boolstatus = swDesignTable.UpdateTable(SwConst.swDesignTableUpdateOptions_e.swUpdateDesignTableAll, True)


End Sub



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

Torsten Niemeier
Ehrenmitglied V.I.P. h.c.
Maschinenbau Ingenieur



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

Beiträge: 3682
Registriert: 21.06.2001

"ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform
** CSWP 04/2011 **
** CSWE 08/2011 **

erstellt am: 16. Okt. 2010 00:23    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 kons92 10 Unities + Antwort hilfreich

Ok, noch mal langsam.

Der Teil, auf den ich Dich hinweisen wollte, war:

Before you use any of the IDesignTable methods, use IDesignTable::Attach to activate the IDesignTable. After you finish getting IDesignTable data, use IDesignTable: etach to deactivate the table.


Daher schrieb ich ja: ATTACHEN

also:

value = instance.Attach()

wobei value nicht integer, sondern boolean deklariert sein sollte.

Sicherheitshalber vielleicht mal zur Kontrolle auch:

msgbox value

hinterherschicken, um zu sehen, ob das attachen auch geklappt hat.

Viel Glück, Torsten


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

kons92
Mitglied
Konstrukteur


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

Beiträge: 91
Registriert: 07.12.2009

i920,6GB DDR3,FX3500
SW2011 SP1.0
Win7 64Bit

erstellt am: 16. Okt. 2010 09:02    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 Thorsten, ich habe nun
Code:
boolstatus = instance.SetEntryValue(Row, Col, IsText, Retval)
boolstatus = swDesignTable.UpdateTable(SwConst.swDesignTableUpdateOptions_e.swUpdateDesignTableAll, True)

auskommentiert, da sonst die gleiche Fehlermeldung wie zuvor kam und dann gestartet. Dann sagt er Objektvariable oder With-Blockvariable nicht festgelegt.
Code:

swDesignTable.EditTable

Dim instance As IDesignTable
Dim Row As Integer
Dim Col As Integer
Dim IsText As Boolean
Dim Retval As String
Dim value As Boolean

value = instance.Attach()

MsgBox value

value = instance.GetTotalColumnCount()


Row = 10
Col = 10

IsText = True
Retval = "TestTest"

'boolstatus = instance.SetEntryValue(Row, Col, IsText, Retval)
'boolstatus = swDesignTable.UpdateTable(SwConst.swDesignTableUpdateOptions_e.swUpdateDesignTableAll, True)


End Sub


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

kons92
Mitglied
Konstrukteur


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

Beiträge: 91
Registriert: 07.12.2009

i920,6GB DDR3,FX3500
SW2011 SP1.0
Win7 64Bit

erstellt am: 16. Okt. 2010 20: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

So nun klappt es immerhin schonmal. Ich hoffe es ist so okay würde mich über Antworten freuen. Vielen Dank Thorsten.

Code:

Sub main()
Dim boolstatus As Boolean
Dim swApp As Object
Dim swDesignTable As SldWorks.DesignTable
Dim Part As Object

Set swApp = CreateObject("SldWorks.Application")
Set Part = swApp.ActiveDoc
Set swDesignTable = Part.GetDesignTable

swDesignTable.EditTable

Set xl = GetObject(, "Excel.Application")
Set xlsh = xl.ActiveSheet
xlsh.cells(1, 1).value = "x1"

boolstatus = swDesignTable.UpdateTable(SwConst.swDesignTableUpdateOptions_e.swUpdateDesignTableAll, True)

End Sub


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

Piet
Mitglied
Konstruktionsleiter & Konstrukteur


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

Beiträge: 661
Registriert: 20.11.2001

SWx 2021

erstellt am: 21. Aug. 2014 15: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 kons92 10 Unities + Antwort hilfreich

Ist schon eine Weile her, aber mir hat dieser Beitrag trotzdem geholfen. Vielen Dank an alle Beteiligten!

Piet


------------------
Jeder nichttrivial gekämmte Igel hat mindestens einen Glatzpunkt.

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