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

Координаты детали(объекта) 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 пользователей

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




  • Сообщения

    • Bot
      Оригинал: Roopinder Tara. Watch this space: Here come manufacturable generative designs Такие кронштейны демонстрируют облегчение конструкции с помощью топологии. У этого кронштейна острые края и гладкие поверхности, это означает, что деталь еще можно подвергнуть машинной обработке, чтобы сделать ее максимально легкой Мы уже знакомы с Майклом Богомольным — мы встречались с ним на его предыдущем предприятии ParaMatters, которое было продано Carbon, компании по производству 3D-принтеров, в августе 2022 года. После этого он собрал свою команду ParaMatters (шестеро из них имеют докторскую степень) и получил инвестиции в размере 2,5 млн долларов для запуска InfinitForm. Эта компания вполне может создать первое генеративное программное обеспечение, которое проектирует подходящие для использования и производства детали. Крупные поставщики САПР могут заявить, что их программное обеспечение для генеративного проектирования имеет возможности для создания [...] View the full article
    • lux59
      построить дугами барашку я пробовал, не то слегка, он в списке выдаст количество сегментов, да норм сделаю покажу, что вышло, правда пришлось делать сборкой не единой деталью, в общем я понял как это работает, Спасибо за помощь!
    • lem_on
      Ага, особенно некоторых бестолочей со своим пониманием реальности.  По типу, я скачал программу, я так вижу, я пишу книгу. 
    • malvi.dp
      Так в чем проблема создать кривую и протянуть профиль? Единственная трудность это кривую сделать из дуг и отрезков, а не сплайном. Если же не использовать инструментарий сварных конструкций, то можно и сплайн использовать в качестве направляющей.  
    • Alexey0336
      Добрый день. Как то фигурировал тут вопрос с точкой в названии файла. У меня проблема, не могу захватить модель, пишет, что с этим символом нельзя. Обойти никак нельзя получается?
    • malvi.dp
      У вас там скорее всего скрыты размеры. Перетяните их дальше от штриховки, чтоб не пересекали.
    • Snake 60
      @Бестолковый С названием топика не ошиблись? Человек спрашивает: ' VBA ' 1. Open a document in SOLIDWORKS. ' 2. Run the macro below to set inch units with '     a fractional base of 16 and no rounding. Dim swApp As SldWorks.SldWorks Dim Part As SldWorks.ModelDoc2 Option Explicit Sub main()    Set swApp = Application.SldWorks    Set Part = swApp.ActiveDoc    Part.SetUnits swINCHES, swFRACTION, 16, 0, False End Sub   Код взят отсюда: https://help.solidworks.com/2019/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~setunits.html Вот еще описание всех методов: https://help.solidworks.com/2021/English/api/swconst/DP_Units.htm Ну и на вкусное, статья от Артема (см. через ВПН) https://www.google.com/url?sa=t&source=web&rct=j&opi=89978449&url=https://www.codestack.net/solidworks-api/options/document/set-units/&ved=2ahUKEwjgpL-apN6GAxU7HxAIHYO0D2IQFnoECBAQAQ&usg=AOvVaw15xq49gocoVQ5BzEA31qGf
    • Shvg
      IModelDocExtension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitSystem, swUserPreferenceOption_e.swDetailingNoOptionSpecified, swUnitSystem_e.<Value>), где swUnitSystem_e.<Value> перечисление swUnitSystem_CGS           1 = Centimeter, gram, second  swUnitSystem_Custom        4 = Lets you set length units, density units, and force  swUnitSystem_IPS           3 = Inch, pound, second  swUnitSystem_MKS           2 = Meter, kilogram, second  swUnitSystem_MMGS          5 = Millimeter, gram, second   
    • Ветерок
      Вопрос про "включение RGK". Если в модели какие-то функции сделаны с использованием RGK, эта модель будет работоспособной на другом компе, где RGK "не включен"? И вообще не понятно, получается система использует два разных ядра одновременно? Или включая RGK, автоматически выключается Прасолид? А обратно переключиться можно? Если можно итак, и так, и туда, и обратно, тогда не понятно зачем вообще это включение-выключение.
    • TVM
      Так на скорую руку строились. Ясно что такое воспроизвести в живую затруднительно. 
×
×
  • Создать...