几何尺寸与公差论坛

 找回密码
 注册
查看: 630|回复: 0

【转帖】recording a macro

[复制链接]
发表于 2009-4-13 13:49:32 | 显示全部楼层 |阅读模式
recording a macro
hi all,
as a newbie to macros & api please keep it as simple as possible thanks
i have tried to recorded a macro for changing the document properties of a part from grams to kg but when i go to run it on another part its comming up with an error.
i have saved the macro in c:\program files\solidworks\macros
' ******************************************************************************
' c:\docume~1\solidw~1\locals~1\temp\swx3532\macro1.swb - macro recorded on 06/30/08 by solidworks
' ******************************************************************************
dim swapp as object
dim part as object
dim selmgr as object
dim boolstatus as boolean
dim longstatus as long, longwarnings as long
dim feature as object
sub main()
set swapp = application.sldworks
set part = swapp.activedoc
set selmgr = part.selectionmanager
dim pwphotoworks as photoworks.photoworks
set pwphotoworks = swapp.getaddinobject("photoworks.photoworks")
dim pwopt as photoworks.pwoptions
set pwopt = pwphotoworks.pwoptions
part.dimpreferences
end sub
looking at this code their seems to be a lot about photoworks but nothing about the document properties.
is sw not recording the correct information once i start selecting operations which are not a direct part of the modeling process?
any help on this greatly received
thanks,
michael
sw office pro 2009 sp 2.1
windows xp sp2
hp xw4600
intel(r) core 2 duo cpu
3 gig ram
nvidia quadro fx 1700
hi michael,
that macro does not change the document properties!
i think photoworks is just another addin of solidworks that you must have enabled. i found that the photoworks code is usually erroneous so i tend to remove it from my code.
as for changing the document properties i will have a look in the api now and get back to you if i find something that works.
--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
hello again.
the code below does the trick.
what it does is for the active document it changes the mass to kg.
dim swapp as sldworks.sldworks
dim modeldoc as sldworks.modeldoc2
dim boolstatus as boolean
sub main()
set swapp = application.sldworks
set modeldoc = swapp.activedoc
boolstatus = modeldoc.setuserpreferenceintegervalue(swuserpreferenceintegervalue_e.swunitsmasspropmass, 3)
end sub
in this world i am nobody...
and nobody is perfect ;) !!!
---------
solidworks office 2008 sp4.0
dell precision pws390
nvidia quadro fx 3450/4000 sdi
one of the first important lessons about api is that macro recording can miss some important api calls and also add lots of unnecessary steps. this is especially tru is selections are involved.
take some time to learn vba outside of a sw context. get comfortable w/ vb and object-oriented programming before you go to far.
answer thanks very much for that stavros, it has worked perfect
roland,
you are right, running blind at this will not work ( time for some homework )
sw office pro 2009 sp 2.1
windows xp sp2
hp xw4600
intel(r) core 2 duo cpu
3 gig ram
nvidia quadro fx 1700
quick
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|几何尺寸与公差论坛

GMT+8, 2024-12-23 09:06 , Processed in 0.036883 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表