mrazzzb

Координаты детали(объекта) API SolidWorks

Как получить координаты детали? При добавлении детали в сборку прописываю координаты х=-1, y=-1, z =-1 (Оставил с примера).

swComponent = (Component2)swAssemblyDoc.AddComponent5(strCompModelname, (int)swAddComponentConfigOptions_e.swAddComponentConfigOptions_CurrentSelectedConfig, "", false, "", -1, -1, -1);

 

Изменено пользователем mrazzzb

Поделиться сообщением


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


А что вы с ними делать будете? С координатами.

1 пользователю понравилось это

Поделиться сообщением


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

А что вы с ними делать будете? С координатами.

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

swComponent = (Component2)swAssemblyDoc.AddComponent5(strCompModelname, (int)swAddComponentConfigOptions_e.swAddComponentConfigOptions_CurrentSelectedConfig, "", false, "", /*Вместо этих координат*/-1, -1, -1);
Изменено пользователем mrazzzb

Поделиться сообщением


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

так чтобы они оказались на "своем" месте, где были созданы ранее

Не понял. Ранее детали были созданы в "Деталях". Как они вообще узнают своё место в сборке если они туда не вставлены? А если вставлены, то как узнают куда вставать кроме как в центр?

"Может быть вопрос надо задавать иначе? Как расположить детали в сборке при вставке?"

Add Components (с матрицей поворота)

Матрица поворота из которой можно узнать координаты компонента в сборке

Лан, ваше дело - ваша логика)))

Изменено пользователем streamdown
1 пользователю понравилось это

Поделиться сообщением


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

Не понял. Ранее детали были созданы в "Деталях". Как они вообще узнают своё место в сборке если они туда не вставлены? А если вставлены, то как узнают куда вставать кроме как в центр?

 

Пишу то чтобы они встали на свое место, потому что я создал две детали на расстоянии друг от друга, так примерно на глаз, (1 деталь сфера, 2 деталь куб примерно правее сферы). Добавляю сферу в сборку в самом SolidWorks, далее куб, и они располагаются на том расстоянии на котором я их как бы расположил, поэтому и возникает вопрос, как получить точку расположения детали... Я в SolidWorks не мастер, поэтому тяжело поставить правильно вопрос,  извиняюсь..

Поделиться сообщением


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

как получить точку расположения детали

http://help.solidworks.com/2015/english/api/sldworksapi/Get_Transforms_of_Assembly_Components_Example_VB.htm

1 пользователю понравилось это

Поделиться сообщением


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

@streamdown

Вот хочу показать пример, записал макрос на добавление деталей. Вот от куда он берет эти координаты при добавлении?? 

ModelDoc2 swDoc = null;
            PartDoc swPart = null;
            DrawingDoc swDrawing = null;
            AssemblyDoc swAssembly = null;
            bool boolstatus = false;
            int longstatus = 0;
            int longwarnings = 0;
            swDoc = ((ModelDoc2)(swApp.ActiveDoc));
            swAssembly = ((AssemblyDoc)(swDoc));
            boolstatus = swAssembly.AddComponent("C:\\Users\\1.SLDPRT", -0.02809191675006055, -0.0059169945175620263, 0.1448468300600689);//вот эти координаты
            swAssembly = ((AssemblyDoc)(swDoc));
            boolstatus = swAssembly.AddComponent("C:\\Users\\2.SLDPRT", -0.037101475792303377, -0.0077559709361343689, 0.19000035693083528);//вот эти координаты
        

 

А по примеру который Вы предложили, получаются совсем не понятные цифры..

Для детали 1 (-168,446807450396, -40,3112468835756, -45)

Для 2 (5,50898468606606, -7,62599594862625, -65)

http://help.solidworks.com/2015/english/api/sldworksapi/transform_point_from_component_space_to_assembly_space_example_csharp.htm 

            
           

 

Изменено пользователем mrazzzb

Поделиться сообщением


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

Вот от куда он берет эти координаты при добавлении?? 

Когда добавляете компонент в сборку, куда тыкаете мышкой - туда SW детальку и вставляет. Т.е. он получает тыкотельно_мышковую_точку (PickPoint) и туда вставляет компонент с координатами.

1 пользователю понравилось это

Поделиться сообщением


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

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

Проблема нарисовалась уже в другом:wallbash:Я попытался добавить детали по этим координатам, полученным в макросе, они какого-то хрена добавились друг на друга, по макросу координаты (-0.02809191675006055, -0.0059169945175620263, 0.1448468300600689)

но когда пишу координаты чуть чуть больше(-10, -10, -10) , тогда они отдельно друг от друга, я вообще не понимаю что за проблема....

Хотя добавляю в самом солиде детали, они отдельно друг от друга по таким координатам , те что по макросу записаны :g:

Изменено пользователем mrazzzb

Поделиться сообщением


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

Скажите пожалуйста как получить имя вставленного эскиза? (Трехмерный эскиз1)

swModel.Insert3DSketch2(true);

Поделиться сообщением


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

 

16 минут назад, mrazzzb сказал:

Скажите пожалуйста как получить имя вставленного эскиза? (Трехмерный эскиз1)

swModel.Insert3DSketch2(true);

Это уже не нужно, спасибо!

 

Не знаете случайно как получить само число (расстояние) после применения функции автоматического нанесения размера от точки к точке?

 

     boolstatus = swDoc.Extension.SelectByID2("", "EXTSKETCHPOINT", 0.083367884232203898, -0.017832911539664553, 0.080000178465417654, false, 0, null, 0);
     boolstatus = swDoc.Extension.SelectByID2("", "EXTSKETCHPOINT", 0.083367884232203898, -0.017832911539664553, 0.0099998215345823687, true, 0, null, 0);
     DisplayDimension myDisplayDim = null;
            myDisplayDim = ((DisplayDimension)(swDoc.AddDimension2(0.033042450357179565, 0.03939650122615436, 0.013347520751937264)));

Поделиться сообщением


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

ID: 13   Опубликовано: (изменено)

23 минуты назад, mrazzzb сказал:

получить имя вставленного эскиза

http://help.solidworks.com/2011/English/api/sldworksapi/Rename_Active_Sketch_Example_VB.htm

 

5 минут назад, mrazzzb сказал:

как получить само число (расстояние)

А вы считает что до вставки размера само "расстояние" не существовало? :smile:

Для размеров: 
GetDimension2, потом GetSystemValue3

@mrazzzb  намёк: когда все вопросы валятся в кучу - это блог ... или твиттер. Этот форум ни то ни другое.

Изменено пользователем streamdown
1 пользователю понравилось это

Поделиться сообщением


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

ID: 14   Опубликовано: (изменено)

41 минуту назад, streamdown сказал:

А вы считает что до вставки размера само "расстояние" не существовало? :smile:

 

Спасибо большое за подсказку, использовал старый добрый GetLength(); :smile:

double a;

a =  swSketchSeg[1].GetLength() * 1000;

41 минуту назад, streamdown сказал:

 

@mrazzzb  намёк: когда все вопросы валятся в кучу - это блог ... или твиттер. Этот форум ни то ни другое.

Есть просто тема SolidWorks Api, где очень много страниц и много разных вопросов, поэтому и решил что так можно)) 

Изменено пользователем mrazzzb

Поделиться сообщением


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

Спасибо большое за подсказку

Вооот))) вот для этого и нужен форум)))) Сами всё додумали. А ща ещё удивлю - есть еще IMeasure

 

20 минут назад, mrazzzb сказал:

где очень много страниц и много разных вопросов,

Ну так вы то же самое делаете. Так делайте в одном месте.

1 пользователю понравилось это

Поделиться сообщением


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

ID: 16   Опубликовано: (изменено)

4 минуты назад, streamdown сказал:

 А ща ещё удивлю - есть еще IMeasure

Где же Вы раньше были)) Спасибо буду знать!!

 

4 минуты назад, streamdown сказал:

Ну так вы то же самое делаете. Так делайте в одном месте.

Хорошо, понял)

 

Изменено пользователем mrazzzb

Поделиться сообщением


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

Создайте аккаунт или войдите для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

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

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



  • Реклама

  • Сообщения

    • Mrt23
      цель-хорошая, реализация пока-не лучшая...   посчиталось? пол миллиона элементов почти. ну минус 100 тысяч риджитов.
    • Пожарник
      Добрый день! Какой блок питания на таком железе?
    • ded-
      Так и без учебника понятно- 0.209х 3.14=0.91м. 0.1м это 1/9оборота в секунду. Если у вас 1500 об/ м (25об/с). Т.е передаточное редуктора д.б. 225. 6,4Нм перемножаем на 225 и получаем 1440Нм. Понятно  это без КПД привода.
    • metall
      Я пытаюсь провернуть деформируемую чашу с некоторым моментом с учетом того, что жесткое тело закреплено полностью. Суть - посмотреть что будет с чашой при n-ом моменте. Затем добавлю вращательную степень свободы жесткому ободу и буду смотреть что произойдет после *дцати циклов вращений.  Если встретили неточности в построении задачи - укажите пожалуйста :)
    • Mrt23
      совсем нет. из того, что я вижу-этого не должно быть. вы пытаетесь провернуть через жествое тело податливое, с контактами... скиньте потом, что у Вас получилось-мультик. очень интересно. и вращение в радианах, а не в градусах задается.)
    • Ar7777777Cam
      мне тоже пожалуйста для Haas st 30 ssy mastercam x7 x8   stepanyan.ars@yandex.ru
    • Berformert
      Спасибо за корректировку кода) 1. Да, я тупанул, извиняюсь. Граничные условия я задавал следующим образом: отметил точками границы линии, потом задал нулевое перемещение и применил команду "для всех узлов данной линии". Соответственно вопрос тогда другой: как отличить местоположения этих точек в самом коде? Как сказал vik_q они выбирались с экрана, но ведь программа воспринимает текст (если я сохранял в тхт, а потом открыл этот файл тхт). Значит как-то программа воспринимает, что это разные точки? Как в тексте это отобразить? 2. Я начал сравнивать наши коды на ошибку (P.S. Ваш код открылся и решился без проблем) И у меня вопросы по сравнению: А. "MPTEMP,1,0      !! just one temperature point" Я запустил программу С этой строкой и БЕЗ. Видимо, это и есть моё пропущенное звено, почему программа не посчитала мне. Но у меня же нет температурного анализа и нет даже параметра альфа. Это обязательно нужно для задания КЭ PLANE182? Чтобы просто оно было чисто условно? Б. Я понял, что у меня много лишнего текста, связанного с включением нумерацией линий, точек и т.д, которое компьютеру в принципе не нужно вообще. В. Ваши 2 строчки кода aesize,all,0.5,
      amesh,all Перерыли всё, что я делал)) Но как я понял, Ваш код - это именно код написанный вручную, а не копированием команды через GUI. Эти 2 строки генерируются как-то через GUI? Или в Ансис есть некоторые APDL команды, которые невозможно сделать через GUI (как выбор системы единиц, например)? Сетку я задавал следующим образом: разбивал по 0.5 каждую сторону области и задал разбиение площади. Г. *SET,NCVG,NODE(0,5,0)
      PCONV,1,S,X,NCVG На сколько сильно необходим этот параметр в решении?  3. Как я понял в итоге, из GUI можно получить APDL коды, по которым потом можно решить эту же задачу, но для лучшего визуального представления кода и хода решения, они нуждаются в большой корректировке кода, чтобы были более удобоусвояемые? То, что я делал за 10 строк кода вы делаете за 2.
    • vasillevich68
      @quixiote , у нас маневровая лебедка, стальным тросом d30, таскает до пяти груженых вагонов. Может стоит отказаться от цепи? Цепь дороже троса будет, да и 12В долго не протянет.
    • metall
      Юмор?)) Рассчет пошёл, вроде. :)
    • Mrt23
      пошел расчет? очень странно, ну очень странно...