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

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

@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 пользователей

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



  • Сообщения

    • Рамон
      Можно в тексте вставить ссылку- свойство документа - последнее изменение с датой и временем.  
    • Павлуха
      Солиду не нравится несколько сопряжений, которые одинаково позиционируют деталь.
    • al0ner
      Это весьма удивило, когда заходишь в бутлодере в меню просмотра файлов, то файлы на цф видны, возможно при начале чтения или записи по дефолту стоит проверка уровня на wp.
    • advocut
      У нас чертежи версионируются, но бывает так, что внесли мелкое исправление, а версию не завели, потому как придётся натужно бегать и менять всё везде в системах учёта. Конструктору-то всё равно, а вот когда приходит программисту на исполнение один чертёж, оператору дают второй, а потом выясняется, что вообще нужно было по третьему — становится грустно. Решением проблемы вижу поле с датой и временем сохранения (хоть в привычных нам гггг-мм-дд:ч-м-с, хоть одним числом в UNIX ticks), чтобы знать, что эти два чертежа были сохранены в разное время и значит являются разными ревизиями и требуют тщательного изучения всех мелочей. Добавить в общий шаблон чертежа и забыть о проблеме. Есть идеи, как это можно сделать? На зарубежных чертежах поле Revision встречал.
    • Ninja
      зачем? у тебя же только диаметр отв. изменился и добавилась фаска. Вот их отдельно пересчитай. А остальное не трогай, оно же не изменялось! Выше показали как несколько проектов в одном можно сделать. Будет два проекта в одном. А в среднем остатке - то что нужно )))  
    • Madmax70
      раз форматирует карту, то шлейф рабочий, также программы с  cf нормально сбрасываются на стойку. под аналогичным я имею станок с такой же стойкой, такой же фирмы поставленный в одно и тоже время бутлоадер тоже такой же, начинка немного отличается, так как в этом станке сервоусилитель шпинделя и мотор fanuc на других реализовано управления мотор-шпинделем через частотный преобразователь сохранение файлов через system data save я не проверял карточка cf 2 гигабайта
    • lowboard
      Добрый день! Отлично, настроил. Спасибо, удобно  
    • rigrou
      Разобрался сам спустя время. В итоге для того, чтобы отображались исполнения 10 и более: 1. Нам нужно открыть меню настройка спецификаций и в количество исполнений прописать нужное количество исполнений. Нужно учесть, что -00 (нулевое) исполнение также учитывается и если нам необходимо нулевое+34 исполнений, то число исполнений в настройке спецификации нужно указать 35. 2. Даже если мы укажем количество исполнений более 10, то они сразу не будут отображаться. Чтобы они отображались нужно выбрать любой из разделов(документация/сборочные единицы/детали/стандартные...) в которых прописывается значение для "количество на исполнение" и перейти к его редактированию. В зависимости от количества исполнений, которые мы прописали в настройке спецификации, нам будет доступно 2 или более строк, в которые можно вписать значение для "количество на исполнение". Изначально первые 9 исполнений и нулевое исполнение отображаются, а чтобы отобразилось 10 исполнение или выше, нужно в поле (количества на исполнение) вписать любое значение для нужного нам исполнения.  Также нюанс, если исполнений много и мы не заполним значение в целой строке ни в одном из разделов, то это исполнениями не будут отображаться. (К примеру мы прописали значения для исполнений 0-9 и 21-34, а 10-20 оставили пустыми; исполнение с 10 по 20 не отобразятся). Достаточно указать значение лишь в одной из ячеек в строке, тогда будет отображаться весь блок исполнений данной строки. К примеру если исполнений не более 20, будут активны 2 строки; количество исполнение не более 30, то будет активно 3 строки. При этом если количество исполнений будет меньше, чем количество клеток в строке, лишние клетки будут закрыты для редактирования. Если непонятно в ячейки какого исполнения мы находимся, то снизу слева отображается название исполнения при редактировании значения этой ячейки.
    • Artas28
      Что значит ручками пересчитывать? так же  по новой все контура выбирать? опять проект с нуля?
    • sokolikkostya
      Разумеется. Полный ваш пакет макросов. Думаете дело не в шаблоне детали и в заданных для него свойствах? кстати, строку "Материал (сортамент)" уже заменил на просто "Материал", но увы, из за этого материал не стал ровнее работать в ОН.
×
×
  • Создать...