What does this activeX error mean, how do i fix it?

Hi, Im attempting to use a finite element analysis program (infolytica Magnet), in conjunction with MAtlab R2011a by using activeX. I dont have much experience with activeX, however, i have found some code from the software distributor (Infolytica), which should allow both programs to communicate with each other. This code should open up the FEA software, and draw a line. code:
MN6 = actxserver ('Magnet.Application');
MN6.Visible = 'true';
% set MagNet constants
Consts = invoke(MN6, 'getConstants');
% open new document
dev = invoke(MN6, 'newDocument');
% draw a line on the screen
invoke(dev, 'newConstructionSliceLine', 3, 0, 5, 2)
error which i receive:
??? No public field Visible exists for class COM.Magnet_Application.
Error in ==> Matlab_server at 2
MN6.Visible = 'true';
Im not sure why this error is coming up. Any help, would be greatly appreciated.
regards, Daleel

댓글 수: 1

Try this
set(MN6,'Visible',1);
I tried to connect Matlab R2020b to MAgNet 2020.1 and it worked and I can create the line.
The same example that you wrote here is also availble in the Magnet knowledge base.

댓글을 달려면 로그인하십시오.

답변 (2개)

per isakson
per isakson 2012년 8월 8일
Try
methods( MN6 )
MN6.Visible = true;

댓글 수: 4

i tried it, this is the code:
MN6 = actxserver ('Magnet.Application');
methods( MN6 )
MN6.Visible = 'true';
% set MagNet constants
Consts = invoke(MN6, 'getConstants');
% open new document
dev = invoke(MN6, 'newDocument');
% draw a line on the screen
invoke(dev, 'newConstructionSliceLine', 3, 0, 5, 2)
and the output i get... but still get an error:
Methods for class COM.Magnet_Application:
addproperty get move set
constructorargs getStackCalculator propedit
delete interfaces release
deleteproperty invoke save
events load send
??? No public field Visible exists for class COM.Magnet_Application.
Error in ==> Matlab_server at 3
MN6.Visible = 'true';
Nothing was done in the FEA program... Thanx so much for the effort!
regards Daleel
I should have proposed
properties( MN6 )
Is it case sensitive? Try
MN6.visible = 'true'
The value should it be char not logical?
please try set(mn6, 'Visible', 1) instead mn6.Visible = true;
regards,
guillo
No, you didn't try it. You continued to do
MN6.Visible = 'true';
while per said to do this:
MN6.Visible = true;
You're setting it to a string and he said to set it to a boolean. And your list shows methods, not properties. Try to get the properties to see if visible is one of them - it most likely is.

댓글을 달려면 로그인하십시오.

Brian Keats
Brian Keats 2012년 11월 26일

0 개 추천

mn6.set('visible','true')

제품

태그

질문:

2012년 8월 8일

댓글:

2021년 1월 12일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by