| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Можно ли прорисовывать блоки в AutoCAD2007 через C#

Можно ли прорисовывать блоки в AutoCAD2007 через C#

Ответ
Поиск в этой теме
Непрочитано 19.12.2011, 13:31
Можно ли прорисовывать блоки в AutoCAD2007 через C#
ghost
 
Регистрация: 19.12.2011
Сообщений: 35

Добрый день! Уважаемые участники форума!
Я начинающий программист , хорошо знаю AutoCAD. Хотел узнать, можно ли готовые блоки которые хранятся в *.dwg файле, вставлять и прорисовывать к примеру в ряд, в новом документе AutoCAD ???
И если это возможно, может быть есть у кого нибудь какой нибудь исходник..... или ссылка на инфу об этом!
На сколько знаю Autodesk-ом выпускаются библиотека ObjectARX для С++ в которой я описания подобных манипуляций не нашел, но я так понял что с AutoCAD можно работать через NET и библиотеки есть в самом AutoCAD-е ,вот только инфы по ним нет.....
Просмотров: 15121
 
Непрочитано 13.01.2012, 16:21
#41
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 813


Цитата:
Сообщение от hwd Посмотреть сообщение
Идентичный - не значит, что "стыренный"(с). Я о том, что оба кода делают одно и то же: создают определение блока и затем его вхождение (я же писал об этом). А поскольку уже есть ссылка, то какой смысл давать ещё одну на идентичный (по характеру содержимого) ресурс? Если автор не поймёт содержимое первой ссылки, то вторая ему так же не поможет...

Ладно, забудь...
Нет уж, уважаемый , не забудем
Но уважение теперь забудем однозначно
(диски могу вернуть)
Олег (jr.) вне форума  
 
Непрочитано 13.01.2012, 16:30
#42
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Олег (jr.) Посмотреть сообщение
Нет уж, уважаемый , не забудем
Но уважение теперь забудем однозначно
(диски могу вернуть)
Вообще-то я тебя в плагиате не обвинял... Ну да ладно, поступай как знаешь.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 13.01.2012, 19:53
#43
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Цитата:
но Вы "торжественно клянетесь" - что впредь и везде будуте использовать только его вместо своего (а иначе кому он еще нужен) идет?
Ну мне-то нахрена он нужен - у меня все есть.
Цитата:
мне кажеться что он (диалог естественно) просто никому не нужен
Вот-вот. Всегда этим и кончается - "мне кажется". Чего мне кажется, не буду писать.
ShaggyDoc вне форума  
 
Непрочитано 13.01.2012, 21:53
#44
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


Давно заметил - темы с #, .net и прочей ms символикой в заголовке чаще других вырождаются обмер пиписек... В этой даже обвинения и обиды.
zamtmn вне форума  
 
Непрочитано 14.01.2012, 00:49
#45
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Вот-вот. Всегда этим и кончается - "мне кажется". Чего мне кажется, не буду писать.
Бррр - у Вас диалог есть, другой Вам не нужен (причем даже с изумлением), мне он не нужен, кому-то другому здесь тоже (по крайней мере никто не говорит - ой я тут делаю, что-то и мне б такой диалог) и для чего его делать?
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 14.01.2012, 17:02
#46
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 813


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Давно заметил - темы с #, .net и прочей ms символикой в заголовке чаще других вырождаются обмер пиписек... В этой даже обвинения и обиды.
Пролистай несколько таких тем и сделай вывод,
что или кто этому причиной
Олег (jr.) вне форума  
 
Автор темы   Непрочитано 16.01.2012, 12:40
#47
ghost


 
Регистрация: 19.12.2011
Сообщений: 35


Не ожидал что тема вызовет такие "дебаты"..... Извиняюсь!
Я долго разбираюсь с вопросом потому что, эта тема интересна мне, и разбираюсь я для себя, а времени между работами, праздниками и домашними делами категорически мало..... Поэтому редко и появлялся.....
А язык C# выбран потому что я больше всего имел дела с СИ подобными языками! Поэтому мне удобней их читать, структура программ мне всегда понятней и гибкости языка хватает для большинства задач.....
У меня возникла очередная проблема.
Код:
[Выделить все]
 
[CommandMethod("PR")]
        public void blockPrint()
        {
            Document currDwg = Application.DocumentManager.MdiActiveDocument;
            Database currDatabase = currDwg.Database;
            DocumentCollection docManager = Application.DocumentManager;
            //Editor currentEditor = currDwg.Editor;

            using (DocumentLock docLock = currDwg.LockDocument())
            {
                using (Transaction transaction = currDatabase.TransactionManager.StartTransaction())
                {
                    BlockTable blockTable = (BlockTable)transaction.GetObject(currDatabase.BlockTableId, OpenMode.ForRead);
                    BlockTableRecord CurrBTR = transaction.GetObject(blockTable["IBLOCK"], OpenMode.ForRead) as BlockTableRecord;
                    BlockTable blockTableWr = (BlockTable)transaction.GetObject(currDatabase.BlockTableId, OpenMode.ForWrite);
                    ObjectId CurrBlockTableRecordId = blockTable.Add(CurrBTR);
                    BlockTableRecord ms = (BlockTableRecord)transaction.GetObject(blockTableWr[BlockTableRecord.ModelSpace], OpenMode.ForWrite);
                    BlockReference br = new BlockReference(Point3d.Origin, CurrBlockTableRecordId);
                    ms.AppendEntity(br);
                    transaction.AddNewlyCreatedDBObject(br, true);
                    transaction.Commit();
                }
            }
        }
Пытаюсь вот таким кодом просто нарисовать блок "IBLOCK" который уже есть в базе документа, в пространстве модели.
После запуска в AutoCADe происходит исключительная ситуация - eDuplicateRecordName
Даже и не знаю с какой стороны начинать копать!?

Вот весь текст:
************** Exception Text **************
Autodesk.AutoCAD.Runtime.Exception: eDuplicateRecordName
at Autodesk.AutoCAD.DatabaseServices.SymbolTable.Add(SymbolTableRecord value)
at pr_block.PRINT.blockPrint() in D:\AutoDS\pr_block\pr_block\PRINT.cs:line 32
at Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorker(MethodInfo mi, Object commandObject, Boolean bLispFunction)
at Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorkerWithExceptionFilter(MethodInfo mi, Object commandObject, Boolean bLispFunction)
at Autodesk.AutoCAD.Runtime.PerDocumentCommandClass.Invoke(MethodInfo mi, Boolean bLispFunction)
at Autodesk.AutoCAD.Runtime.CommandClass.CommandThunk.Invoke()

Последний раз редактировалось ghost, 16.01.2012 в 13:58.
ghost вне форума  
 
Непрочитано 16.01.2012, 14:43
#48
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,407
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от ghost Посмотреть сообщение
После запуска в AutoCADe происходит исключительная ситуация - eDuplicateRecordName
Есть уже блок с именем IBLOCK в таблице блоков, а ты пытаешься его повторно добавить.
Александр Ривилис вне форума  
 
Непрочитано 16.01.2012, 21:10
#49
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 813


А где проверка на существование блока,
плохо смотришь примеры
Код:
[Выделить все]
if (!blockTable.Has("IBLOCK")) //<-- Проверка на существование блока
{
Application.ShowAlertDialog("Блок \"IBLOCK" не существует, выход из программы)) ");
return;// program exiting
}
Олег (jr.) вне форума  
 
Автор темы   Непрочитано 17.01.2012, 10:24
#50
ghost


 
Регистрация: 19.12.2011
Сообщений: 35


Заработало!

Цитата:
Сообщение от Олег (jr.) Посмотреть сообщение
А где проверка на существование блока,
плохо смотришь примеры
Учту! И обязательно сделаю проверку..... Просто на первом этапе для меня было важно добиться работоспособности скелета, а теперь я его буду "наращивать"!
И продолжу ковырять отверткой под названием "Net", гранитный монолит AutoCADa.....
Всем большое спасибо!
ghost вне форума  
 
Непрочитано 17.01.2012, 14:00
#51
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 813


Цитата:
Сообщение от ghost Посмотреть сообщение
Заработало!
Успехов
Олег (jr.) вне форума  
 
Непрочитано 18.01.2012, 19:53
#52
Pastor

это только кличка
 
Регистрация: 22.10.2006
Москва
Сообщений: 252


Цитата:
Давно предлагаю желающим мой диалог XML-меню переделать на .NET.
Переделаю. Так, как описано здесь. Даже не смотря на то, что Диме_ это не нужно.
Но не скоро: жизнь удавила напрочь, не до .NET'a мне сейчас.
__________________
...в шее моей жилы железные, и лоб мой - медный...

Последний раз редактировалось Pastor, 18.01.2012 в 22:06.
Pastor вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Можно ли прорисовывать блоки в AutoCAD2007 через C#

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сейсмозащита и сейсмоизоляция существующих, построенных зд. IANationalInformAgentstvo Прочее. Архитектура и строительство 216 20.01.2015 16:51
Мониторы LCD CRT Разное 94 17.06.2008 10:51
ЮМОР 2006 =) Perezz!! Разное 1122 04.01.2007 00:46
Как можно открыть чертеж через LISP на котором стоит пароль? ivspec LISP 7 10.02.2006 17:36
Можно ли через VBA динамически двигать объекты? {Smirnoff} Программирование 4 11.12.2003 01:14