Jump to content

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


Luriya

Recommended Posts

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 не нашла

Link to post
Share on other sites


UnPinned posts

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

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

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

Link to post
Share on other sites
Luriya

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

  • Нравится 1
Link to post
Share on other sites

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

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

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

Link to post
Share on other sites
valeo-ua
15 часов назад, Luriya сказал:

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

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

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

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

Link to post
Share on other sites
Luriya
7 часов назад, valeo-ua сказал:

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

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

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

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

  • Нравится 1
Link to post
Share on other sites
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

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

Edited by valeo-ua
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.



×
×
  • Create New...