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

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

Начал запись макроса, далее создаю сборку и добавляю готовые детали на сборку, все хорошо, останавливаю запись, открываю заново Солид, запускаю макрос, сборка создается, а детали не добавляются. Скажите что нужно добавить или что не так с кодом? В справке 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 пользователей

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

  • Сообщения

    • Guhl
      Ну само собой вначале скомпилирую. Без этого никуда 
    • Snake 60
      @noindex Ну а чего вы хотели? поверхность вырождается. Ваш наружный радиус на выступах меньше придаваемой толщины. Попробуйте начать с 1 мм и постепенно увеличивать и увидите как меняется внутренняя поверхность.
    • Viktor2004
      Я думаю вы не с чистого листа написали ладдер и теперь не знаете как его сохранить. Наверное исправляли уже имеющийся Учтите, если вы экспортируете измененный вами ладдер предварительно не скомпилировав его, все ваши изменения не будут учтены и внесены
    • gudstartup
      любым но без спецзнаков и должно содержать не более 8 символов . вообще что касается загрузчика то тип файла и его имя он определяет из содержимого файла но изначально имя файла чтобы он его правильно отобразил в каталоге карты должно соответствовать дос стандарту 8.3
    • Guhl
      Насколько я понимаю, имя может быть любым и расширение не обязательно?
    • gudstartup
      это оно вообще в экспорте  несколько форматов
    • Guhl
      Боюсь навести на себя гнев старожил, но задам таки вопрос. Как создать файл PMC1.000 в FLADDER 3? Я видел там кнопку "export memory card format file", это оно? Если да, то имя там можно задать произвольное же? Расширение имеет смысл ставить?
    • noindex
      Вообще я писал о подобном решении изначально, предполагая что это "неспортивно", правда у меня там не получается 2 шага, т.к. кромка с уже построенной поверхностью никак не строит поверхность с другой, поэтому я смогу это сделать только через копирование плоскости и эскиза на эту плоскость. Я с SW часов 20-30 в общей сложности наверное работаю, так что может что-то просто не знаю. Ну да фиг с ним, за 4-5 шагов нужную поверхность я построил, толщину придал, всё ок.   Перешел к следующей примыкающей детали (переходнику) и столкнулся с тем что поверхность строится как надо, а вот толщину вовнутрь придать не могу... Указываю 5мм, строится какая-то странная пересекающаяся геометрия: При попытке применить получаю ошибку: Что тут не так? Файл SW 2024 SP0 https://disk.yandex.ru/d/5GJFeHSUvSXiSw  
    • Jesse
      повторюсь: испытания на усталость проводят, как правило, на гладких маленьких образцах без концентраторов? А что если в рассчитываемой на многоцикловую усталость детали присутствуют концентраторы? Что если присутствует покрытие (азотирование, закалка ТВЧ)? Что если деталь большая? Всё эти факторы сказываются на появлении и развитии микротрещен.. Поэтому нужно вот это "что-то ещё", а именно коэфф-ты запаса дополнительные, учитывающие эти факторы.  Эти идеи высказаны здесь , а реализованы вот тута РАСЧЕТЫ ВАЛОВ РЕДУКТОРА (метод. указания).pdf  
    • Jesse
      а модель турбулентности какая? при больших углах атаки k-e хромает..
×
×
  • Создать...