![]() |
【转帖】macro to set printing line weights 2009
macro to set printing line weights 2009
i've made this macro to set printing line weights. it works for setting any line weight above .01 . in this macro, the first 3 line weights are not set (.003 .005 .007), but the last 5 are set (.01 .014 .017 .02 .06). is there any way to set a line weight below .01? any help would be greatly appreciated. dim swmodel as sldworks.modeldoc2 dim swdraw as sldworks.drawingdoc dim swlayermgr as sldworks.layermgr dim swlayer as sldworks.layer dim modeldocextension as modeldocextension dim boolstatus as boolean public arrlayernames(76) as string public arrlineweight(76) as variant sub main() 'half size plot set swapp = application.sldworks set swmodel = swapp.activedoc set modeldocextension = swmodel.extension boolstatus = modeldocextension.setuserpreferencedouble(swuserpreferencedoublevalue_e.swpagesetupprinterthinlineweight, 0, 0.0000762) '0.0030 boolstatus = modeldocextension.setuserpreferencedouble(swuserpreferencedoublevalue_e.swpagesetupprinternormallineweight, 0, 0.000127) '0.0050 boolstatus = modeldocextension.setuserpreferencedouble(swuserpreferencedoublevalue_e.swpagesetupprinterthicklineweight, 0, 0.0001778) '0.0070 boolstatus = modeldocextension.setuserpreferencedouble(swuserpreferencedoublevalue_e.swpagesetupprinterthick2lineweight, 0, 0.000254) '0.0100 boolstatus = modeldocextension.setuserpreferencedouble(swuserpreferencedoublevalue_e.swpagesetupprinterthick3lineweight, 0, 0.0003556) '0.0140 boolstatus = modeldocextension.setuserpreferencedouble(swuserpreferencedoublevalue_e.swpagesetupprinterthick4lineweight, 0, 0.0004318) '0.0170 boolstatus = modeldocextension.setuserpreferencedouble(swuserpreferencedoublevalue_e.swpagesetupprinterthick5lineweight, 0, 0.000508) '0.0200 boolstatus = modeldocextension.setuserpreferencedouble(swuserpreferencedoublevalue_e.swpagesetupprinterthick6lineweight, 0, 0.001524) '0.0600 end sub it is probably being set but your printer cannot go below a certain size. try setting them to bigger sizes to see if they actually alter. any size above .01 sets correctly. it has been reported by solidworks as a critical bug where a macro cannot set a print line weight below .01 waiting for a fix. or if anyone can think of a workaround? it would be greatly appreciated! thanks guys bit of a rubbish work around but export to another format (such as dxf) and set the thickness and print through another program answer found a nice workaround. i wrote a macro that just sends keystrokes to solidworks. it effectively sets the line thickness for printing. we heard back from solidworks that the bug will be fixed in 2009 sp03. but, this macro works for now. here it is in case anyone's interested: option explicit dim swapp as sldworks.sldworks dim swmodel as sldworks.modeldoc2 dim swmodelview as sldworks.modelview sub main() set swapp = application.sldworks set swmodel = swapp.activedoc 'open line weight area sendkeys "^p" sendkeys "%l" 'thin sendkeys "%n" sendkeys ".003" 'normal sendkeys "%o" sendkeys ".005" 'thick sendkeys "%k" sendkeys ".007" 'thick2 sendkeys "%2" sendkeys ".01" 'thick3 sendkeys "%3" sendkeys ".014" 'thick4 sendkeys "%4" sendkeys ".017" 'thick5 sendkeys "%5" sendkeys ".02" 'thick6 sendkeys "%6" sendkeys ".06" 'save settings sendkeys "{enter}" 'close print window sendkeys "{esc}" end sub quick |
所有的时间均为北京时间。 现在的时间是 05:58 AM. |