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

фаска в 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 пользователей

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




  • Сообщения

    • vasillevich68
      Передайте, что ни чего страшного не будет. Максимум, что может произойти, так это, в один прекрасный момент вал лопнет, и датчики вибрации дадут команду на остановку насоса   
    • Guhl
      Но ведь токовый сигнал надо  для начала в цифровой преобразовать Поэтому полный цикл преобразования не может быть быстрее аналоговой части У тиристорных приводов частота отклика не более 30Гц, но это не из-за ОУ, а из-за принципа работы приводов Да у обычного 741 частота 1Мгц Насколько это быстрее 32нс?     @gudstartup Аналоговая цепь всегда быстрее цифровой Так и живем Честно говоря я обескуражен Ведь тут же даже житейская логика говорит о том, что цифровая цепь привода не может быть быстрее аналоговой, просто потому что аналоговая является подсистемой цифровой цепи   Аналоговый вычислитель всегда выиграет по скорости у цифрового аналога Точность может быть ниже, но скорость всегда выше Сравните скорость работы сумматора на ОУ и на процессоре И оставьте свои ужимки, противно смотреть Или вы продолжатель дела "короля саркастических ужимок" (с)?
    • gudstartup
      с люфтами эта функция никак не борется она их пропускает гася резонанс ни насколько обработка контура тока длится 32нс попробуйте это сделать на ваших оу. @Guhl отдыхайте вы явно перегрелись у вас аналоговый процессор
    • Guhl
      Вы хотя бы в курсе насколько быстрее аналоговая цепь, чем цифровая?  
    • gudstartup
      вы хотя бы в курсе сколько длится в сигнальном поцессоре servo фанук обработка контура тока и сколько это было на ваших допотопных приводах и какие скорости и точность контура сейчас достижимы ,благодаря этому. добейтесь этого на ваших аналоговых схемах с оу и я сниму перед вами шляпу. полностью некорректное сравнение.
    • Ветерок
      Можно заменить гнутый швеллер на прямоугольную тонкостенную трубу. Если не стоит задача всё гнуть самостоятельно.
    • Guhl
      Большие люфты вызывают колебания. Причем эти люфты возникают не только при смене направления движения, а при других условиях. Путем борьбы с люфтами, борятся с колебаниями Для этого и есть dual position feedback  Ну вот видите, уже лучше. Борьба с люфтами - борьба с колебаниями Так для чего нужен dual position feedback? Назовите вы ее хоть чертом лысым, но она как боролась с люфтами, так и борется 
    • gudstartup
      а вам для чего писать то вы все равно читать не можете. для кого я   приводил описание функции и раздел к которым она отнесена уважаемыми вами японцами.   потому что он приводит к вибрациям!!!! я от вас просто офигиваю ну нельзя же так упорствовать в очевидном!!
    • Guhl
      А зачем же они упоминают люфт? 
    • gudstartup
      а где ваши аргументы? я вам приводил и формулы и выдержки из текста но вы адепт собственных измышлений и упорно называете функцию подавления резонанса функцией  компенсации люфта. контуры тока были у всех  без него вы не сможете мотором управлять а вот скорости другое дело. как всегда все путаете.
×
×
  • Создать...