|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Вставка динамического блока по двум точкам и как при этом схватить за grip полярного параметра
ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
Торонто
Регистрация: 23.10.2007
Сообщений: 1,990
|
||
Просмотров: 8973
|
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
Так что ли ?
![]() Кодов полно, велкам: http://adn-cis.org/forum/index.php?topic=7545.0 http://adn-cis.org/forum/index.php?topic=7251.0 |
|||
![]() |
|
||||
Ну если в гифке действие с динамическим блоком, и растягивается он взявшись за "grip", то да
![]() ![]()
__________________
Блог |
||||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
да
да, но в конкретно этом случае дергается два грипа Вот тут помочь ничем не могу, для меня Lisp- китайская грамота. Хотя на просторах интернета не встречал JIG на LISP, но вдруг... |
|||
![]() |
|
||||
Дык я на лиспе и не ищу. На лиспе так не получается. Поэтому ищу если кто поделится готовым кодом на любом другом языке.
__________________
Блог |
||||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
Дык я вроде поделился, код на С#... еще раз эту ссылку вставлю http://adn-cis.org/forum/index.php?topic=7545.0
Вам поправить то в коде нужно только: названия блока - строка 31, базовый угол - строка 32 имена параметров - строки 191, 195 Если блок без атрибутов, то все отработает нормально. Должно... теоретически, но именно на Вашем блоке я не проверял, могу завтра посмотреть... |
|||
![]() |
|
||||
Не кидаийесь помидорами, но я не знаю как сделать то что Вы описываете.
С лиспом просто - переименовал текстовой файл в *.lsp и загружай... Поищу в инете как компилируют код С в то что можно скормить акаду (предполагаю fas)? Между тем, если есть соответствующий ФАК, прошу направить. Аналогично не понял и сообщения от Сергей812 (.NET и С это то же самое ? Какое расширение должно быть у такого кода?).
__________________
Блог |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Код С ACAD'у не подсунешь. Тебе привели код на C#, который компилируется в .NET-сборку (*.dll), загружаемую в ACAD командой _.netload
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
это будет Net-сборка, как описывал выше Алексей. Но код, использующий технологию Net Api (что дал ссылки Boxa) и оформленный в виде, как я показал - после загрузки _netload будем вызывать как любая другая лисп-функция.
|
|||
![]() |
|
||||
Регистрация: 23.04.2015
Сообщений: 163
|
![]() |
|||
![]() |
|
||||
kpblc, Сергей812, Boxa - По результатам поиска пошел скачивать Visual Studio Community 2015. Потыкаю. Правильно понял что код с C# можно компилировать в .NET-сборку (*.dll) этой программой? Поправьте если не туда пошел )).
frostmourn - Ответил там же.
__________________
Блог |
||||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
Процетирую
Цитата:
Цитата:
Цитата:
![]() Последний раз редактировалось Boxa, 12.01.2017 в 08:21. Причина: Проверка работы программы с блоком от Nova |
|||
![]() |
|
||||
Помогите плиз преодолеть первый ступор.
AutoCAD у меня 2016. Поставил Visual Studio Community 2015 Потом последовательно ObjectARX 2016 и 2017. Ожидал что в шаблонах появится Autodesk, но этого не произошло. Прочитал что с такого шаблона начинать не обязательно и пошел через Class Library с последующим добавлением References. Все шаги делаю по данному пособию. Оно хоть и для Visual Studio 2010 но вроде все кнопки приблизительно там же. Пока решил тестовый пример сделать. Повторяю все действия и дошел до пункта 13. Build Solution вместо Build Succeeded выдает Build Failed. Есть идеи что я не так делаю? Вот пробный код. Скриншот с проекта с ошибками также прикрепляю. Код:
__________________
Блог |
||||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
VS вам прямо говорит, что Вы забыли поставить ";" в конце строк.
В С, С++, С#, php, java и других языках, конец строки требуется оформлять точкой с запятой... Так же проверьте, что бы у добавленных Вами библиотек автокада свойство "копировать локально" было равно false |
|||
![]() |
|
||||
Спасибо. Помогло
![]() Теперь постепенно усложню. Прикреплен другой блок, на этот раз стальной балки, но принцип тот же (тянем за полярный параметр). Но у этого блока есть атрибут. В атрибут по умолчанию записано "поле" ссылающееся на "lookup". Ваш код переписывает значение атрибута на ? По видимому тут: attRef.TextString = "?"; Мне этого не нужно, а нужно "поле" что и было по умолчанию. Попытался закомментировать данную строчку. Теперь вместо "?" в атрибуте сперва отображается не значение "lookup" а почему-то его имя "Beam Size", а после регенерации и вовсе "#####" Кроме этого также перемещается положение атрибута, тогда как его трогать мне не нужно. Поможете? Код:
__________________
Блог |
||||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
Сергей812, синтаксический сахарок... =о)
ЗЫ. Только сейчас обратил внимание, что Red Nova зачем то сюда, на dwg, притащил весь код без изменений с adn-cis, зачем.... там бы и обсуждали, тем более, что он там зарегистрирован и там больше компетентных специалистов.... |
|||
![]() |
|
||||
Цитата:
Как вариант можно вставить этим кодом подставной блок без атрибута, затем его удалить и вставить нормальный блок командным методом. Чтобы продолжить на лиспе мне нужно закатать этот код в функцию как предлагал Сергей812. Попробовал сделать как указано в сообщении но как не кручу постоянно ошибки выходят.Видно не туда или не так вставляю строки. Помогите пожалуйста, и измените код ниже так чтобы была функция вместо команды. В идеале было бы удобно вывести название блока а также длины и угла полярного параметра в аргумент. И дальше функция подошла бы к любому подобному блоку. Это конечно не критично, но было бы удобно. Цитата:
Код:
__________________
Блог Последний раз редактировалось Red Nova, 14.01.2017 в 18:22. |
||||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Пример написания Lisp-подобной функции
|
|||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
Какие сложности? Примеров кода в сети полно, бери да делай.
Цитата:
Я пас. Мне костыли из Лиспа не очень то и нужны (пока), меня вполне C# устраивает. А Вам вопрос, что Вы в эту функцию собираетесь передавать, в каком виде, что с переданным будете делать и как использовать. Вот когда на эти вопросы ответите, тогда и будет понимание, что делать и как. Последний раз редактировалось Boxa, 14.01.2017 в 10:20. |
|||
![]() |
|
||||
Boxa
Цитата:
Изучать язык (ведь чтобы проделать маленькие изменения мне нужно прилично углубиться) времени к сожалению нет, да и делать это ради одной команды смысла мало (в остальном меня пока лисп удовлетворял). Следовательно то что Вам "какие сложности?" для меня очень даже они самые. Цитата:
Цитата:
Но, как и писал ранее, было бы удобно передать в нее аргументы "Имя фейкового блока", "Имя Полярной Длины", "Имя Полярного Угла", "Начальный угол Полярного Угла". Если прошлый пост я оформил не достаточно понятно попробую еще раз. По части вставки самого блока, если он без атрибута, меня Ваша команда вполне устроила. Однако все мои блоки (их несколько) имеют атрибуты, да и кроме того во всех атрибутах поля. Ваш код не работает корректно с атрибутами, и кроме того даже если бы работал, поле там работает как-то иначе. Внести эти изменения я не смогу, следовательно ищу альтернативный путь. Если ту же команду преобразовать в функцию лисп, то я бы ее смог использовать в лисп коде следующим образом. -В лиспе вызываю такую функцию и вставляю поддельный блок без атрибута. -Получаю динамические параметры поддельного блока и удаляю его. -Вставляю блок с атрибутом с полученными параметрами. Часть лиспа я могу сделать. Но сперва требуется оформить Ваш код в функцию. Из поста #7 я сделал предположение что это сделать легко и требуется только заменить пару строк в коде. Но может я неправильно понял Сергея...? Сергей812 Спасибо, Поизучаю.
__________________
Блог |
||||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
Как простейший костыль можно использовать вот этот подход: http://adn-cis.org/forum/index.php?t...sg4846#msg4846
т.е. перед вызовом команды в лисп коде записать имя блока и имена параметров в переменные, вызвать команду, потом,, после завершения .net кода, найти последний созданный блок с заданным именем ивкорячить туда атрибуты с полями... Костыльно конечно, но зато просто. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
LISP. Вставка блока из чертежа исходя из двух параметров (длина и ширина) | Kairat.iskakov | LISP | 6 | 17.05.2016 15:04 |
Вставка блока с атрибутами. Как сделать правильно? | Kirill_Ja | Программирование | 7 | 18.03.2013 00:22 |
Правильность применения операции полярного растяжения для динамического блока | E_note | Динамические блоки | 2 | 22.01.2012 14:22 |
Вставка динамического блока из библиотеки с потерей аннотативности | Jonas | Динамические блоки | 20 | 04.12.2011 19:45 |
Странное поведение динамического блока высотной отметки | hwd | Динамические блоки | 12 | 08.09.2011 11:15 |