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

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

1 минуту назад, malvi.dp сказал:

На этой строчке затык

Добавь

Set ModView = swModel.ActiveView

swModel = активный документ

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


День добрый.

Может кто подскажет такую информацию:

Надо где-то в свойства вида (IView), либо в элементах типа IProjectionArrow, DrSection и т.п.( в общем, в каком-то любом интерфейсе описывающем дочерний вид), внести свои данные (пока видится данные типа ТЕКСТ). Есть какое-нибудь информационное поле позволяющее это?

З.Ы. Поясняю для чего:  хочу переработать макрос SetLabels, с добавлением возможности игнорирования некоторых видов( исключить их из автоматического переименования при наличии нескольких обозначений и только одном виде). Я в курсе что можно обойтись проверкой на то, находится ли вид в пределах чертежного листа. Хочется что бы сохранялась связь между видом и обозначениями при переименовании вида.

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

внести свои данные (пока видится данные типа ТЕКСТ). Есть какое-нибудь информационное поле позволяющее это?

З.Ы. Поясняю для чего:  хочу переработать макрос SetLabels, с добавлением возможности игнорирования некоторых видов

Как вариант добавить скрытую текст заметку (можно и не скрытую, если вид за бортом) в которой прописать ключевой текст для проверки статуса. Что бы упростить поиск такой заметки ей можно присвоить именной индификатор.

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

Как вариант добавить скрытую текст заметку (можно и не скрытую, если вид за бортом) в которой прописать ключевой текст для проверки статуса. Что бы упростить поиск такой заметки ей можно присвоить именной индификатор.

Спасибо. У самого такие мысли были, но надеялся, что можно обойтись без дополнительных объектов.

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

День добрый.

Есть такой вопрос:

При вызове команды "Редактировать текст в окне" из контекстного меню на метке вида, видна информация типа: <VLNAME><VLLABEL> и т.п.

Теперь сам вопрос:

 Как эту информацию можно получить с помощью SW API ? (  интерфейс INote.GetText(), то, что внутри угловых скобок, не видит )

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

Как эту информацию можно получить с помощью SW API ? (  интерфейс INote.GetText(), то, что внутри угловых скобок, не видит )

Возможно: swNote.PropertyLinkedText

http://help.solidworks.com/2010/english/api/sldworksapi/get_and_set_format_of_note_example_vb.htm

 

 

 

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

Супер! Именно то что надо ....

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

Кто-то пользуется надстройкой Rubberduck при написании макросов? Отпишитесь пожалуйста.

Полезная вещь?

Ссылку не даю, гуглится на раз

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

Rubberduck

Да, это ВЕЩЬ!!!

Офигенно понравилось!

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

Как устанавливается сие чудо?

Двойным щелчком :)

Все очень просто, ставишь, он интегрируется как аддон в MVBA.

Становится виден в аддон-менеджере, можно включать, отключать.

Убогая IDE для VBA стала напоминать хоть что-то немного стоящее.

На сайте есть подробное описание функций.

Одна автоматическая табуляция кода чего стоит.

Пока не нашел подсветку синтаксиса, может и нет, а то бы цены не было.

Но есть другие функции для быстрой навигации по коду и много всяких других плюшек.

Попробуйте, мне понравилось, ставил последнюю версию

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

Столкнулся с проблемой при написании автономного приложения на C#.

Происходит необратимый рост ресурсов Solidworks если окно скрыто. При видимом окне все нормально.

Идет простой перебор большого количества чертежей с сохранением в PDF и если есть сама функция сохранения : 

boolstatus = swModExt.SaveAs(patchNew, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, (int)swSaveAsOptions_e.swSaveAsOptions_Silent, swExportPDFData, ref errors, ref warnings);

то после закрытия чертежа:

swApp.CloseDoc(nameDoc);  //(swApp.QuitDoc(nameDoc));

Ресурсы потребления SolidWorks не падают пока его не закроешь. При переборе 50+ файлов чертежей, потребление видеопамяти улетает за 16 Gb и оперативной за 40 Gb.

 

 

Примерный код C#:

 

class Class1
    {
        static void Main(string[] args)
        {
            List<string> patch; //Список чертежей
            using (SLD1 solid = new SLD1())
            {
                for (int i = 0; i < patch.Count; i++)
                {
                    solid.SavePDF(patch[i])
                }
            }
        }
    }

    class SLD1: IDisposable
    {
        public SLD1()
        {
            swApp = (SldWorks)Activator.CreateInstance(Type.GetTypeFromProgID("SldWorks.Application"));
            swApp.CommandInProgress = (bool)true;
            swApp.UserControl = (bool)false;
            swApp.Visible = (bool)false;
        }

        public void Dispose()
        {
            swApp.CommandInProgress = (bool)false;
            swApp.ExitApp();
            System.Runtime.InteropServices.Marshal.FinalReleaseComObject(swApp);
            GC.Collect();
            GC.WaitForPendingFinalizers();
        }

        public void SavePDF(string patch)
        {
            swModel = ((ModelDoc2)(swApp.ActiveDoc));
            swModel = ((ModelDoc2)(swApp.OpenDoc6(patch, swDocumentTypes_e, 0, "", ref errors, ref warnings)));
            boolstatus = swModel.EditRebuild3();
            swModel.SetUserPreferenceToggle((int)swUserPreferenceToggle_e.swViewReverseWheelZoomDirection, true);
            swModExt = (ModelDocExtension)swModel.Extension;
            //Некоторый код подготовки листов в PDF
            boolstatus = swModExt.SaveAs(patchNew, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, (int)swSaveAsOptions_e.swSaveAsOptions_Silent, swExportPDFData, ref errors, ref warnings);
            swApp.QuitDoc(swModel.GetTitle());
            swModel = null;
        }
    }

 

При создании окна Solidworks через Running Object Table (ROT) все тоже самое.

Если убрать само сохранение SaveAs, то роста потребления нет...

 

Может есть методы у Solidworks на очистку мусора и т.п.?

 

 

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

Может есть методы у Solidworks на очистку мусора и т.п.?

Скорее всего рост памяти связан с тем, что чертёж требуется обязательно отобразить. Память тут очищать бессмысленно, ибо если при обычном показе окна всё норм.

 

Так же, изучите зачем нужен DispatchWrapper

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

У меня нормально работает следующий код (упрощенно):

 

'===============================================================

Public Function DrawDocIsOpen(ByVal ffnDraw As String, _
                              ByRef bWasClosed As Boolean, _
                              ByVal swOpenDocOpt As swOpenDocOptions_e) As Boolean
   Dim oModelDoc As SldWorks.ModelDoc2
   Set oModelDoc = Nothing
   DrawDocIsOpen = False
   If moSW Is Nothing Then Exit Function
   Set oModelDoc = moSW.GetOpenDocument(ffnDraw)
   bWasClosed = oModelDoc Is Nothing
   If bWasClosed Then
      Set oModelDoc = moSW.OpenDoc6(ffnDraw, swDocDRAWING, swOpenDocOpt, vbNullString, 0, 0)
   End If
   DrawDocIsOpen = Not oModelDoc Is Nothing
   If DrawDocIsOpen Then moSW.ActivateDoc2 oModelDoc.GetTitle, False, 0

   Set oModelDoc = Nothing
End Function

'===========================================================

Public Function CreatePDF(ByRef ffnPDF As String ) As Boolean
   Dim oModelDoc  As SldWorks.ModelDoc2
   Dim w          As Long
   Dim e          As Long

   Set oModelDoc = moSW.ActiveDoc

   CreatePDF = oModelDoc.SaveAs4(ffnPDF, swSaveAsCurrentVersion, swSaveAsOptions_Silent, e, w)

   Set oModelDoc = Nothing

End Function

'============================================================

Public Sub CloseActiveDoc()
   Dim oModelDoc As ModelDoc2
   On Error Resume Next
   Set oModelDoc = moSW.ActiveDoc
   moSW.CloseDoc oModelDoc.GetTitle

   Set oModelDoc = Nothing
End Sub

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

Спасибо всем ответившим.

 

Может кому пригодится, пока смог реализовать такой костыль:

swApp = (SldWorks)Activator.CreateInstance(Type.GetTypeFromProgID("SldWorks.Application"));
swApp.Visible = false;
swApp.CommandInProgress = true;
swModel = (ModelDoc2)swApp.OpenDoc6();
swApp.RunMacro(); //Проводим сохранение макросом VBA
swApp.QuitDoc();
swApp.CommandInProgress = false;
swApp.ExitApp();

Как результат роста ресурсов потребления не наблюдается, быстродействие не пострадало, окно Solidworks скрыто.

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

Как изменить текст программно в обведенном окошке?

Может, кто сталкивался...

 

как изменить текст программно.JPG

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

Категорически не советую не разобравшись со структурой имен пытаться вольно менять их. Разорванные связи это еще самое легкое, что может произойти. У одной и той же детали как минимум три имени: имя в дереве, имя в свойствах, и имя-описание в общих свойствах. Я думаю, что разработчики уже сами запутались в этих именах. В вашем случае надо объявить деталь как компонент и далее:  swComp.Name2 = "ваше новое имя". Ну и да, с виртуальными компонентами вообще нет смысла делать какие-то операции с именами, пока не выведите их из этого статуса

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

В вашем случае надо объявить деталь как компонент и далее:  swComp.Name2 = "ваше новое имя".

Вручную приставку после крыши у виртуального компонента можно убрать.

swComp.Name2 приставку после крыши у виртуального компонента не убирает.

В принципе, она не мешает, но хотелось бы "чего-то светлого, чистого"... )

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

swApp.RunMacro();

Этим кодом вы проводите In-Process выполнение. Оно по умолчанию будет быстрее чем Stanalone программкой.

Кстати, в этом случае 

swApp.CommandInProgress 

не имеет смысла. Попробуйте убрать эту строку и всё останется на той же скорости.

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

Вручную приставку после крыши у виртуального компонента можно убрать.

swComp.Name2 приставку после крыши у виртуального компонента не убирает.

В принципе, она не мешает, но хотелось бы "чего-то светлого, чистого"... )

Убрать может и можно, но после перезагрузки файла полное имя разве не восстанавливается?

Связано вероятно с соответствующей галочкой Инструменты-Параметры...-Настройки пользователя-Внешние ссылки:

Цитата
Обновить имена компонентов, когда документы заменяются

Данный параметр следует отключать, только если используется диалоговое окно Свойства компонента для назначения имени компонента в дереве конструирования FeatureManager, отличающегося от имени файла компонента.

 

http://help.solidworks.com/2010/russian/solidworks/sldworks/allcontent/solidworks/core/assemblies/hidd_options_external_refs.htm

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

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • maxx2000
      Я скорее согласен с Надеждой Януарьевной
    • Koels
      Мотора 54 градуса, что на 6 градусов больше соседнего станка, вентеляторы в норме да. Ещё хочу сравнить нагрузку координаты с соседним станком, но пока не дают. У этих двух станков проблемы с охлаждением, на соседнем стоит автомобильный радиатор для охлаждения масла. xD
    • Bot
      Dassault Systèmes Reports Solid First Quarter Results And Reaffirms Full-Year Objectives Просмотр полной статьи
    • Ninja
    • Ninja
      В зимнее время водители устанавливают на колёса специальные цепи против скольжения. В мире разработано множество видов цепей и способов их установки. Японцы применяют "цепи Абэ". Кто этот великий инженер? Это знаменитый японский писатель Кобо Абэ. Для уединенного писательского труда Абэ купил домик в горах. А в горах зима ранняя, снежная, затяжная. Без цепей на колёсах можно и улететь с обрыва. Абэ периодически заводил машину и спускался в долину. Почту получить/отправить, в магазине продукты купить, ящик рисовой водки. (Известное дело: насухую великую книгу не напишешь). В долине приходилось цепи снимать. По правилам цепи запрещается применять при отсутствии на дороге снежного покрова. В те времена для установки/снятия цепи требовалось домкратом поднимать каждое колесо. В машине 4 колеса. Товарищу Абэ приходилось корячиться с домкратом. При этом в самых нелитературных выражениях комментируя политику правящей партии и все домкраты в мире. Купил в магазине бухлишко-закусь. Поехал домой в горы. А там снег, скользко. Цепи требуются. Опять писатель и драматург Абэ домкрат крутит. Всё это насмерть надоело Абэ. Обратился к компаниям-производителям: придумайте способ установки цепей без домкрата! Но производители ничего не придумали. Или не захотели. Тогда Абэ сам придумал способ установки цепей без необходимости поднимать колесо. Послал изобретение на конкурс. И неожиданно получил призовое место и патент. Новый способ установки цепей быстро завоевал популярность. Так и пошло у японцев - "цепи Абэ". Кобо Абэ не получил Нобелевскую премию по литературе. Уже выдвигался, уже все были уверены в том, что он её получит. Но не успели, писатель умер. А это всё дурацкие цепи виноваты. Сколько времени он потерял в установке/снятии цепей? Сколько времени, вместо того чтобы писать, он крутил домкрат? Вот и не успел. https://ru.ruwiki.ru/wiki/Абэ,_Кобо
    • gudstartup
      приемлимо. температуру мотора посмотрите. если вентилятор нормально вращается и его скорость соответствует оригинальному а также контакт в разъеме нормальный а F все равно появляется то даже не знаю что у вас может быть так как привод у вас новый
    • Koels
      Хмм, я думал раз она вылазит даже в простое, то Z координата висит на тормозе и дело не в этом. Спасибо за мысль, щас узнаю. Вообще у нас рядом стоит точно такая же макина, точь в точь и там таким проблем нет. Много заказов и отсутствие специалистов сделало свое дело. :) @gudstartup, 58% нагрузка на координату
    • mrVladimir
      Что-то я немного засомневался. Если решим брать новое ЧПУ, то искать точно такое же необходимо по номеру сзади корпуса (пластикового пластмассового) - так? А если брать только плату (материнскую или как ее лучше назвать...), на которой установлена (запаена) микросхема 1 на моих фото выше, то искать плату необходимо по номеру, который указан на самой плате - так? В моем случае : ЧПУ : A02B-0321-B520. Код на плате : A20B-8201-0081/01A. Если, допустим, мы покупаем ЧПУ A02B-0321-B520 - будет ли это гарантией того, что в нем установлена плата A20B-8201-0081/01A. И можно ли будет его считать таким же. И с отдельно приобретаемой платой тоже самое - если номер на ней полностью совпадает с нашим, значит ли это, что она полностью идентична. P.S. : извиняюсь за , возможно, навязчивые вопросы. Просто не хотелось бы попасть впросак из-за своей некомпетентности. такой файл есть, но мне говорили, что после снятия архивов, его лучше вообще никогда нигде ни использовать. А на каком этапе он нам может понадобиться?. Если, как говорил Виктор, мы зальем архив SRAM на старый модуль (ROM-SRAM), установленный в новое ЧПУ, то и файл OPRMINF не нужен. Правильно же?
    • Slavdos
      Доброе. делюсь 1 внедренным китайцем. купили у ЛЛС MARVEL PRO 6000-3015.HGT , 2 шт , с автоматизацией. станки неплохие, интерфейс русские, достаточно дружелюбен. за автоматизацию зря переплатили, китай похоже в этом сильно уступает европе. из неожиданностей- резка воздухом дает неудаляемый грат, по сути необходимы зачистные станки.
    • Killerchik
      Я 4 комфорки на скоростной шпиндель поставил, в этом же качестве)))))
×
×
  • Создать...