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

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

ну в VBA затрахаешься сортировку делать (в смысле писать).

 

Ну эта.. Все придумано за нас..

 

https://www.yandex.ru/yandsearch?clid=9582&text=%D1%81%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0%20%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D0%BE%D0%B2%20VBA&lr=54&redircnt=1471439491.1

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


Все придумано за нас
 

А теперь я))

public List<PartPropertiesModel> SuperTable { get; set; }
...
var Sorted = SuperTable.OrderBy(r => r.Designation).OrderBy(f => f.Name);
Ссылка на сообщение
Поделиться на других сайтах

скромно напишу, что сортировать еще охота по нескольким параметрам, или даже сортировать структуры, по группе параметров в них.

Ссылка на сообщение
Поделиться на других сайтах
сортировать структуры
 Создавайте классы со свойствами и листами классов. не надо структуры. Как сортировать - написал выше в сообщении.
Ссылка на сообщение
Поделиться на других сайтах
Что значит сортировку? Куда результат будет выводиться?

в столбец ТС там где имя, тип , дата и тд.. можно вывести и др параметры.. Верся солида выводится скриптом.  масса и обозначения/наименования и сортируются все фаилы при нажатии. Вот хочу геометрию туда же.. есть же какие то значения по которым можно определить что "выдавить " нажали и размер этого действия..

 

 

я имею ввиду не обновление свойств, а фильтрацию. К примеру: список щитов отдельный список , профиль-1 отдельный список, профиль-2 отдельный, и.т.п.
post-12000-1366120579_thumb.jpg
на фото "отфильтровано" по обозначению. моно по наименованию, по имени, массе, и любым другим полям что записано ! Список не нужен.. тебе список то нужен чтоб в нем искать ? правильно понял?
Изменено пользователем Maik812
Ссылка на сообщение
Поделиться на других сайтах

МЫ же тут обсуждаем методы автоматизации через АПИ - а не кто как делает. А чо как отсортировать - это у каждого свои 5 способов найдутся. Всё это можно делать и в экселе. Только всё это ананизм.

Я веду к тому, чтобы после выполнения моделей, у меня автоматом создавались таблицы, по типам сечения, потом по типам обработки, потом отдельно таблица сборочных узлов, и всякая доп информация. Короче смысл в том, чтобы привести рабочую документацию к тому виду, что требует производство.

Понятно, что всё это автоматом с нуля - утопия. Но если есть типовой проект, то после внесения изменений всё должно автоматом меняться. И под изменениями я имею ввиду не только размеры по длине, но и размеры сечений.

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

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

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

Здравствуйте!

 

Беру из хелпа пример "Set Material Example (VBA)" или "Set Material Property Name Example (VBA)".

 

Из родной солидовской базы материал меняется нормально..

А вот мой самодельный материал, находящеся в базе "Настроенный пользователем материал" присваивать не хочет..

Это глюк или так было задумано?? И как можно обойти??

 

Ну еще вопрос.. можно ли програмно подключать библиотеки, те которые "Tools->Reference"??

А то выдает "Error accessing the system registry"..

Видимо, из-за отсутствия админских прав..

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

https://blogs.msdn.microsoft.com/pranavwagh/2006/08/30/how-to-load-win32-dlls-dynamically-in-vba/

самодельный материал ... присваивать не хочет..

Сделайте магию, поместите файл базы материалов в ту же папку, где и дефолтная база. (См. настройки-месторасположение файлов - Базы данных материалов)

Ссылка на сообщение
Поделиться на других сайтах
Сделайте магию, поместите файл базы материалов в ту же папку, где и дефолтная база. (См. настройки-месторасположение файлов - Базы данных материалов)

 

У меня такая же первая мысль была..Но:

 

Видимо, из-за отсутствия админских прав..

 

Хотя, потом вспомнил, что права на папку солида мне дали, когда я штриховку свою добавлял..

Переместил базу в нужную папку, но чуда не произошло..

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

В базе материал был записан как "MisMaterial| Сталь12х18Н10Т ГОСТ 5632-72"..(наследие "Материалы и Сортаменты" компаса)..

Однако, если вставке в текст макроса такой записи материал не менялся.. Как и при попытке установить материал "Сталь12х18Н10Т ГОСТ 5632-72"..

Все решилось ручным редактированием файла базы.. "MisMaterial| Сталь12х18Н10Т ГОСТ 5632-72" заменил на "Сталь12х18Н10Т ГОСТ 5632-72"..

 

ЗЫ. Кодировка базы материалов UTF-16 LE. При попытке считать макросом (Open .. For Input AS #1) сплошные кракозябры..

ЗЗЫ. При перемещении базы материалов "Настроенный пользователем материал" в другую папку, солид воссоздает на старом месте базу с таким именем, правда всего с одним материалом..

ЗЗЗЫ. "Материалы и Сортаменты" семантика сильно напоминают "Материалы и Сортаменты" компаса..

Ссылка на сообщение
Поделиться на других сайтах
Все решилось ручным редактированием файла
 Собсна, основополагающая люой автоматизации, это унификация шаблонов. Т.е. сначала всё надо настроить как положено, а потом уже API-ть. Проверено опытом.
Кодировка базы материалов UTF-16 LE

Быстрый гугл выдал это:

Sub Encode2()
Const sPath As String = "c:\folder1\Product Master.txt"
Const SetChar As String = "UTF-8"
With CreateObject("ADODB.Stream")
.Open
.LoadFromFile sPath ' Loads a File
.Charset = SetChar ' sets stream encoding (UTF-8)
.SaveToFile sPath, 2 ' adSaveCreateOverWrite
.Close
End With
End Sub
Ссылка на сообщение
Поделиться на других сайтах

Привет.
Это модель, создан с более старой версией Solidworks (2014)
Можно ли с помощью VBA установить "Create Cut Lists Automatically" и "Update Automatically"?

Я искал, но ничего не нашел.

 

post-53017-0-10006700-1474634937.jpeg

post-53017-0-51224900-1474634945.jpeg

post-53017-0-58776700-1474634953.jpeg

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

 

Видел другой вариант.. Буду пробовать..

 

Еще забыл ЗЗЗЗЫ.. В "месторасположение файлов - Базы данных материалов" первая в списке - папка на рабочем сервере (только для чтения), а при получении макросом списка баз материалов, пишет путь к папке содила в Program files...

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

Плохо искал

https://forum.solidworks.com/message/507593

https://forum.solidworks.com/message/14761

https://forum.solidworks.com/message/580504

https://forum.solidworks.com/message/658778#comment-658778


путь к папке содила
поместите файл базы материалов в ту же папку, где и дефолтная база
  :smile:  Вот так запрограммировали, что аж где-то жёстко прошито.
Ссылка на сообщение
Поделиться на других сайтах
  • 3 недели спустя...
Быстрый гугл выдал это:
Sub Encode2()
Const sPath As String = "c:\folder1\Product Master.txt"
Const SetChar As String = "UTF-8"
With CreateObject("ADODB.Stream")
.Open
.LoadFromFile sPath ' Loads a File
.Charset = SetChar ' sets stream encoding (UTF-8)
.SaveToFile sPath, 2 ' adSaveCreateOverWrite
.Close
End With
End Sub

 

Че-то какую кодировку не напишешь, все в UTF-8 переводит.. Т.е. AkelPad пишет UTF-8, а Bred3 UTF-16..

И все равно получаются краказябры.. Макрос даже до конца файл не считывает, переходит дальше..

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

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

 

   

using System;

using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SolidWorks.Interop.sldworks;
using SolidWorks.Interop.swcommands;
using SolidWorks.Interop.swconst;
using System.Diagnostics;
using System.Runtime.InteropServices;
 
 
namespace soldworkstest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        SldWorks swApp;
        IModelDoc2 swModel;
 
        private void button1_Click(object sender, EventArgs e)
        {
            Process[] processes = Process.GetProcessesByName("SLDWORKS");
            foreach(Process process in processes)
            {
                process.CloseMainWindow();
                process.Kill();
            }
            Guid myGuid1 = new Guid("0D825E02-9000-4D82-B4AB-D6BDC2872797");
            object processsw = System.Activator.CreateInstance(System.Type.GetTypeFromCLSID(myGuid1));
 
            swApp = (SldWorks)processsw;
            swApp.Visible = true;
 
            swApp.NewPart();
 
            swModel = swApp.IActiveDoc2;
 
            swModel.Extension.SelectByID2("Спереди", "PLANE", 0, 0, 0, false, 0, null, 0); //выбираем плоскость
            swModel.SketchManager.InsertSketch(true); //вызываем редактор эскизов
            swModel.ClearSelection2(true);  //очищаем выбор в редакторе эскизов
 
            swModel.SketchManager.CreateCircle(0, 0, 0, 0.071106, 0.031713, 0); //создаем окружность
            swModel.ClearSelection2(true);  //очищаем
 
            swModel.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, false, 0, null, 0); //выбираем окружность
            swModel.FeatureManager.FeatureExtrusion2(true, false, false, 0, 0, 0.03, 0.01, false, false, false, false, 1.74532925199433E-02, 1.74532925199433E-02, false, false, false, false, true, true, true, 0, 0, false); //вытягиваем
            
            swModel.Extension.SelectByID2("", "FACE", -2.89926496987505E-02, 2.36574859687835E-02, 0, false, 0, null, 0);  //косяк
            swModel.SketchManager.InsertSketch(true);
            swModel.ClearSelection2(true);
 
            swModel.SketchManager.CreateCircle(0, 0, 0, 0.036135, 0.044276, 0);
            swModel.ClearSelection2(true);
 
            swModel.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, false, 0, null, 0);
            swModel.FeatureManager.FeatureCut3(true, false, false, 0, 0, 0.03, 0.03, false, false, false, false, 1.74532925199433E-02, 1.74532925199433E-02, false, false, false, false, false, true, true, true, true, false, 0, 0, false);
 
 
          
 
 
 
            swModel.SaveAs3("C:\\1.sldprt", 0, 2);
 
            swApp.ExitApp();
            swApp = null;
 
        }
            
    }
}
 

 

на строку, выделенную красным ругается (отверстие вырезать нехочет)

Необработанное исключение типа "System.Runtime.InteropServices.COMException" в soldworkstest.exe

что не так?

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

данный пример уже обсуждался здесь

 данный пример является тем же самым для "программиста" что и для конструктора не полностью определённый эскиз.  :smile:

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

Вот эти 2 строчки убрать

Guid myGuid1 = new Guid("0D825E02-9000-4D82-B4AB-D6BDC2872797");

object processsw = System.Activator.CreateInstance(System.Type.GetTypeFromCLSID(myGuid1));

 

и вместо них вставить одну

object processsw = System.Activator.CreateInstance(Type.GetTypeFromProgID("SldWorks.Application"));

 

Эту тоже убрать. Открывается окно, чёта-там делается и закрывается. Зачем его отображать то тогда? )))

swApp.Visible = true;

 

Про это вообще отдельный разговор. Этот код когда-нибудь навернётся )))

swApp.NewPart();

 

Ага, вот прям все взяли и разрешили писать в корневую папку  :smile:

swModel.SaveAs3("C:\\1.sldprt", 0, 2);

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

Доброго времени.

 

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

Активную конфигурацию получить - легко, а это что-то никак не могу найти...

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

состояния отображения

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • maxx2000
      либо кривая, либо контрольная поверхность. Т.е. алгоритм CUT3D уже реализован на уровне CAM.
    • bsaidov
      Приветствую!  При сохранении чертежа возникает ошибка (фото1), и ошибки в логе (фото2). Но на другом компе все работает корректно.  -Работаю ТС 12.4 -NX 1930 Буду рад любой информации..      логи NX: >>>> Error code 3270009 caught in file "E:\workdir\REF\1926.1700\src\klo\no\ind\im_instance_definitions.c" at line number 5413 >>>> Error code 3270009 caught in file "E:\workdir\REF\1926.1700\src\part\no\ind\part_save.c" at line number 5701 >>>> Error code 3270009 caught in file "E:\workdir\REF\1926.1700\src\part\no\ind\part_save.c" at line number 5849 *** Failed to save %UGMGR=V3.2 PH=kpEAQpWaLhpt8C PRH=ktLAQpWaLhpt8C PN=_____________СБ_2D PRN=00 RT="has shape" AT="UG master part file" (3270009) *** Failed to save %UGMGR=V3.2 PH=kpEAQpWaLhpt8C PRH=ktLAQpWaLhpt8C PN=АРВЦ.303571.003СБ_2D PRN=00 RT="has shape" AT="UG master part file" Total save time: CPU time: 0.359 secs, Real time: 1.397 secs &MACRO MESSAGE_BOX -2 Обнаружены следующие ошибки: &MACRO MESSAGE_TEXT &MACRO MESSAGE_TEXT Ошибка ввода/вывода : ________________________________________________-Сборочный чертеж JavaScript Console Message: Line number: 1 Source id: http://_________________________________/assets1685862881388/bundles/bundle.commons~main~a21d4778.js [QT]Critical: &MACRO MENU, 0, UG_HELP_SYSTEM_LOG UG_GATEWAY_MAIN_MENUBAR <RibbonFileBar->BackStageBar->LeftBackStageGroup->rbn_file_tab_help_cascade.csb> ## !  
    • evgw
      Пытаюся в эскизе разделить отрезок на 3 или 4 равные части. Хотелось бы как-то получить переменную, которая бы равнялась длине отрезка и чтобы она ассоциативно менялась при изменении отрезка. А затем поставить точку и указать расстояние до точки в виде этой переменной деленной на 3 или 4. Не понимаю, как такое можно сделать. Измерения в эскизе не работают. Единственный вариант, который я придумал - сделать всё в разных эскизах. Нарисовать отрезок в одном эскизе. Потом сделать измерение и ещё один эскиз, в которм использовать измерение. А можно как-нибудь сделать это в одном эскизе? NX у меня 1996.
    • Jesse
      Фёдор, да что вы заладили?! Нормальная мягенькая сталь у меня Колеса и корпуса: 1.4317 DIN EN 10283 Материал-заменитель: Сталь 08Х12Н4ГСМЛ ГОСТ 977-88. Вал: A564 Type 630-H1150D Материал-заменитель: Сталь 07Х16Н4Б ГОСТ 5632-2014. По третьей теории прочности оцениваю. сигма1 - сигма3 Интенсивность, короче..  
    • Fedor
      Высокопрочные материалы скорее хрупкие в таких надо по сигма 1 или 3 смотреть предельное состояние и они чувствительны к концентрации поэтому стоит конструктивно понизить напряжения через скругления и скосы ... 
    • Sla_68
      у меня импорт идет в настройках obj и stl  как твердое тело. Как сетку я не пробовал.. возможно что и ошибок нет при такой настройке импорта. Но очень хочется портить как твердотел или поверхность там 2 файла первый - вызывает проблему, второй - не вызывает
    • andrey2147
      Мне привезли один и я в нем "ни бельмеса". Наладчики слились.........   Что такое "фидбэк" ?  
    • Jesse
      да это программа просто криво показывает)       глянул по справочнику что @AlexKazскинул. Для отверстий в "цилиндрическом тоннеле" ~2 коэффчиг.   не. Ну самом деле.. это ведь реально изврат большую болванку считать?! Мне там допустим ещё контактную задачу надо было решить... Даже с циклической симметрией на сетке "средней добротности" выйдет уйма времени.  Я даже удивлён честно сказать, что никто так не балуется. Чтож, буду первопроходцем p.s.: да на самом деле я более чем уверен что отверстия не повлияют. А картинки разноцветные нужны...
    • Acce
    • SAPRonOff
      хз - точно не подскажу, но как минимум Гербарий был эффективным шагом в получении соответвующих компетенция всей команды математиков в Топ Системах для разработки RGK.
×
×
  • Создать...