几何尺寸与公差论坛

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

【转帖】macro

[复制链接]
发表于 2009-4-13 12:43:58 | 显示全部楼层 |阅读模式
macro
i am having difficulty with creating ellipses with a macro. after i create the partial ellipse and revolve it, i run the macro and i receive an error saying 'wrong number of arguments or invalid property assignment'. anyone know why this error comes up?
i have seen the macro recorder record the wrong number of arguments for some methods. look at the api help file to find out what arguments it needs. not sure if this is the method that was recorded, but here is what i found in the api help for partial ellipse.
retval = sketchmanager.createellipticalarc ( xc, yc, zc, xmajor, ymajor, zmajor, xminor, yminor, zminor, x1, y1, z1, x2, y2, z2, direction)
input:
(double) xc
x coordinate for the ellipse center point
input:
(double) yc
y coordinate for the ellipse center point
input:
(double) zc
z coordinate for the ellipse center point
input:
(double) xmajor
x coordinate for a point on the ellipse and on the major axis
input:
(double) ymajor
y coordinate for a point on the ellipse and on the major axis
input:
(double) zmajor
z coordinate for a point on the ellipse and on the major axis
input:
(double) xminor
x coordinate for a point on the ellipse and on the minor axis
input:
(double) yminor
y coordinate for a point on the ellipse and on the minor axis
input:
(double) zminor
z coordinate for a point on the ellipse and on the minor axis
input:
(double) x1
x coordinate for counter-clockwise elliptical arc start point
input:
(double) y1
y coordinate for counter-clockwise elliptical arc start point
input:
(double) z1
z coordinate for counter-clockwise elliptical arc start point
input:
(double) x2
x coordinate for counter-clockwise elliptical arc end point
input:
(double) y2
y coordinate for counter-clockwise elliptical arc end point
input:
(double) z2
z coordinate for counter-clockwise elliptical arc end point
input:
(short) direction
+1 : go from the start point to the end point in a counter-clockwise direction
-1 : go from the start point to the end point in a clockwise direction
output:
(lpsketchsegment) retval
sketch segment for the elliptical arc
wayne matus
texas engineering systems
for example:
option explicit
dim swapp as sldworks.sldworks
dim swmodel as modeldoc2
dim sm as sketchmanager
sub main()
set swapp = application.sldworks
set swmodel = swapp.activedoc
if swmodel is nothing then
exit sub
end if
set sm = swmodel.sketchmanager
if sm is nothing then
exit sub
end if
sm.createellipticalarc 0, 0, 0, 0.02, 0, 0, 0, 0.01, 0, 0, 0.01, 0, 0.02, 0, 0, -1
end sub
hi
this is the line code i get when after i record making the ellispe. i added the -1 at the end to see if it was missing an argument. still get the same error. i don't know what vb is for:
part.createellipsevb -0.001791025641026, 0.02134305555556, 0, -0.001791025641026, 0.05776057692308, 0, -0.02417884615385, 0.02134305555556, 0, 0, -0.01495774268682, 0, 0, 0.05764385379793, 0, -1
recorded macro output should always be viewed with suspicion. rarely yields the best way to accomplish a task.
perhaps "createellipticalarcbycentervb"?
shawn,
it looks like you are using solidworks 2007. i get the same createellipsevb method when i record macro in 2007. in 2008 i get what luke and i mentioned. i looked in the 2007 api help and there was not a createellipsevb method listed, but i did find a createellipticalarc2 method. you should be able to change the line you mentioned to:
part.createellipticalarc2 -0.001791025641026, 0.02134305555556, 0, -0.001791025641026, 0.05776057692308, 0, -0.02417884615385, 0.02134305555556, 0, 0, -0.01495774268682, 0, 0, 0.05764385379793, 0
note it does not need the -1 at the end.
wayne matus
texas engineering systems
thanks will try
hi, luke,
your codes don't work in vb.net 2008, do you have a way to fix it?
the code i provided was vb not vb.net, it is easy enough to convert though:
create a new windows forms application, add references to sldworks as required and create a button on the form and add an onclick event, then your coding should look like this:
imports sldworks
imports swcommands
imports swconst
imports swpublished
public class form1
private sub button1_click(byval sender as system.object, byval e as system.eventargs) handles button1.click
dim swapp as sldworks.sldworks
dim swmodel as modeldoc2
dim sm as sketchmanager
swapp = new sldworks.sldworks
swmodel = swapp.activedoc
if swmodel is nothing then
exit sub
end if
sm = swmodel.sketchmanager
if sm is nothing then
exit sub
end if
sm.createellipticalarc(0, 0, 0, 0.02, 0, 0, 0, 0.01, 0, 0, 0.01, 0, 0.02, 0, 0, -1)
end sub
end class
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-23 10:46 , Processed in 0.038096 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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