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

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

@streamdown Скажите пожалуйста, можно ли два объекта с формата (".sldprt" - деталь), добавить как отдельные детали в сборку? Как добавлять деталь в сборку знаю. А вот как обратиться к одному из твердых тел в "детали" и сохранить отдельно в формате ".sldprt"  чтобы потом добавить в сборку, не знаю.. Если вообще так можно.

 

222.PNG

Изменено пользователем mrazzzb
Ссылка на сообщение
Поделиться на других сайтах


1 минуту назад, mrazzzb сказал:

сохранить отдельно в формате ".sldprt"

Хммм...

Попробуйте вот что:

- в сборке выбрать компонент

- войти в режим его редактирования AssemblyDoc::EditPart2

- раскопать в API как работать с методом CreateFeatureFromBody3 

Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, streamdown сказал:

Попробуйте вот что:

- в сборке выбрать компонент

- войти в режим его редактирования AssemblyDoc::EditPart2

- раскопать в API как работать с методом CreateFeatureFromBody3 

Спасибо! Посмотрю!!

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

Подскажите пожалуйста ,можно ли при добавлении eDrawings ActiveX control (просмотр 3d модели)  добавить кнопку включение функции измерить ?

Ссылка на сообщение
Поделиться на других сайтах
39 минут назад, streamdown сказал:

спасибо 

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

@streamdown Привет, у меня вопросы не закончатся наверно:doh:        

Почему то не определяет запущенный SolidWorks, просто запускаю по значку на рабочем столе, и не находит:g:2016 версию находит а 2012 нет. Но мне нужно чтобы 2012 находил.. В чем может быть проблема? 

public Boolean GetSolidworks()
        {
            try
            {
                SwApp = (SldWorks)Marshal.GetActiveObject("SldWorks.Application");
            }
            catch
            {
               
                MessageBox.Show("Ошибка, Solidworks не найден", "Внимание!",  MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return false;
            }
             return true;
         }

 

Изменено пользователем mrazzzb
Ссылка на сообщение
Поделиться на других сайтах
9 часов назад, mrazzzb сказал:

2016 версию находит а 2012 нет

 

9 часов назад, mrazzzb сказал:

у меня вопросы не закончатся наверно

И тут я такой хоппа, как джин из бутылки)))

SwApp = (SldWorks)Marshal.GetActiveObject("SldWorks.Application.25");//для 2017
SwApp = (SldWorks)Marshal.GetActiveObject("SldWorks.Application.24");//для 2016 

далее, думаю, сможете посчитать :smile:

 

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

@streamdown Еще одна проблема решена:clap_1:Спасибо вам! Только вот когда солид запущен посредством guid, свойство 

GetActiveObject("SldWorks.Application.24"); 

не помогает, не видит почему-то :g: создаю документ как вы и говорили NewDocument2(), все безуспешно.

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

Если вы запустили SW ранее, но ничего дальше видеть не надо. У вас он уже есть и  GetActiveObject делать не надо.

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

@streamdown Я к тому  что, запустил солид по guid, закрыл свою программу, потом открываю заново и не могу, так сказать, "подключиться" к открытому солиду.

Изменено пользователем mrazzzb
Ссылка на сообщение
Поделиться на других сайтах

Зачем? Вы его открыли в программе. Программа сделала своё дело. Ну так закройте "за собой" :smile:

Если он вам дальше понадобится, то зачем выходить из программы?

Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, streamdown сказал:

Если он вам дальше понадобится, то зачем выходить из программы?

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

Ссылка на сообщение
Поделиться на других сайтах
Только что, mrazzzb сказал:

В случае если ошибка в коде

Тогда руками.

Только что, mrazzzb сказал:

да и вдруг случайно закроется программа

Вы эти случайности должны отлавливать.

 

Ох, если б вы знали, сколько времени я трачу на запуск солида для дебага аддонов :smile:

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

Поставили мне тут на работе SW15.. Запускаю из редактора макрос VBA и окно солида становится не доступным для любых действий..
Тыкаю мышкой в любое место окна, а окно макроса мыргает, типа "я тут сверху, к солиду не лезь!!!"

В SW 12, 09, 07 такого не было..

Как обойти это безобразие??
 

Ссылка на сообщение
Поделиться на других сайтах
26 минут назад, ILL сказал:

Поставили мне тут на работе SW15.. Запускаю из редактора макрос VBA и окно солида становится не доступным для любых действий..
Тыкаю мышкой в любое место окна, а окно макроса мыргает, типа "я тут сверху, к солиду не лезь!!!"

В SW 12, 09, 07 такого не было..

Как обойти это безобразие??

Бывало на разных версиях, после SW2007, что окно открывалось под программой и ни как не хотело от туда вылезать.

Ищите по ключевым словам VBA always onTop (то есть форма приобретает свойство быть поверх всех окон) , например, можно это посмотреть (первое попавшееся):

Цитата

Option Explicit 
 'API function to enable/disable the Excel Window
Private Declare Function FindWindowA Lib "user32" _ 
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long 
 
Private Declare Function EnableWindow Lib "user32" _ 
(ByVal hwnd As Long, ByVal bEnable As Long) As Long 
 
Private Declare Function SetWindowPos Lib "user32" ( _ 
ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _ 
ByVal X As Long, ByVal Y As Long, ByVal cx As Long, _ 
ByVal cy As Long, ByVal wFlags As Long) As Long 
 
Private Const SWP_NOSIZE = &H1 
Private Const SWP_NOMOVE = &H2 
Private Const FLAGS As Long = SWP_NOMOVE Or SWP_NOSIZE 
Private Const HWND_TOPMOST = -1 
Private Const HWND_NOTOPMOST = -2 
Private mlHWnd As Long 
Private mbDragDrop As Boolean 
Private FormHWnd As Long 
 
Private Sub cmdNotTop_Click() 
    SetWindowPos FormHWnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS 
End Sub 
 
Private Sub cmdTop_Click() 
    SetWindowPos FormHWnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS 
End Sub 
 
Private Sub UserForm_Activate() 
    On Error Resume Next 
     'Find the Excel main window
    mlHWnd = FindWindowA("XLMAIN", Application.Caption) 
    FormHWnd = FindWindowA(vbNullString, Me.Caption) 
    Call cmdTop_Click 
     'Enable the Window - makes the userform modeless
    EnableWindow mlHWnd, 1 
    mbDragDrop = Application.CellDragAndDrop 
    Application.CellDragAndDrop = False 
End Sub 
 
Private Sub btnOK_Click() 
    Application.CellDragAndDrop = mbDragDrop 
    Call cmdNotTop_Click 
    Unload Me 
End Sub 

http://www.vbaexpress.com/forum/showthread.php?5071-Solved-Keep-userform-on-top-at-all-times&p=42974&viewfull=1#post42974

 

Изменено пользователем Kelny
Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

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

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

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

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

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




×
×
  • Создать...