|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
18.09.2012, 14:48 | #1 | |
Доступ к параметрам (Custom) блока из кода
Регистрация: 18.09.2012
Сообщений: 23
|
||
Просмотров: 5520
|
|
||||
Offtop: умеешь красиво оформлять топики...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
|
||||
Регистрация: 18.09.2012
Сообщений: 23
|
Обещаный пример.
Цифири вокруг "кружочков" необходимо любым образом синхронизировать. В идеале, конечно, "на ходу" - после изменений в любом "соседе". Как будут синхронизироваться "на старте" - значения не имеет, т.к. решительно все цифири будут последовательно забиваться руками. Вопрос автоматизации ввода пока не стоит, а может и не встанет совершительно =) __________________________________________________ __________________________________________________ Конечно же, допускается любая организация исходного блока, лишь бы всё было максимально удобно для конечного пользователя, а не для программиста =))) |
|||
|
||||
Регистрация: 30.10.2010
Сообщений: 123
|
Лично я толком ничего не понял.
Каким "любым"? Напиши кругло какую задачу ты решаешь и просто словами предполагаемый алгоритм работы (что и в какой последовательности вводит пользователь, что он получает автоматом на выходе). А то тебе тут напредлагают... Например, написать "цифири вокруг кружочков" при помощи поля (field) - вот и вся синхронизация. Сойдет такой способ за "любой"? |
|||
|
||||
Регистрация: 18.09.2012
Сообщений: 23
|
Имеется в виду, что неважно, когда - будет ли синхронизация во время ввода или после, или вообще после regen/attsynh.
__________________________________________________ __________________________________________________ Суть "алгоритма" такова: - Пользователь вводит в окошке свойств или в диалоге цифири значений в углах (в оригинале их по два, в примере - один) - Происходит расчёт значения в центре блока-клетки (в примере - суммирование) - Происходит дублирование изменённого значения в соседние блоки в соответствующие примыкающие углы - происходит перерасчёт значений в центрах соседних блоков-клеток __________________________________________________ __________________________________________________ Желательно, чтобы приэтом пользователю не приходилось подгружать лишние скрипты (максимум - один), менять ярлык запуска и/или пихать что-либо в автозагрузку, равно как и устанавливать нечто лишнее. Желательно. Но не обязательно. __________________________________________________ __________________________________________________ P.S. если это поможет, то одна из целей - расчёт земляных масс. |
|||
|
||||
Регистрация: 18.09.2012
Сообщений: 23
|
Цитата:
Моему молотку однажды заметилось, что к полям аттрибутов изнутри блока обратится не представляется возможным А параметры замечательно доступны из "BlockPlaceholder". Но даже если упразднить "лишние" построения, вопроса синхронизации это не решает. Если сетка из этих всегда фиксированного размера - её можно однажды железно привязать за поля, да и копипастить потом. А если сетка из чертежа в чертёж меняется в размерах? Если в ней то 10*10 ячеек (что уже напрягает), а то и 200*100... __________________________________________________ __________________________________________________ P.S. Пример решения полями сетки 100*100 блоков-ячеек в студию! |
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Да классный пример - а главное всем сразу понятно что нужно по 15 одинаковым квадратам
Цитата:
А где у Вас до этого написанно что сетка изменяемая? Или до чего за Вас должны все догадаваться. Такую как вашу "сетку" могу размножить хоть 1000 на 1000 - Вы бы перед тем как разную "галематью с примерами" писать расписали бы исходную задачу, и посоветовались бы о методах ее решения, тратить время на решение непонятной задачи да еще и для выполнение ее через ***у, лично у меня нет ни какого желания, ну а коли Вы "такой умный" и лучше всех знаете как ее надо решать - так и решайте сами - удачи.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Инженер-конструктор Регистрация: 29.10.2007
Юбилейный МО
Сообщений: 266
|
Согласен, описание хреновое.
Хотелось помочь человеку, но так до конца и не разобрался, что требуется. За исключением того, что Дима_ погорячился, он прав, автору неплохо было бы подробно описать задачу. Например непонятно, как создаётся сетка: чертится руками, составляется из блоков или генерируется программно? Можно ли применить динамические блоки? Остальные нюансы тоже описать бы... |
|||
|
||||
Регистрация: 18.09.2012
Сообщений: 23
|
Согласен =)
Задача следующая: Есть произвольный многоугольник, очерчивающий территорию. На эту территорию накладывается сетка, в узлах которой отображается текущая высота местности и целевая. В центре клеток отображается "земельная масса", которую требуется "убрать/досыпать". Отдельно также имеется таблица, суммирующая результат. Вида "итого выкопать:", "итого насыпать:", "итого:". О неполных клетках речи пока не идёт, хотя было бы неплохо. __________________________________________________ __________________________________________________ В данном примере задействованы динамические блоки, вставленные в чертёж insert'ом вручную. Соответственно, такой подход не даёт гибкого результата. Как подосвобожусь - постараюсь закинуть более вменяемый пример. __________________________________________________ __________________________________________________ P.S. Ребят, полный самоучка, к тому же всего полгода как начал копать в теме динамических блоков и LISP'а =) |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,846
|
Мне почему-то кажется, что вариант использования квадратов (да и вообще не-треугольников) может дать немного неверный результат. И на самом задача сводится к расчету разницы между поверхностями.
Насколько я слышал, в Civil подобные задачи решаются достаточно просто (инструментария не знаю). Если же надо "только AutoCAD и без вариантов", то задачу триангуляции вроде бы решал Евгений Елпанов.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 18.09.2012
Сообщений: 23
|
Стоит не задача триангуляции, а оформление соответствующих чертежей - первое, что нашёл яндекс.
И вся соль именно в отображении всех этих цифирей на чертеже, что с треугольниками куда как менее удобно. __________________________________________________ __________________________________________________ P.S. это вообще из области СПДС, не наш профиль, но вот поручили сделать. Так что, возможно, есть и другие варианты оформления по ГОСТ, с которыми не знаком. |
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Построить по точкам две копии трехмерных тел (текущие и целевые) и вычесть в каждой одно из другого (получиться в одной сколько досыпать, в другой - выборка) - потом нарезать любой нужной сеткой и посчитать объем хоть весь, хоть по клеткам - будет наглядно и красиво.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Регистрация: 18.09.2012
Сообщений: 23
|
Есть такая "вредная хреновина" - ГОСТ. Оформление требуется с соблюдением оного =)
А уж если речь о расчётах, то есть и специальное узкозаточенное ПО, в котором всё давно посчитано. Остаётся всё это вынести и оформить. И обычно этим занимались строители... ____________________________________________________________________________________________________ P.S. нет ничего непостояннее, чем окончательное решение... Кажись, планчик отпадает. Остаётся чисто спортивный интерес. Пока что. Пока снова не примут обратное окончательное =) |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
Автор, вы бы в одном файле показали исходное положение, промежуточное и результат.
Все что я понял , это что число в центре блока - сумма чисел в вершинах. Откуда берутся числа в углах, не понял, но они должны быть одинаковые в смежных углах. Исходя из того что понял: Выбираем все блоки Прибираем блоки --Проходим по вершинам ---Собираем значения и ссылки на аттрибуты в углах --Ищем множество блоков с такими же координатами вершины --- Проходим по полученной выборке --- Ищем атрибут в блоке с координатами: Коорд. вершины +- некоторое значение ----Заполняем атрибут новым значением ----Считаем сумму атрибутов Переходив в начало Наверняка что то напутал или не так выразился/понял, но пока , из того что понял, задача тривиальная и в связке .net+LinQ/любая БД решается не сложно. Последний раз редактировалось Boxa, 20.09.2012 в 12:15. Причина: И параметры не нужны... |
|||
|
||||
Регистрация: 18.09.2012
Сообщений: 23
|
Семён Семёныч...
А я всё по блокам рыскал =) Благодарю! __________________________________________________ __________________________________________________ А в целях повышения квалификации и уровня костыльных знаний, можно ли к параметрам из AutoLISP'а достучаться? __________________________________________________ __________________________________________________ P.S. уже на AutoLISP'е в черновом сваял с автопробегом по блокам вариант, который опирается на координаты вставки блока. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
кто знает есть ли доступ к параметрам динамичесого блока из Lisp | GaD200900 | LISP | 15 | 07.08.2016 18:36 |
Фильтр динамических блоков по аттрибутам и другим (custom) параметрам как выполнить? | m00ny | Динамические блоки | 3 | 02.08.2012 14:04 |
Как получить доступ к свойствам дин. блока в VBA | shprot | Программирование | 3 | 30.04.2012 18:49 |
VBA програмный доступ к параметрам динамического блока (чтение/установка) | sergtranes | Программирование | 6 | 07.02.2011 17:16 |
Управление параметром видимости дин. блока через sheetset custom properties | Red Nova | AutoCAD | 12 | 25.06.2008 13:44 |