![]() |
【转帖】modifying design table values with a macro
modifying design table values with a macro??
does anyone know of a way to use a macro to change the value of the cells in the design table? for example... if i have a form where the user enters a value... say beam size... the macro will edit the cell of the design table that corresponds to the beam size and the design table can update the part. my design tables are internal inside my solidworks part. what i'm having trouble with isn't the code to actually change the value of a cell, but how to access the cell that is inside the design table in the part so that i can change it. christina, look for 'modeldoc2::getdesigntable' in the api help. there are several examples. jorn bjarning cswp cad & plm consultant sw2008 sp5 / sw2009 sp2 there are several examples in there of how to access the design table... but nothing with how to get it to change the value of a cell and that's proving to be more problematic than i initially thought it would be. any thoughts on how to get it to actually change the value of a cell and update the table?? hey christina, modifying cells in design tables uses the same principles as doing so in excel. i'll attach below a small code sample of how to do it and if you have more issues reply again here. code: 'get the design table set destable = modeldoc.getdesigntable() 'get the work sheet set wsheet = destable.edittable2(true) ' assign values to cells wsheet.cells(2, 2) = "a value" wsheet.cells(2, 3) = "another value" 'close the table to update modeldoc.closefamilytable '''''''''''''''''' hope this helps, cheers, --stav. in this world i am nobody... and nobody is perfect ;) !!! --------- solidworks office 2008 sp4.0 dell precision pws390 nvidia quadro fx 3450/4000 sdi edited: 11/10/2008 at 04:27 am by stavros antoniou i want to do this as well. i have already written all the code for the forms to modify the design table. ----- the first attempt i did this.... part.insertfamilytableedit set exapp = getobject(, "excel.application") set exwb = exapp.workbooks.application.activeworkbook set exws = exwb.worksheets(1) . . .run all code with exws. to access work sheet everything works fine until i close i used exapp.quit when i did the changes would not affect the part. when i tried to reopen the design table it said "file not found" ------- per your suggestion i tried part.insertfamilytableedit dim destable as designtable set destable = swmodeldoc.getdesigntable() set exws = destable.edittable2(true) . . . do stuff . . swmodeldoc.closefamilytable again i get the same problem where file not found if i try to open again and changes are not made to the design table. any suggestions? edit: strange...i wrote a macro with two lines set part = swapp.activedoc part.closefamilytable when i run this macro with design table open it worked properly edited: 02/27/2009 at 12:54 pm by kevin hardin quick |
所有的时间均为北京时间。 现在的时间是 05:56 PM. |