Solidworks API и Winforms C# swApp (автономное)

Это то, что solidworks говорит вам сделать, чтобы сослаться на swApp, но я продолжаю получать NullReferenceException в строке, на которую он ссылается.

Кто-нибудь знает, почему? или Как я иду о ремонте?

Могу ли я сослаться на него позже, например, swApp = ????

private void button5_Click(object sender, EventArgs e)
{
    //Save Drawing
    ModelDoc2 swDoc = null;
    int longstatus = 0;
    swDoc = ((ModelDoc2)(swApp.ActiveDoc));
    longstatus = swDoc.SaveAs3(
            @"C:\Engineering\Engineering\SW Automation\Linear Actuator Technology\MLD Series\Prints\Configured Prints\" + 
            textBox1.Text + ".SLDDRW", 0, 2);
}

public SldWorks swApp;

person Russell Saari    schedule 14.09.2011    source источник


Ответы (2)


Разобрался всем спасибо за помощь.

SldWorks swApp = null;
swApp = (SldWorks)Activator.CreateInstance(
            Type.GetTypeFromProgID("SldWorks.Application"));
person Russell Saari    schedule 15.09.2011

Где-то вам придется заполнить swApp. Я не использую SolidWorks, поэтому не могу дать вам точный код, но посмотрите в конструкторе их примера кода. Может быть, вы можете найти пример того, как там заполняется swApp.

person Matt Cofer    schedule 14.09.2011
comment
да, я использовал их макрорекордер, чтобы записать большую часть того, что происходит, и предоставить вам общедоступное приложение SldWorks swApp; что не помогает мне в winforms. Я думаю, что мне придется найти способ определить его каждый раз, когда я его использую. - person Russell Saari; 14.09.2011
comment
Это то, что я обычно делаю с NX. Сначала вы получаете доступ к сеансу, а затем получаете рабочую часть. Терминология в SolidWorks может отличаться. Когда я использую средство записи журнала, оно показывает, как инициализируются эти переменные. - person Matt Cofer; 14.09.2011