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

UGOpen, импорт изображения в ячейку таблицы


Luriya

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

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

Вот такой код:

                       ...

                       theUfSession.Tabnot.AskNthColumn(tableNote, jj, colTag)
                        theUfSession.Tabnot.AskCellAtRowCol(rowTag, colTag, cellTag)
                        theUfSession.Tabnot.AskCellText(cellTag, cellText)
                        If Len(cellText) > 0 Then
                            strWork = DellRef(cellText)
                            If Len(strWork) > 0 Then
                                theUfSession.Tabnot.SetCellText(cellTag, strWork)
                            End If
                            If Left(cellText, 8) = "<!IMAGE=" Then

                                theUfSession.Tabnot.SetCellText(cellTag, "<!IMAGE = ID43 * 0 >")       ' Это не работает

                            End If

                        ...

функции .Tabnot. импорт Image не нашла

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


UnPinned posts

"в ячейку таблицы" ...

Какой таблицы ? (Exel?) о каком ПО/системе речь NX/TC ?

или .... кто-нибудь и так понял ?

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

Таблица в NX , в ону из ячеек таблицы надо программно вставить Логотип (.png). В интерактиве в NX12 вставляется командой Импорт -> Изображение.

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

О какой "Таблица в NX" речь ?

Есть команда "Таблица" из модуля черчение ....

Есть возможность работать с таблицей Excel, которая хранится внутри *.prt файла.

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

Таблица в NX , в ону из ячеек таблицы надо программно вставить Логотип (.png). В интерактиве в NX12 вставляется командой Импорт -> Изображение.

Ну ты знаешь - я не программист :)

Но может помогу с идеей?

А если включить запись макроса при вставке рисунка? Насколько помню такое было в НХ с времен еще ЮГ.

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

Ну ты знаешь - я не программист :)

Но может помогу с идеей?

А если включить запись макроса при вставке рисунка? Насколько помню такое было в НХ с времен еще ЮГ.

Да!!! Я это сразу и хотела сделать, я часто пользуюсь записью Макроса, но именно эта команда не записывается, напротив нее нет зеленого кружочка, значит она не пишется в макрос

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

using System;
using NXOpen;

public class NXJournal
{
  public static void Main(string[] args)
  {
    NXOpen.Session theSession = NXOpen.Session.GetSession();
    NXOpen.Part workPart = theSession.Parts.Work;
    NXOpen.Part displayPart = theSession.Parts.Display;
    //   Меню: Вставить->Изображение...
    // ----------------------------------------------
    NXOpen.Session.UndoMarkId markId1;
    markId1 = theSession.SetUndoMark(NXOpen.Session.MarkVisibility.Visible, "Начало");
    
    NXOpen.Annotations.DraftingImage nullNXOpen_Annotations_DraftingImage = null;
    NXOpen.Annotations.DraftingImageBuilder draftingImageBuilder1;
    draftingImageBuilder1 = workPart.Annotations.DraftingImages.CreateDraftingImageBuilder(nullNXOpen_Annotations_DraftingImage);
    
    NXOpen.Point3d coordinates1 = new NXOpen.Point3d(0.0, 0.0, 0.0);
    NXOpen.Point point1;
    point1 = workPart.Points.CreatePoint(coordinates1);
    
    theSession.SetUndoMarkName(markId1, "Диалоговое окно Вставить изображение");
    
    NXOpen.Point3d coordinates2 = new NXOpen.Point3d(-16.97142857142855, -16.97142857142855, 0.0);
    NXOpen.Point point2;
    point2 = workPart.Points.CreatePoint(coordinates2);
    
    workPart.Points.DeletePoint(point1);
    
    NXOpen.Point3d coordinates3 = new NXOpen.Point3d(0.0, 0.0, 0.0);
    NXOpen.Point point3;
    point3 = workPart.Points.CreatePoint(coordinates3);
    
    workPart.Points.DeletePoint(point2);
    
    draftingImageBuilder1.Image.ImageFile = "C:\\Users\\v\\Pictures\\стр622-1.jpg";
    
    draftingImageBuilder1.Image.ColorMode = NXOpen.Display.ImageBaseBuilder.ImageColorModes.Rgb;
    
    draftingImageBuilder1.Image.TransparencyColorOption = NXOpen.Display.ImageBaseBuilder.TransparencyColorFrom.None;
    
    double[] transparencycolor1 = new double[3];
    transparencycolor1[0] = 1.0;
    transparencycolor1[1] = 1.0;
    transparencycolor1[2] = 1.0;
    draftingImageBuilder1.Image.SetTransparentPixelColor(transparencycolor1);
    
    draftingImageBuilder1.Image.TransparencyColorOption = NXOpen.Display.ImageBaseBuilder.TransparencyColorFrom.None;
    
    draftingImageBuilder1.Image.ColorMode = NXOpen.Display.ImageBaseBuilder.ImageColorModes.Rgb;
    
    NXOpen.Point3d point1_1 = new NXOpen.Point3d(0.0, 0.0, 0.0);
    NXOpen.Point3d point2_1 = new NXOpen.Point3d(327.15199999999999, 0.0, 0.0);
    NXOpen.Point3d point3_1 = new NXOpen.Point3d(327.15199999999999, 81.787999999999997, 0.0);
    NXOpen.Point3d point4_1 = new NXOpen.Point3d(0.0, 81.787999999999997, 0.0);
    draftingImageBuilder1.Image.SetCornerPoints(point1_1, point2_1, point3_1, point4_1);
    
    NXOpen.Point3d point1_2 = new NXOpen.Point3d(0.0, 0.0, 0.0);
    NXOpen.Point3d point2_2 = new NXOpen.Point3d(327.15199999999999, 0.0, 0.0);
    NXOpen.Point3d point3_2 = new NXOpen.Point3d(327.15199999999999, 81.787999999999997, 0.0);
    NXOpen.Point3d point4_2 = new NXOpen.Point3d(0.0, 81.787999999999997, 0.0);
    draftingImageBuilder1.Image.SetCornerPoints(point1_2, point2_2, point3_2, point4_2);
    
    NXOpen.Point3d insertpoint1 = new NXOpen.Point3d(0.0, 0.0, 0.0);
    draftingImageBuilder1.Image.InsertionPointLocation = insertpoint1;
    
    draftingImageBuilder1.Image.Width.SetFormula("327.152");
    
    draftingImageBuilder1.Image.Height.SetFormula("81.788");
    
    NXOpen.Point3d coordinates4 = new NXOpen.Point3d(0.0, 0.0, 0.0);
    NXOpen.Point point4;
    point4 = workPart.Points.CreatePoint(coordinates4);
    
    workPart.Points.DeletePoint(point3);
    
    NXOpen.Point3d scaleAboutPoint1 = new NXOpen.Point3d(8.6625000000000458, 0.88392857142857828, 0.0);
    NXOpen.Point3d viewCenter1 = new NXOpen.Point3d(-8.6625000000000458, -0.88392857142857828, 0.0);
    workPart.Views.WorkView.ZoomAboutPoint(0.80000000000000004, scaleAboutPoint1, viewCenter1);
    
    NXOpen.Point3d scaleAboutPoint2 = new NXOpen.Point3d(10.828125000000021, 1.1049107142856551, 0.0);
    NXOpen.Point3d viewCenter2 = new NXOpen.Point3d(-10.828125000000021, -1.1049107142857562, 0.0);
    workPart.Views.WorkView.ZoomAboutPoint(0.80000000000000004, scaleAboutPoint2, viewCenter2);
    
    NXOpen.Point3d scaleAboutPoint3 = new NXOpen.Point3d(13.535156250000023, 1.381138392857153, 0.0);
    NXOpen.Point3d viewCenter3 = new NXOpen.Point3d(-13.535156250000023, -1.3811383928571952, 0.0);
    workPart.Views.WorkView.ZoomAboutPoint(0.80000000000000004, scaleAboutPoint3, viewCenter3);
    
    NXOpen.Point3d scaleAboutPoint4 = new NXOpen.Point3d(17.609514508928637, 1.7264229910713886, 0.0);
    NXOpen.Point3d viewCenter4 = new NXOpen.Point3d(-17.609514508928637, -1.7264229910714939, 0.0);
    workPart.Views.WorkView.ZoomAboutPoint(0.80000000000000004, scaleAboutPoint4, viewCenter4);
    
    NXOpen.Point3d scaleAboutPoint5 = new NXOpen.Point3d(-23.738316127232117, -90.205601283482153, 0.0);
    NXOpen.Point3d viewCenter5 = new NXOpen.Point3d(23.738316127232117, 90.205601283481954, 0.0);
    workPart.Views.WorkView.ZoomAboutPoint(1.25, scaleAboutPoint5, viewCenter5);
    
    NXOpen.Point3d scaleAboutPoint6 = new NXOpen.Point3d(-18.990652901785644, -74.9267578125, 0.0);
    NXOpen.Point3d viewCenter6 = new NXOpen.Point3d(18.990652901785644, 74.926757812499901, 0.0);
    workPart.Views.WorkView.ZoomAboutPoint(1.25, scaleAboutPoint6, viewCenter6);
    
    NXOpen.Point3d scaleAboutPoint7 = new NXOpen.Point3d(-15.192522321428637, -63.808593750000021, 0.0);
    NXOpen.Point3d viewCenter7 = new NXOpen.Point3d(15.192522321428552, 63.808593749999893, 0.0);
    workPart.Views.WorkView.ZoomAboutPoint(1.25, scaleAboutPoint7, viewCenter7);
    
    NXOpen.Session.UndoMarkId markId2;
    markId2 = theSession.SetUndoMark(NXOpen.Session.MarkVisibility.Invisible, "Вставить изображение");
    
    theSession.DeleteUndoMark(markId2, null);
    
    NXOpen.Session.UndoMarkId markId3;
    markId3 = theSession.SetUndoMark(NXOpen.Session.MarkVisibility.Invisible, "Вставить изображение");
    
    NXOpen.NXObject nXObject1;
    nXObject1 = draftingImageBuilder1.Commit();
    
    theSession.DeleteUndoMark(markId3, null);
    
    theSession.SetUndoMarkName(markId1, "Вставить изображение");
    
    draftingImageBuilder1.Destroy();
    
    // ----------------------------------------------
    //   Меню: Инструменты->Журнал->Остановка записи
    // ----------------------------------------------
    
  }
  public static int GetUnloadOption(string dummy) { return (int)NXOpen.Session.LibraryUnloadOption.Immediately; }
}

Это то что у меня получилось при записи макроса. 

NX 1980

макрос впоследствии отработал нормально.

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

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

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

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

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

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

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

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

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

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

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




×
×
  • Создать...