|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
С# + AutoCAD для "носорогов".
Инженер
Deutschland
Регистрация: 27.04.2009
Сообщений: 208
|
||
Просмотров: 11492
|
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
ИХМО Ваши вопросы от незнания C# как такового - к автокаду они пока мало относятся.
з.ы. Я в общем не так категоричен - для меня точно нет разницы на каком .Net языке посмотреть метод решения проблемы под автокад. Тем более у C# и VB семантика абсолютно одинаковая - можете погуглить есть автоматизированные переводчики кода из одного в другое - можно туда и обратно перевсети - код не изменится - то есть практически это два одинаковых языка просто различный синтаксис (алфавит) и правила оформления (группировки).
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
Почему же тогда на System.Threading.Tasks ругается? У меня VS-Express 2012. В помощи Task - класс есть, а в программе нет.
Цитата:
Я специально выбрал, что попроще. Отвлеченные программы как оказалось составлять не так сложно, нежели сделать библиотеку для Када. По крайней мере для меня в данный момент. Практически от чего то оттолкнуться - дальше по течению вынесет. |
|||
![]() |
|
||||
Да, согласен с Дима_, тут еще учиться и учиться...
А не надо ее искать, она тут лишняя. Удалить/закомментировать. Выносите построение отрезка в отдельный метод с параметрами. Командный метод можно будет тогда переписать, чтобы после получения точек вызывался метод с параметрами.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
Цитата:
Код:
Цитата:
0,0,0 Enter 10,10,0 Enter тут видео: http://youtu.be/tKnqsROP8bg Дима_, Полностью согласен. И в своем шутливом замечании я именно шутил, а не призвал еще одну тему открывать. |
|||
![]() |
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
Цитата:
1. Для чего то ты все же вставил эту сборку. У меня такой не было. 2. Может кому понадобится именно C#, а не VB. Даже при наличии конверторов и похожести. Код сработал и без Task. Это понятно. Спасибо. Следующий шаг Цитата:
Для первой поры пойдет. Я уже смогу строить также и окружности и прочие элементы. Все таки Шарп "немного" непривычен после Лиспа. |
|||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
Цитата:
Там теперь и сидит =) alex8888, вообще то, это азы. Код:
|
|||
![]() |
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
Я и не говорил ничего против. Однако использование шарпа в каде уже не совсем азы. Другое дело оконные или терминальные приложения.
За код спасибо. Теперь многое прояснилось. За ссылку отдельное спасибо. А то я потерял нить от hwd. На прежнем месте его нет. Теперь снова есть! ![]() |
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
|
|||
![]() |
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
Ребята, подскажите, пожалуйста не в службу, а в дружбу.
Вот например такой список: Код:
Это чисто спортивный интерес. Есть ли какое преимущество в таком подходе к созданию и манипулированию объектами? Есть тут ограничения, подводные камни и тп? Интересно ваше мнение. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Боюсь никак (можно извратиться и послать "команду" лиспу из С# чтоб он создал примитив) - это списочное лисп-представление DXF кодов примитива.
Вам не хватает теоритической подготовки. з.ы. формально можно передать этот список .Net плагину, обработать его и на его основе что-то создать - но это как шуроповертом гвозди забивать.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
|
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Заниматься НИКОМУ не нужным делом - чтоб показать что это таки можно - примените этот список к функции entmakex - и она создаст Вам примитив (если коды взяты из тойже сессии и пр). Хотите из под C# удалите коды с примитивами (-1, 330 и др.) - и передайте список строкой.
Но и бредовые телодвижения ее не улучшают.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
Я в С# вообще новичок, но написав эту фигню стер к чертям. Это бред сивой кобылы. Никакого отношения к программированию под акад не имеет.
90% кода, это парсинг строки и вычленение требуемых значений, которые потом задаются вновь создаваемому примитиву. В общем дурь. ИМХО я понимаю что Вы, Алекс8888, привыкли писать на ЛИСП, но если Вы взялись изучать новую платформу, то изучайте именно ее, а не пытайтесь писать на лисп используя синтаксис С# |
|||
![]() |
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
Boxa, спасибо.
Действительно, до сих пор все у меня на лиспе, но есть задумки, с которыми лисп не справится. Поэтому хотелось бы, чтобы была обратная связь - прога на c# или т.п. и плюс ко всему дополнительно построение в автокад. Поэтому и смотрю, а не будет ли такой подход лучше, пусть хоть и через задний проход. Пусть идеи бредовые - мне же только для себя и нужно - за звездами гнаться не за чем. |
|||
![]() |
|
||||
Цитата:
Внутри он содержит коллекцию объектов TypedValue - аналог точечной пары на лиспе. ![]() Цитата:
![]() Одно большое ограничение - нет нормальных NET методов для получения entget - представления. Поэтому, приходится извращаться с P/Invoke. Про создание объекта из entget - представления я пока не слышал, и мне не нужно было это ни разу.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
![]() |
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
Цитата:
Код:
Вместо x и y можно будет подставить нужный список, который можно создать на основе данных, полученных из диалогового окна. Кроме того как я понял, таким образом вообще можно вызывать на выполнение лисповские функции, что на первых порах стало бы большим подспорьем, потому что переписывать все на шарп довольно-таки затратно. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Сотроите этот код - пока его какие-нибудь умники за чистую монету не приняли.
----- добавлено через ~2 мин. ----- Цитата:
з.ы. Вот блин "подсказал" как можно сдуру...
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
Цитата:
LispFunction это из лиспа или С#? В каком разделе справки синтаксис и свойства смотреть? Цитата:
|
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Вы мне можете просто на слово поверить?
Например здесь
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
Цитата:
Использование приведенного мною подхода просто моветон или влечет за собой плачевные последствия применения? За справку спасибо, ее я тоже нашел, но там с примером пока ни фига не понятно. ![]() |
|||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
Вот тут http://through-the-interface.typepad...using-net.html
можно посмотреть пример создания и вызова такого рода функций. Вот здесь можно на русском посмотреть : https://sites.google.com/site/bushma...j-s-xml-fajlom |
|||
![]() |
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
Boxa, спасибо.
Этой функцией я уже давно пользуюсь. Но мне не надо создавать новую Лисп-функцию, а надо просто вызвать уже готовую - типа например такой: Цитата:
Кстати, по первой ссылке показан примерно такой же подход, что и у меня, через acDoc.SendStringToExecute |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Это радует.
Цитата:
Есть несколько технологий програмной работы с автокадом, у каждой свои плюсы и минусы. В зависимости от задачи, решение по одной из технологий, может лучше подходить чем другие. Действительно бывают задачи, для которых оптимальной является "скрещенная" работа, но то что делаете Вы - это берете худшее из технологий и пытаетесь скрестить их между собой, да еще и наихудшим методом - я понимаю, что это от незнания как это правильно делать. Цитата:
----- добавлено через ~6 мин. ----- Программирование на автолиспе - это более абстрактный уровень, чем .Net API, написанна функция на лиспе - ее от туда и вызывайте + можете "расширить" лисп функционал дополнительными функциями на .Net. Есть еще несколько вариантов вызова лисп функций из .Net - но на этот раз я Вам их говорить не буду, и других прошу о том же, дабы не портить Ваше сознание неверным представлением.
__________________
Когда в руках молоток все вокруг кажется гвоздями. Последний раз редактировалось Дима_, 15.05.2014 в 12:19. |
|||
![]() |
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
Попытаюсь оправдаться.
![]() 1.Итак, к примеру, есть WPF-приложение типа справочно-нормативного (фланцы по нормам, не суть важно каким, но их много, собраны в базу данных, потом планирую добавить другие элементы трубопроводов) - визуально представлены размеры, вид, нужная информация. 2.К нему хочу прикрутить возможность прорисовки выбранного элемента на чертеже (в дальнейшем будут не только стандартные, но очень специфические изделия, изменяющиеся произвольно по вводимым данным) на чертеже - по первости в Автокад, по возможности в дальнейшем и в Инвентор. 3.Есть уже не один десяток написанных на Лиспе модулей, которые можно также использовать для реализации п.2 Подчеркну, что п.2 не является главенствующим и не всегда нужны построения элементов и чертежи, но иногда требуется работа с документами, использующими данные из п.1 Рисовать функционалом C# может быть пока и не оправдано, а остальные составляющие проекта не реализуются в Автокаде на Лиспе. Теперь немного прояснил ситуацию? Есть предложения? |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Есть. Использовать специализированное ПО: если вопрос касается строительства, то AutoCAD MEP или Revit MEP; если машиностроение - Inventor Suite (например).
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
Цитата:
1. Функционал абсолютно не тот. Есть все, что не нужно и наоборот. Специфика производства, что поделаешь. ![]() 2. Самый важный пункт- деньги. Мне будет проще добиться повышения зарплаты чем приобретения спец-ПО. Тем более, что Инвентор у меня таки есть. По "глюкавости" он бежит впереди всех моих творений на пол-головы ![]() Понимаю, что из-за универсальности страдает функционал, но нельзя же так грубо фальшивить - ни одна развертка нормально не реализуется. (Может быть свойство наших машин и инструментов - но что есть, то есть и другого не дано) ![]() |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Тогда пишется "мостик" Lisp<->.Net и каждый занимается своим делом, лисп вызывает лисп-функцию с параметрами полученными от WPF модуля, при желании можно в качестве параметров и текст функции передать, и выполнить ее через apply/eval (но с этим аккуратней, в автолиспе нет именных пространств - я сейчас про пространства лиспа, а не .Net) - но для грамотного составления "интерфейса" обмена между модулями - нужны достаточно продвинутые знания в обоих областях. Плюс надо обязательно рассмотреть взаимодействие через ActiveX (сборки Autodesk.AutoCAD.Interop и ...Common) - в Вашей постановке задачи скорее всего она будет предпочтительней..
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
AUTOCAD 2010 перестал переключаться в многооконный режим. Проблемы с переменными | Андрей Х. | AutoCAD | 24 | 27.05.2015 10:17 |
Интеграция Autodesk СПДС в AutoCAD 2012 | bolotov | Прочее. Программное обеспечение | 24 | 07.01.2013 20:22 |
Превратить AutoCAD Map 3D в обычный AutoCAD (по панелям) | gizmo_zx | Вертикальные решения на базе AutoCAD | 3 | 24.08.2011 11:25 |
AutoCAD 2009/2010 в ряде вопросов серьёзно курят перед AutoCAD 2007/2008 | hwd | Баги и пожелания в Autodesk | 30 | 10.11.2010 12:56 |
В русской версии AutoCAD 2010 SP1 32-bit файл Acad.PGP содержит ошибки. | hwd | Баги и пожелания в Autodesk | 21 | 21.04.2010 20:27 |