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

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

Начал запись макроса, далее создаю сборку и добавляю готовые детали на сборку, все хорошо, останавливаю запись, открываю заново Солид, запускаю макрос, сборка создается, а детали не добавляются. Скажите что нужно добавить или что не так с кодом? В справке API ничего не нашел.


using SolidWorks.Interop.sldworks;
using SolidWorks.Interop.swconst;
using System.Runtime.InteropServices;
using System;

namespace Macro1.csproj
{
    public partial class SolidWorksMacro
    {
        public void Main()
        {
            ModelDoc2 swDoc = null;
            PartDoc swPart = null;
            DrawingDoc swDrawing = null;
            AssemblyDoc swAssembly = null;
            bool boolstatus = false;
            int longstatus = 0;
            int longwarnings = 0;
            swDoc = ((ModelDoc2)(swApp.NewDocument("C:\\User\\ProgramData\\SolidWorks\\SolidWorks 2016\\templates\\gost-assy.asmdot", 0, 0, 0)));
            swApp.ActivateDoc2("Сборка1", false, ref longstatus);
            swDoc = ((ModelDoc2)(swApp.ActiveDoc));
            ModelView myModelView = null;
            myModelView = ((ModelView)(swDoc.ActiveView));
            myModelView.FrameState = ((int)(swWindowState_e.swWindowMaximized));
            swAssembly = ((AssemblyDoc)(swDoc));
            boolstatus = swAssembly.AddComponent("C:\\Users\\Desktop\\fgfg.SLDPRT", 0.027620825299025514, 0.072698020262157451, 0.15179969937013105);
        }

        /// <summary>
        ///  The SldWorks swApp variable is pre-assigned for you.
        /// </summary>
        public SldWorks swApp;
    }
}

 

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


4 часа назад, mrazzzb сказал:

boolstatus = swAssembly.AddComponent("C:\\Users\\Desktop\\fgfg.SLDPRT", 0.027620825299025514, 0.072698020262157451, 0.15179969937013105);

Метод устарел, попробуйте что-нибудь поновее: http://help.solidworks.com/2010/english/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.IAssemblyDoc~AddComponent5.html

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

AddComponent

метод работает с открытым документом, т.е. для начала его нужно загрузить. Почему этого не сделал (не показал) макрос - не понятно.

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

Почему этого не сделал (не показал) макрос - не понятно.

Запись макроса часто не пишет многие команды или пишет не самый оптимальный код, поэтому запись макроса возможно лишь для простых операций, а более сложные операции всё же надо писать по справке и с имеющихся там примеров.

 

 

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

@Kelny я знаю. Я конкретно про этот пример. Хотя, пользователь мог заранее открыть деталь, а макрос уже написал то что написал.

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

@streamdown @Kelny @DuS Всем спасибо за отклик! Я нашел все-таки пример в справке http://help.solidworks.com/2013/english/api/sldworksapi/add_component_and_mate_example_csharp.htm Может быть кому-то пригодиться.

Но назрели еще вопросы, мне необходимо перезапустить солидворкс программно, так чтобы он открылся вновь без ранее закрытого документа(так получается если перезапустить программно), то есть открывается старый и уже новый создается(так как прописываю в коде на создание нового). И как сохранить документ в солидворкс программно, таким образом, чтобы звездочка(свидетельствует о не сохраненном документе) отображающаяся во вкладке сверху, исчезла, если быть точнее, чтобы программа поняла что сохранился документ.

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • boomeeeer
      Не помню чтобы у меня такое спрашивали при регистрации.
    • Snake 60
      @eljer0n  Откройте макрос SaveDRW.swp редактором VBA Найдите вот эти строки: Поменяйте выделенную цифру на нужную вам 3 или 4 - это количество символов которое останется от имени конфигурации. PS При сохранении в PDF тоже ругается на неправильное название чертежа, т.к. тоже обрезает название конфигурации до двух знаков, там тоже надо править при желании...
    • eljer0n
      @malvi.dp в общем порядок следующий (на каждое исполнение свой чертеж и позиция в спецификации):   Для исполнения с 2мя знаками. 1. Есть деталь с именем формата ХХ-01.01-01 (последнее -01 это исполнение) 2. В Мпроп детали назначается исполнение из конфигурации (как у вас на картинке). Отображается корректно 3. Создается чертеж по модели, исполнение в основной надписи чертежа детали отображается корректно. 4. Сохраняется через SaveDRW с корректным именем. 5. В спецификации сборки все отображается корректно.     Для исполнения с 3мя знаками. 1. Есть деталь с именем формата ХХ-01.01-011 (последнее -011 это исполнение) 2. В Мпроп детали назначается исполнение из конфигурации. Отображается корректно 3. Создается чертеж по модели, исполнение в основной надписи чертежа детали отображается корректно. 4. Сохраняется через SaveDRW с некорректным именем, а именно - с обрезанным до двух знаков исполнением (-01). 5. В спецификации сборки шифр отображается (внезапно! может какой глюк был: у солида или у меня ) корректно, как и у вас на рисунке.     Выходит, загвоздка все-таки только в сохранялке чертежа.
    • gudstartup
      да информация о решенной проблеме очень важна так что будем ждать хороших новостей!
    • mrVladimir
      @gudstartup Спасибо Вам за помощь. Теперь дело в приобретении платы. Как что-то получится (сперва приобрести, потом поставить) обязательно отпишусь.
    • gudstartup
      а как вы taxid фирмы нашли?
    • gudstartup
      все что я написал в цитате выше по теме полная фигня в связи с вновь приобретённой информацией. можно менять любые компоненты в пределах серии чпу если только не меняете по или записываете oprminf но  всегда могут быть нюансы  @mrVladimir все должно получиться извините за то что выдал непроверенную информацию за мнение типа знающего эксперта оказывается я 
    • malvi.dp
      Какое у детали имя файла и как формируете Обозначение и Наименование? Вы каждое исполнение сохраняете в новый чертеж? Или это групповой чертеж? Если групповой-то имя конфигурации в нем быть не должно. Стоит ли галочка "Исполнение" "Из конфигурации"? На сколько мне не изменяет память макрос сохраняет файл чертежа с тем же именем что и файл модели в папке модели. В спецификации все правильно отображается, даже если знаков исполнений больше трех  
    • gudstartup
      и главная деталь чтобы на системе была remote option system а именно файл oprminf.000 c сертификатами и были ли проблемы с ними после замены компонентов.
    • boomeeeer
      с него родимого
×
×
  • Создать...