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

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


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

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

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

 

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


6 часов назад, streamdown сказал:

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

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

swComponent = (Component2)swAssemblyDoc.AddComponent5(strCompModelname, (int)swAddComponentConfigOptions_e.swAddComponentConfigOptions_CurrentSelectedConfig, "", false, "", /*Вместо этих координат*/-1, -1, -1);
Изменено пользователем mrazzzb
Ссылка на сообщение
Поделиться на других сайтах
20 часов назад, mrazzzb сказал:

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

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

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

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

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

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

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

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

 

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

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

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

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

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

@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) и туда вставляет компонент с координатами.

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

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

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

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

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

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

добавляю деталь программно по этому примеру 

http://help.solidworks.com/2013/english/api/sldworksapi/add_component_and_mate_example_csharp.htm

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

Скажите пожалуйста как получить имя вставленного эскиза? (Трехмерный эскиз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)));
Ссылка на сообщение
Поделиться на других сайтах
23 минуты назад, mrazzzb сказал:

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

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

 

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

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

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

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

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

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

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

 

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

double a;

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

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

 

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

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

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

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

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

 

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

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

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

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

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

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

 

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • ДОБРЯК
      Для того, чтобы получить правильные высшие) формы при виртуальном эксперименте, нужно сделать грамотную КЭ модель. От разговора на эту тему вы постоянно уклоняетесь.  То нет компьютера под рукой, сделать простейший тест, то теряете интерес. :=) Сходимости энергии деформации при расчетах статики, недостаточно для точного определения высших собственных форм и частот.  Для того, чтобы грамотно использовать метод конечных элементов, нужно сделать много-много тестов в статике, динамике и ... Одной кнопки и двух конечных элементов в 3Д программе недостаточно для определения высших собственных форм...  У вас в качестве инструмента всего два конечных элемента, шести узловая несовместная оболочка Тимошенко и десяти узловой тетраэдр. И еще контакты при решении задачи на собственные числа. Вам ли говорить про правильность определения высших собственных форм для сложных изделий... :=)    
    • vad0000
      Покажите схему с разрешением на движение
    • vad0000
      Вход, а не выход Вытащить Аналоговый вход и все, как будто туда ничего не подключено И если мы подключим сигнал к энкодеру оси Х, то он стнтет одинаковый с аналоговым входом, который не подключен?
    • Snake 60
      @waze4534  Посмотрите вверх и прочитайте текст на красной полоске...
    • kkk
      Я так понимаю, что предупреждение про "касательные" не просто так выскакивает. Если скруглить прямую стыковку отрезков эскиза (минимальным радиусом) то все работает даже без объединенной кривой, достаточно эскиза.
    • karlf
      Подскажите пожалуйста, может кто сталкивался. Станок DMU-50 на стойке TNC 530, перестал определяться ключ доступа. Сам ключ вроде работает, если переключать на нём режимы, то в шкафу на соответствующих блоках лампочки тоже переключаются. Но изначально был уровень доступа 4, а теперь уровни доступа не активны. Ключ только один, запасных нет. Есть какой-то старый бэкап, пробовал его накатить, но какой-то он непонятный - станок грузится, но почти в конце загрузки выдаёт какую-то ошибку по параметрам. Может кто знает в каком из разделов и в какой папке искать установленные драйверы ключа?
    • YuriySt54
      В данной конструкции можно сразу одним телом делать и обрезать. Но меня интересовало, можно ли сразу при построении массива ограничить лишнее.
    • Ветерок
      Сделать основание одним телом, массив другим телом. Тело массива обрезать как надо, потом объединить тела.
    • YuriySt54
      Можно ли при построении массива лишнее отсечь, как к примеру отсечено по длинной стороне. Делал начальный элемент бобышкой по траектории с выбранной функцией "выровнять с торцевыми поверхностями". Можно ли так сделать при построении массива? Или отдельно потом обрезать лишнее только?
    • waze4534
      Необходимо рассчитать предельную нагрузку на подвешенную емкость. Как провести анализ не ограничив геометрию емкости? 
×
×
  • Создать...