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

фаска в NX OPEN API


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

Помогите сделать фаску

theProgram = new Program();

Tag UFPart1;

string name1 = "model_k";

int units1 = 1;

theUfSession.Part.New(name1, units1, out UFPart1);

int D = 25;

int d = 9;

int b = 14;

int T = 10;

int t = 7;

int F = 1;

int L = T - t;

double[] l1_endpt1 = { 0, d/2, 0.00 };

double[] l1_endpt2 = { L, d/2, 0.00 };

double[] l2_endpt1 = { L, d/2, 0.00 };

double[] l2_endpt2 = { L, b/2, 0.00 };

double[] l3_endpt1 = { L, b/2, 0.00 };

double[] l3_endpt2 = { T, b/2, 0.00 };

double[] l4_endpt1 = { T, b/2, 0.00 };

double[] l4_endpt2 = { T, D/2, 0.00 };

double[] l5_endpt1 = { T, D/2, 0.00 };

double[] l5_endpt2 = { 0, D/2, 0.00 };

double[] l6_endpt1 = { 0, D/2, 0.00 };

double[] l6_endpt2 = { 0, d/2, 0.00 };

UFCurve.Line line1 = new UFCurve.Line();

UFCurve.Line line2 = new UFCurve.Line();

UFCurve.Line line3 = new UFCurve.Line();

UFCurve.Line line4 = new UFCurve.Line();

UFCurve.Line line5 = new UFCurve.Line();

UFCurve.Line line6 = new UFCurve.Line();

line1.start_point = new double[3];

line1.start_point[0] = l1_endpt1[0];

line1.start_point[1] = l1_endpt1[1];

line1.start_point[2] = l1_endpt1[2];

line1.end_point = new double[3];

line1.end_point[0] = l1_endpt2[0];

line1.end_point[1] = l1_endpt2[1];

line1.end_point[2] = l1_endpt2[2];

line2.start_point = new double[3];

line2.start_point[0] = l2_endpt1[0];

line2.start_point[1] = l2_endpt1[1];

line2.start_point[2] = l2_endpt1[2];

line2.end_point = new double[3];

line2.end_point[0] = l2_endpt2[0];

line2.end_point[1] = l2_endpt2[1];

line2.end_point[2] = l2_endpt2[2];

line3.start_point = new double[3];

line3.start_point[0] = l3_endpt1[0];

line3.start_point[1] = l3_endpt1[1];

line3.start_point[2] = l3_endpt1[2];

line3.end_point = new double[3];

line3.end_point[0] = l3_endpt2[0];

line3.end_point[1] = l3_endpt2[1];

line3.end_point[2] = l3_endpt2[2];

line4.start_point = new double[3];

line4.start_point[0] = l4_endpt1[0];

line4.start_point[1] = l4_endpt1[1];

line4.start_point[2] = l4_endpt1[2];

line4.end_point = new double[3];

line4.end_point[0] = l4_endpt2[0];

line4.end_point[1] = l4_endpt2[1];

line4.end_point[2] = l4_endpt2[2];

line5.start_point = new double[3];

line5.start_point[0] = l5_endpt1[0];

line5.start_point[1] = l5_endpt1[1];

line5.start_point[2] = l5_endpt1[2];

line5.end_point = new double[3];

line5.end_point[0] = l5_endpt2[0];

line5.end_point[1] = l5_endpt2[1];

line5.end_point[2] = l5_endpt2[2];

line6.start_point = new double[3];

line6.start_point[0] = l6_endpt1[0];

line6.start_point[1] = l6_endpt1[1];

line6.start_point[2] = l6_endpt1[2];

line6.end_point = new double[3];

line6.end_point[0] = l6_endpt2[0];

line6.end_point[1] = l6_endpt2[1];

line6.end_point[2] = l6_endpt2[2];

Tag[] objarray1 = new Tag[7];

theUfSession.Curve.CreateLine(ref line1, out objarray1[0]);

theUfSession.Curve.CreateLine(ref line2, out objarray1[1]);

theUfSession.Curve.CreateLine(ref line3, out objarray1[2]);

theUfSession.Curve.CreateLine(ref line4, out objarray1[3]);

theUfSession.Curve.CreateLine(ref line5, out objarray1[4]);

theUfSession.Curve.CreateLine(ref line6, out objarray1[5]);

double[] ref_pt1 = new double[3];

ref_pt1[0] = 0.00;

ref_pt1[1] = 0.00;

ref_pt1[2] = 0.00;

double[] direction1 = { 1.00, 0.00, 0.00 };

string[] limit1 = { "0", "360" };

Tag[] features1;

theUfSession.Modl.CreateRevolved(objarray1, limit1, ref_pt1, direction1, FeatureSigns.Nullsign, out features1);

theProgram.Dispose();

}

catch (NXOpen.NXException ex)

{

// ---- Enter your exception handling code here -----

}

return retValue;

}

post-31669-1306076288_thumb.jpg

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


Фаску не обязательно делать операцией "фаска" в твоём случае проще было бы её заменить простой линией в эскизе, которая после вращения стала бы фаской. Но если по заданию необходимо создание фаски именно "фаской", то приведу код:

Tag feat1 = features1[0];

Tag cyl_tag, obj_id_camf, blend1;

Tag[] Edge_array_cyl, list1, list2;

int ecount;

theUFSession.Modl.AskFeatBody(feat1, out cyl_tag);

theUFSession.Modl.AskBodyEdges(cyl_tag, out

Edge_array_cyl);

theUFSession.Modl.AskListCount(Edge_array_cyl, out

ecount);

ArrayList arr_list1 = new ArrayList();

ArrayList arr_list2 = new ArrayList();

for (int ii = 0; ii < ecount; ii++)

{

Tag edge;

theUFSession.Modl.AskListItem(Edge_array_cyl, ii,

out edge);

if (ii == 0)

{

arr_list1.Add(edge);

} }

list1 = (Tag[])arr_list1.ToArray(typeof(Tag));

string offset1 = FA; //одна длина фаски

string offset2 = FA;//другая

string ang = "45";

theUFSession.Modl.CreateChamfer(3, offset1, offset2, ang,

list1, out obj_id_camf);

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

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

help!

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

А вот уже место фаски я лично делал простым перебором. Тоже не не понял ещё, как определить именно нужную грань.

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • gudstartup
      в некоторых случаях проще сделать геометрическую компенсацию чем выравнивать например поворотный стол прикрепленный к станине весом в полтонны в плоскости zy или xz .  замена на компенсацию бывает еще и по временным и финансовым обстоятельствам и это никак нельзя не учитывать.
    • lem_on
      Я бы с удовольствием посмотрел как без параметрирования башка на интегрексе выставляется. Но думаю ответ был бы, станок неправильно спроектирован и из все надо на металлолом и  переплавить в сковородки. Да и вообще где только параметрами геометрию не выходишь.    "Извиняюсь заранее что подлизнул"  Тема ведь про смешное и клоун даже есть )))
    • USSR_Nic
      Дык посмотреть то я посмотрел. Я не понимаю как тулбокс перестроить. Как разделить наименование в тулбоксе  на Наименование ВП и Обозначение ДНП... В этом и состоит проблема.... Хоть в макросе их дербань....
    • gudstartup
      @Killerchik думаю хватит цитат про то что только механически может быть выравнена геометрия станка. советую выровнять направляющуб где на 5см 1мм отклонения от прямолинейности или она как сам@Guhl пишет винтом. 
    • Jesse
      да, так и делайте. Мне тоже кажется это самый оптимальный вариант)
    • Amiandar
      Народ, а подскажите, почему не получается редактировать (1 раз только получилось спустя 100500 попыток, поэтому я не уловил причину) вот эти значения в момент нанесения линии в эскизе?   
    • Alex1986
      Коллеги, подскажите, пожалуйста, как в имеющемся Компас 3D v20 в как-то сопряженных деталях сделать в одной детали отверстие, а во второй детали отверстие завязать на центр отверстия первой детали, чтоб при перемещении первого и перестроении, автоматически перестраивалось отверстие во второй?
    • Cas
      Это поможет в изготовлении? Вы в этом уверены? Я думаю, что Вы сильно ошибаетесь. Я бы с Вами согласился - если бы Вы мне написали - что вот - фирма по производству отличных мелкомодульных шестеренок. Но Ваши чертежи они понять не могут. Ладно, даже могут, но им дико неприятно (прям фу), потому что там действительно есть некорректная простановка базы, неправильные геометрические допуски и т.д. НО... ситуация то не такая. Чертеж поправить - не сложно, но от этого производитель не найдется, к сожалению.  
    • Shoker
      Конструктора поменяйте на нормального, может будет делаться то, что надо
    • Liga
      Разобрался, реакции можно вытянуть и из МКЭ расчета, но только после правильного закрепления. Сверху - снизу Спс за наводку    
×
×
  • Создать...