Mblwaka пишет:

как запустить "ModPlus v.4.1.0" на 2016 или 2017 AutoCad???

Версия 4.1.0 никогда и не поддерживала автокад 2016 и выше. Плагин дальше был переработан и продолжает активно развиваться - modplus.org

2

(3 ответов, оставленных в Другое)

Я был молод и глуп  :D

3

(3 ответов, оставленных в .NET)

Забыл добавить - не работает после указания точки вставки. Т.е. на курсоре все отрисовывается

4

(3 ответов, оставленных в .NET)

Всем доброго времени суток. Не работает вставка в текущий чертеж из другого чертежа. Код был найден на просторах инета (с отрисовкой на курсоре):

public static void InsertFromDwgFile(string fileName)
        {
            try
            {

                SetFocus(Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Window.Handle);

                Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;

                Editor ed = doc.Editor;

                Point3d ptNew = Point3d.Origin;


                using (doc.LockDocument())
                {

                    Database currentDb = doc.Database;

                    ObjectIdCollection ids = new ObjectIdCollection();

                    IdMapping idMap = new IdMapping();

                    using (Transaction tr = doc.TransactionManager.StartTransaction())
                    {

                        BlockTable currBt = (BlockTable)tr.GetObject(currentDb.BlockTableId, OpenMode.ForRead);

                        BlockTableRecord currBtr =
                            (BlockTableRecord)tr.GetObject(currBt[BlockTableRecord.ModelSpace], OpenMode.ForRead);

                        using (Database sourceDb = new Database(false, false))
                        {

                            sourceDb.ReadDwgFile(fileName, System.IO.FileShare.ReadWrite, false, "");

                            using (Transaction sourcetr = sourceDb.TransactionManager.StartTransaction())
                            {

                                ObjectIdCollection sourceIds = new ObjectIdCollection();

                                using (
                                    BlockTableRecord sourceBtr =
                                        (BlockTableRecord)sourcetr.GetObject(sourceDb.CurrentSpaceId, OpenMode.ForRead)
                                    )
                                {

                                    if (sourceBtr != null)
                                    {

                                        sourceIds = new ObjectIdCollection();

                                        foreach (ObjectId id in sourceBtr)
                                        {
                                            if (!id.IsNull && id.IsValid) //optional
                                                sourceIds.Add(id);
                                        }

                                        sourcetr.Commit();
                                    }

                                    if (sourceIds.Count != 0)
                                        idMap = new IdMapping();

                                    sourceDb.WblockCloneObjects(sourceIds, currBtr.ObjectId, idMap,
                                                                DuplicateRecordCloning.Ignore, false);

                                }

                            }
                        }


                        foreach (IdPair ip in idMap)
                        {
                            if (ip.IsPrimary) ids.Add(ip.Value);

                        }


                        var copied = new ObjectId[ids.Count];

                        ids.CopyTo(copied, 0);

                        ed.SetImpliedSelection(copied);

                        PromptSelectionResult psr = ed.SelectImplied();

                        if (psr.Status == PromptStatus.OK)
                        {
                            var ppr =
                                ed.Drag(
                                    psr.Value,
                                    "\nУкажите точку вставки: ",
                                    delegate(Point3d pt, ref Matrix3d mtx)
                                    {

                                        if (ptNew == pt)
                                        {
                                            return SamplerStatus.NoChange;
                                        }
                                        mtx =
                                            Matrix3d.Displacement(
                                                ptNew.GetVectorTo(pt)
                                                );
                                        return SamplerStatus.OK;
                                    }
                                    );


                            if (ppr.Status == PromptStatus.OK)
                            {

                                var mtx =
                                    Matrix3d.Displacement(
                                        ptNew.GetVectorTo(ppr.Value)
                                        );
                                foreach (SelectedObject sobj in psr.Value)
                                {
                                    var en = tr.GetObject(sobj.ObjectId, OpenMode.ForRead, false) as Entity;
                                    if (en != null)
                                    {
                                        en.UpgradeOpen();
                                        en.TransformBy(mtx);
                                        en.DowngradeOpen();
                                    }
                                }
                            }
                            else
                            {
                                foreach (SelectedObject sobj in psr.Value)
                                {
                                    var en = tr.GetObject(sobj.ObjectId, OpenMode.ForWrite, false) as Entity;
                                    if (en != null)
                                    {
                                        en.Erase(true);
                                    }
                                }
                            }
                            ed.SetImpliedSelection(new ObjectId[] { });

                            tr.Commit();

                        }
                    }
                }
            }

            catch (Autodesk.AutoCAD.Runtime.Exception ex)
            {
                Autodesk.AutoCAD.ApplicationServices.Application.ShowAlertDialog(ex.Message + "\n" + ex.StackTrace + "\n" + ex.TargetSite);
            }
        }

Вся фишка в том, что у меня работает, а у человека в другом городе - нет. И я не могу понять почему.
Скрин ошибки прилагаю. Надеюсь на свежие идеи)
http://s9.uploads.ru/e3XNI.jpg

Всем привет! Случилась со мной оказия!
Понравилась очень сильно девушка. Но сегодня я напортачил и теперь она не хочет ни слышать, ни видеть меня ((( И мои прощения тоже не хочет слышать
Это мой крик души о помощи! Отправьте, пожалуйста, ей смс с текстом "город просит: прости его!", где вместо город укажите Ваш город. А завтра я буду ловить ее с цветами и на коленях!
Вот номер - 8-915-552-55-20
Всем заранее огромное спасибо! И желаю Вам не ссориться!

Актуально с 12 на 13 марта 2013

Hwd пишет:

Саня, а есть такие ветки форумов, где твои монологи не продублированы?

Андрюх, ты так говоришь, как-будто я тут везде  :D  А я только в двух ветках с подходящим названием  ;)

Hwd пишет:

Вышла новая версия!

Теперь с поддержкой AutoCad 2009!

...

Новая версия 4.0!

1. Прекращение поддержки AutoCad 2009!

...

Ну да - было дело :) Изначально не было поддержки 2009 и зря я за него брался

8

(7 ответов, оставленных в .NET)

Я уже пришел к выводу "забить" на эту идею :)
Андрей, спасибо что откликнулся

9

(7 ответов, оставленных в .NET)

Интересно, а если сделать так:
1. Добавить путь
2. Загрузить типы линий
3. Убрать путь
автокад съест это? И сработает ли это в рамках одной функции?

10

(7 ответов, оставленных в .NET)

Hwd пишет:

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

А надо ограничится отсутствием добавления путей

Hwd пишет:

2. С каких пор их нужно подгружать?

Я если честно уже забыл как ими пользоваться  :oops:

11

(7 ответов, оставленных в .NET)

Здравствуйте. Порыскал по интету - не нашел. Уж простите, но два вопроса объединил:
1. Как загружать типы линий в принципе нашел

AcApp.DocumentManager.MdiActiveDocument.Database.LoadLineTypeFile("*", file);

однако встал ребром вопрос - что делать с файлами .shx, .shp? Возможно ли подгрузить их НЕ ДОБАВЛЯЯ директорию в пути загрузки автокада?
2. Ну собственно - как подгружать типы штриховок .pat?

12

(10 ответов, оставленных в О форуме)

Я не ушел на двж :) Хотя там посетителей реально больше, но кладезь полезной информации по программированию (особенно Net) именно тут!

13

(17 ответов, оставленных в .NET)

Почему-же? Должен быть тот

14

(17 ответов, оставленных в .NET)

как же найти запись о моем экземпляре блока в базе данных чертежа

Надо знать его ObjectId

15

(36 ответов, оставленных в .NET)

Пожалуйста )

16

(36 ответов, оставленных в .NET)

ssdiesel пишет:

везде стоит copylocal=true;

А для акадовских библиотек должно стоять false!!!!

17

(36 ответов, оставленных в .NET)

Хотя, если погуглить - вроде твой код виноват :)
Поставил CopyLocal = false? В свойствах проекта стоит AnyCPU (на всякий случай)?

18

(36 ответов, оставленных в .NET)

Ого! Я бы на твоем месте сначал снес автокад под чистую, а затем поставил бы заново :)

19

(36 ответов, оставленных в .NET)

У тебя в ошибке четко написано, что проблема в этом файле! Дословно - "Комментарии XML не могут содержать символы "--", и символ "-" не может быть последним в строке. Линия 7, позиция 3".
Когда ты открываешь файл с помощью VS (можешь еще браузером любым открыть), то он открывается именно как xml-файл. И в случае ошибки в тексте - тебе об этом сообщится!

20

(36 ответов, оставленных в .NET)

А еще - лучше открой файл acad.exe.Config не блокнотом, а через VS

21

(36 ответов, оставленных в .NET)

ssdiesel пишет:

я знаю)) но v4.0 от v4.0.30319 ничем не отличается

Лучше писать v4.0

22

(36 ответов, оставленных в .NET)

А я тебе не так писал :)

23

(36 ответов, оставленных в .NET)

Кусок твоей ошибки:

at MS.Internal.AvTrace..ctor(GetTraceSourceDelegate getTraceSourceDelegate, ClearTraceSourceDelegate clearTraceSourceDelegate)
at MS.Internal.TraceDependencyProperty..cctor()
InnerException: System.Configuration.ConfigurationErrorsException
Message=An XML comment cannot contain '--', and '-' cannot be the last character. Line 7, position 3. (C:\Program Files\Autodesk\AutoCAD 2013\acad.exe.Config line 7)
Source=System.Configuration
BareMessage=An XML comment cannot contain '--', and '-' cannot be the last character. Line 7, position 3.
Filename=C:\Program Files\Autodesk\AutoCAD 2013\acad.exe.Config
Line=7

StackTrace:
at System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal)
at System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors)
at System.Configuration.BaseConfigurationRecord.ThrowIfInitErrors()

Может все-же косяк в файле acad.exe.Config? Покажи его

24

(36 ответов, оставленных в .NET)

На всякий случай и это обнови http://www.microsoft.com/ru-ru/download … x?id=17851

25

(36 ответов, оставленных в .NET)

Для 2013 акада 4 фреймворк "родной" :)
Я вот так и не пойму - эта ошибка просто при открытии акада, или при запуске модуля?
З.Ы. Может стоит все-же сервиспак поставить? ;)