几何尺寸与公差论坛

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

【转帖】sketchblockdefinition problem

[复制链接]
发表于 2009-4-12 19:37:39 | 显示全部楼层 |阅读模式
sketchblockdefinition problem
hi,
i am trying to insert a block to the drawing sheet. when i insert the block, it always go to the bottom left corner of the sheet. this happens even if the defined math point is different. below is the code i used. i am facing this problem in swx 2008. please let me know if you have any solution.
sub main()
dim swapp as sldworks.sldworks
dim part as modeldoc2
dim selmgr as selectionmgr
dim swsketchmgr as sldworks.sketchmanager
dim npt(3) as double
dim vpt as variant
dim swmathpoint2 as sldworks.mathpoint
dim swmathutil as sldworks.mathutility
dim swsketchblockdef2 as sldworks.sketchblockdefinition
dim swblockinst as sldworks.sketchblockinstance
dim swdraw as sldworks.drawingdoc
set swapp = application.sldworks
set part = swapp.activedoc
set swsketchmgr = part.sketchmanager
set selmgr = part.selectionmanager
swapp.activedoc.activeview.framestate = 1
set swdraw = part
swdraw.activatesheet ("sheet1")
set swsheet = swdraw.getcurrentsheet
npt(0) = 1.2 * 0.0254
npt(1) = 1.2 * 0.0254
npt(2) = 0#
vpt = npt
set swmathutil = swapp.getmathutility
set swmathpoint2 = swmathutil.createpoint(vpt)
set swsketchblockdef2 = swsketchmgr.makesketchblockfromfile(swmathpoint2, "c:\ssgworks\tnb\templates\blocks\pole_orient_12 sided_flat.sldblk", false, 1, 0)
part.graphicsredraw2
end sub
edited: 11/20/2008 at 04:16 pm by chandrasekaran subramanian
the make function should just create the block not insert it??with the returned block then try:
swsketchmgr.insertsketchblockinstance(swsketchblockdef2, swmathpoint2, 0, 0)
the problem exists even after inserting the sketch block instance. it is inserting on the extreme left bttom corner of the sheet(i guess (0,0)). have you tried this?
here is a little something i was working and may help point you in the right direction.
i fixed this issue by multiplying the x,y coordinates with sheet scale. below is the code for reference.
sub main()
dim swapp as sldworks.sldworks
dim part as modeldoc2
dim selmgr as selectionmgr
dim swsketchmgr as sldworks.sketchmanager
dim npt(3) as double
dim vpt as variant
dim swmathpoint2 as sldworks.mathpoint
dim swmathutil as sldworks.mathutility
dim swsketchblockdef2 as sldworks.sketchblockdefinition
dim swblockinst as sldworks.sketchblockinstance
dim swdraw as sldworks.drawingdoc
set swapp = application.sldworks
set part = swapp.activedoc
set swsketchmgr = part.sketchmanager
set selmgr = part.selectionmanager
swapp.activedoc.activeview.framestate = 1
set swdraw = part
swdraw.activatesheet ("sheet1")
set swsheet = swdraw.getcurrentsheet
set vsheetprop=swsheet.getproperties
npt(0) = 1.2 * 0.0254*vsheetprop(3)
npt(1) = 1.2 * 0.0254*vsheetprop(3)
npt(2) = 0#
vpt = npt
set swmathutil = swapp.getmathutility
set swmathpoint2 = swmathutil.createpoint(vpt)
set swsketchblockdef2 = swsketchmgr.makesketchblockfromfile(swmathpoint2, "c:\ssgworks\tnb\templates\blocks\pole_orient_12 sided_flat.sldblk", false, 1, 0)
part.graphicsredraw2
end sub
quick
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-23 00:01 , Processed in 0.037202 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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