Перейти к публикации

Помогите Разобраться С Api


fomenko

Рекомендованные сообщения

Сделал простой пример на API SDK для SolidWorks в виде Plugin. Добавил форму с одной кнопкой.

На кнопке такая процедура:

public void button1_Click(object sender, EventArgs e)

{

SldWorks.SldWorks iSwApp = new SldWorks.SldWorks();

iSwApp.OpenDoc("1111.sldprt");

iSwApp.ExitApp();

}

После нажатия на кнопку возникает ошибка - Unable to cast object of type 'System.__ComObject' to type 'SldWorks.SldWorksClass'.

Если то же самое запускать не из формы то все работает.

Помогите разобраться с данной проблемой.

Ссылка на сообщение
Поделиться на других сайтах


Возьму на себя смелость посоветовать: не самомму делать приложения , а взять готовый пример, "разобрать" его по полочкам-как он работает в пошаговом режиме, отследить переменные ну и тд.

По вопросу: приложение(конечный файл) dll или exe ?

PS. на чем написано?

PPS. я вообще-то на VB все делаю, exe-шниками, но начинал я с работающих примеров!

Вот посмотрите:

<noindex>http://www.solidworkstips.com/macro_pages/index.htm</noindex>

<noindex>http://www.solidworks.com/pages/services/APIDownloads.html</noindex>

Ссылка на сообщение
Поделиться на других сайтах

После нажатия на кнопку возникает ошибка - Unable to cast object of type 'System.__ComObject' to type 'SldWorks.SldWorksClass'.

Если то же самое запускать не из формы то все работает.

Если у Вас exe-файл, и подключена COM библиотека SW, то этот код будет работать. Если же dll-то выдаст эту ошибку. По всей видимости Вы делали проект с помощью мастера, тогда в этом случае, надо просто передать в вашу форму ссылку на нужный объект. В функции, например, на отклик на нажатии пункта меню прописываете:

public void CreateMyForm()

		{

			Form1 myForm = new Form1();

			myForm.swApp = iSwApp;

			myForm.Show();

		}
а класс формы должен выглядеть примерно так:

public partial class Form1 : Form

	{

		public Form1()

		{

			InitializeComponent();

		}



		public ISldWorks swApp = null; 



		private void button1_Click(object sender, EventArgs e)

		{

			IModelDoc2 swModel = (IModelDoc2)swApp.IActiveDoc2;

			if (swModel == null)

				return;

			string strTitle = swModel.GetTitle(); // это просто первая попавшаяся функция

		   /// дальше на ваше усмотрение



		}

	}
Ссылка на сообщение
Поделиться на других сайтах

Спасибо за помощь. Все заработало.

Так в чем было дело, поделитесь.

Может кому-то другому начинающему пригодится данная инфо.

Иначе как-то невежливо получается: вопросы задаете, а как решение нашли - тишина.

А люди будут мучаться и опять теже вопросы задавать.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • maxx2000
      Автора темы не было с 2 мая. Я такого звзидунка давно не встречал
    • Dimetil Gidrozin Dnepr
      куда пропал твой парень? с ним в паре вы замечательно смотрелись и ты был гораздо круче спасибо. я уже с автором темы связался он мне ссылок дал и где качать и как ставить. понту мне смотреть то чего у меня нет)) я поставлю то что он мне дал и посмотрю по нему. он видеоуроки пишет. норм чувак кста
    • IgorT
      Да че там хорошего? По мне уже то, что нет возможности выбрать плоскость симметрии напряг.
    • AlexKaz
      А если сделать такой финт: есть два тела, на телах две площадки с одинаковой сеткой. Что будет, если создать много RBE2 от площадки к площадке, но каждый RBE2 связывает только 1 узел на первой площадке с 1 узлом на второй (а не несколько узлов с одним узлом)? По логике вещей, получается аналог нескольких простых MPC узел в узел, т.е. для каждой пары узлов с разных площадок имеем Ux1-Ux2=0, Uy1-Uy2=0, Uz1-Uz2=0. Т.е. получим деформируемые границы площадок (вместо абсл. жёстких), но "сшитые" попарно по площадкам узлы, и попарные узлы на площадках должны перемещаться на одинаковое расстояние. Или нет?
    • Anat2015
      Не путайте модель станка и модель ЧПУ. Синумерик - это ЧПУ, у вас точно ЧПУ Sinumerik SN-770, или это все таки название станка, не встречал, чтобы Сименс станки делал. Определитесь с точным названием УЧПУ.   Теоретически, да, но можно и с внешнего инструмента (ноутбука) а процесс восстановления привязан к модели ЧПУ. Только arc. (архив) бывает разный, могут быть отдельно архивы NCU, PLC, HMI, а может быть объединенный. Где батарейка, какие настройки вы имеете ввиду? Может и архивы не надо восстановливать? Подробнее опишите свои проблемы.
    • ID_Hacker
      Бывает на пульте кнопка, бывает М командами откидывается. Если заходите в меню измерения инструмента в режиме Jog, возможно надо выбрать параметры измерения и нажать "Цикл старт" Вариантов реализации много, и без осмотра подсказать практически нереально. Вы вообще уверены, что у вас моторизированная рука, а не откидываемая руками? Правильно вам пишут - необходимо смотреть в руководстве пользователя станка. Если нет руководства, просить поставщика, производителя. Ну а если уже совсем край, искать специалиста, готового провести исследование и возможно пусконаладку.
    • Мрачный
      Компас напоминает в своих способностях SW 2001-2006 г. Очень во многих местах. А вот с зеркальными деталями-сборками там вроде бы все весьма неплохо, гораздо лучше чем в SW. Вот такое неоднозначие...
    • maxx2000
      там посыл скорее про оформление чертежей согласно ГОСТ Айтишники и манагеры. Что с них взять. 1 семестр начерталки и 1 семестр инженерной графики, если не всё вместе, на отстань в каком нить педагогическом или аграрном вузе
    • brigval
      Заложено, но на усмотрение пользователя. К сожалению.
    • Ветерок
      Хочешь сказать, что разработчики Компаса не знают начерталку? Это же должно быть заложено в программу.
×
×
  • Создать...