Скопировать размерный стиль между чертежами

Olga94
отредактировано November 2024 Раздел: API

Здравствуйте Уважаемые специалисты NanoCAD!

Код ниже (excel-vba) позволяет скопировать все размерные стили из определенного чертежа в текущий чертеж:

Public Sub ImportDimstyles()
Dim oAxDbDoc As New AxDbDocument
oAxDbDoc.Open "c:\DimStyles.dwg"
Dim oObj() As Object
Dim oDs As AcadDimStyle
Dim i As Integer
For i = 0 To oAxDbDoc.DimStyles.Count - 1
ReDim Preserve oObj(i)
Set oObj(i) = oAxDbDoc.DimStyles(i)
Next
oAxDbDoc.CopyObjects oObj, ThisDrawing.Database.DimStyles
End Sub

Подскажите пожалуйста, как его преобразовать на языке C# для NanoCAD ?

Тэги темы:

Ответы

  • Хотя, получилось из vbs

  • Ты зря пренебрегаешь этим ресурсом

    https://adn-cis.org/kopirovanie-razmernyix-stilej-mezhdu-chertezhami-pri-pomoshhi-c.html

  • Olga94
    отредактировано November 2024

    Я его смотрела, но выдает ошибку "Ошибка во время выполнения команды: 'eNotImplementedYet'" на строке "ObjectIdCollection dimStyles = db.GetDimRecentStyleList();", не знаю как исправить..

    Хотелось бы еще заменять не все размерные стили, а конкретный по имени.

  • Olga94
    отредактировано December 2024

    получилось

  • Olga94
    отредактировано December 2024

    Database dbDIM = new Database(false, false);
    dbDIM.ReadDwgFile("\..*.dwt", System.IO.FileShare.Read, true, "");
    ObjectIdCollection Ids = new ObjectIdCollection();
    using (var tran = dbDIM.TransactionManager.StartTransaction())
    {
    var dt = (DimStyleTable)tran.GetObject(dbDIM.DimStyleTableId, OpenMode.ForRead);
    foreach (ObjectId id in dt)
    {
    var ds = (DimStyleTableRecord)tran.GetObject(id, OpenMode.ForRead);
    if (ds.Name.Contains("имя стиля"))
    {
    Ids.Add(ds.ObjectId);
    }
    }
    IdMapping iMap = new IdMapping();
    db.WblockCloneObjects(Ids, db.DimStyleTableId, iMap, DuplicateRecordCloning.Replace, false);

    tran.Commit();
    }

  • Че-т мне кажется, что тут путаница с базами чертежей. Завтра, если не забуду, попробую что-нибудь поискать. Хотя (откровенно говоря) я бы предпочел на NET тупо сразу создавать / донастраивать стиль. Это может оказаться дешевле и проще, чем клонировать стили.

    На этом форуме появляюсь очень редко, меня проще в телеге поймать ;)