|
  |
Создание спецификации автоматически (Дубль2), Рассматриваются технология и ее реализация по автоматическому создани |
|
|
Гость_Supermax_*
|
25.9.2007, 17:03
|
Guest Forum

|
Вот блин! Сказали в 13-00 привезут назад, я как последний поц быстренько все сделал, а они гады меня взяли и там бросили. Пришлось своим ходом обратно на работу переться. Для того, чтобы я взялся писать окна, мне надо понять что на них ставить. Я до сих пор этого до конца не понимаю. Ну к примеру первое окно это выбор "блоки" или "типы примитивов" или "слои" или "выбрать все". Выбрали. Нажали к примеру блоки - выпало разбитое на две части окно, в левой половине имена блоков, а в правой имена включенных слоев. Под обеими половинками кнопки "выбрать все". Чтобы снимать выбор достаточно клацнйть без контрола или шифта любую позицию. Далее ОК/Cancel. Нажали ОК - в какой форме должны быть предствлены результаты выбора? Несколько слоев и несколько блоков. Я к примеру создаю три переменных, две из которых всегда равны nil. Та, что не nil, содержит в себе список из двух списков, первый - список слоев, второй - список имен блоков. Годится?
|
|
|
|
Гость_Supermax_*
|
25.9.2007, 21:47
|
Guest Forum

|
Вот изучайте. Блок ФБС динамический Файл изменен. Опять немного починил (дырку залатал в графике)
Сообщение отредактировал Supermax - 26.9.2007, 10:22
|
|
|
|
Гость_Supermax_*
|
27.9.2007, 9:03
|
Guest Forum

|
Всем привет! Панели пока обождут, не до них, хотя запал не потух. Kpblc, и VVA, а не вкурсе ли вы случайно, как сделать так, чтобы формула определяла длинну линии? Вставить формулу в текст или атрибут могем, а как ее подвязать на динамические свойства не знаем. Мне надо передать результат в Linear Stretch. Обратный процесс ясен вполне. Мне надо, чтобы геометрические размеры объекта определялись расчетом.
Сообщение отредактировал Supermax - 27.9.2007, 9:14
|
|
|
|
Гость_Supermax_*
|
27.9.2007, 9:12
|
Guest Forum

|
Еще один каверзный вопрос. Как Dimension выключить точки. Вот я выключил все линии, а там, где они примыкают к объекту остались точки. Мне надо оставить только текст, а эти точки я не заказывал. Я где-то встречал, но не помню где.
|
|
|
|
|
27.9.2007, 9:35
|
CAD Developer
Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062

|
> #334 : Если формула (точнее, длина или любой иной параметр объекта) зависит от другого объекта acad'a, прописывай объектный реактор. Подробнее - в книге Н.Н.Полещука по разработке и адаптации. > #335 : Отключай слой Defpoints.
|
|
|
|
Гость_Supermax_*
|
27.9.2007, 10:08
|
Guest Forum

|
А я уже подумал, что что-то случилось. Вчера целый день меня тишиной пытали. Да, про AutoLisp базару нет. С ним хоть на Марс, хоть на Луну. А вот без него... Defpoints не помогает. Как тогда в объект встроить лисп программу? Чтобы каждый раз, как этот объект обрабатывается она запускалась. Вот я формулу из текста (в смысле на сером фоне цифирки) через буфер, в значение Linear Stretch вставил, оно там засветилось вполне адекватно, только когда нажимаю Enter - сбрасывает зараза. Может Лиспом ее туда заколотить? Через Лисп и атрибуты с пробелами катят, так может и тут покатит? Вт бы этот объектный реактор в сам объект встроить...
Сообщение отредактировал Supermax - 27.9.2007, 10:10
|
|
|
|
Гость_Supermax_*
|
27.9.2007, 10:25
|
Guest Forum

|
И вот зараза, точек от размеров почему-то не 4 а 3. Левой со стороны размера всегда нет (или это только у меня?).
|
|
|
|
Гость_Supermax_*
|
27.9.2007, 10:37
|
Guest Forum

|
Kpblc, вот в свойствах элемента много значений требуют данные в виде строки, а если я дам вместо строки лисп выражение, результатом обработки которого будет строка? Как думаешь сработает?
|
|
|
|
Гость_Azarko aka VVA_*
|
27.9.2007, 11:05
|
Guest Forum

|
Цитата а как ее подвязать на динамические свойства не знаем С параметрами блока нужно быть поосторожнее. Прочитай пост №8 http://dwg.ru/forum/viewtopic.php?t=15815Я думаю, единственный выход - объектный реактор, или команда, которая перебирает блоки и что-то там в зависимости от чего-то меняет. По поводу объетных реакторов из личного опыта: Реактор повешен на текст, переведен в постоянный режим. При втавке этого чертежа в другой как блок, независимо от того, подгружен реактор или нет, при закрытии чертежа Автокад вываливается с ошибкой. Избавился так: реактор временный, при каждом открытии чертежа активизируется. Трабл наблюдался в 2004, 2006 каде. 2007, 2008 не пробывал.
|
|
|
|
|
27.9.2007, 11:15
|
CAD Developer
Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062

|
Цитата(Supermax @ 27.9.2007, 11:37) [snapback]170065[/snapback] Kpblc, вот в свойствах элемента много значений требуют данные в виде строки, а если я дам вместо строки лисп выражение, результатом обработки которого будет строка? Как думаешь сработает? Теоретически должно (только texteval проверь). Практически - я бы проводил модификацию программно.
|
|
|
|
Гость_Supermax_*
|
27.9.2007, 13:42
|
Guest Forum

|
А я научился вставлять формулы с сылкой на объекты и прочими данными в Text override Dimensions-ам. Причем ф формулу вставлена ссылка на тот Dimension в котором эта формула стоит в Text override и в этой формуле участвует значение другого Dimension. Если кому интересно, могу поделится.
Если сработает (пока не могу проверить) это будет революция. Например объект, в котором никогда нельзя включить ручки. Лисп с начала делает свое черное дело (гасит ручки) а затем выдает под занавес строку с нужным текстом.
|
|
|
|
|
28.9.2007, 0:14
|
CAD Developer
Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062

|
Вообще-то мог бы и сам сделать  Код (defun test (/ adoc attr_number attr_pos _kpblc-conv-vla-to-list)
(defun _kpblc-conv-vla-to-list (value / res) ;| * Преобразовывает vlax-variant или vlax-safearray в список. |; (cond ((= (type value) 'variant) (_kpblc-conv-vla-to-list (vlax-variant-value value)) ) ((= (type value) 'safearray) (if (>= (vlax-safearray-get-u-bound value 1) 0) (vlax-safearray->list value) );_ end of if ) (t value) );_ end of cond );_ end of defun
(vl-load-com) (setq adoc (vla-get-activedocument (vlax-get-acad-object))) (if (and (not (vl-catch-all-error-p (vl-catch-all-apply '(lambda () (setq attr_number (car (nentsel "\nАтрибут номера <Отмена> : "))) );_ end of lambda );_ end of vl-catch-all-apply );_ end of vl-catch-all-error-p );_ end of not attr_number (setq attr_number (vlax-ename->vla-object attr_number)) (wcmatch (strcase (vla-get-objectname attr_number)) "*ATTR*") (not (vl-catch-all-error-p (vl-catch-all-apply '(lambda () (setq attr_pos (car (nentsel "\nАтрибут позиции <Отмена> : "))) );_ end of lambda );_ end of vl-catch-all-apply );_ end of vl-catch-all-error-p );_ end of not attr_pos (setq attr_pos (vlax-ename->vla-object attr_pos)) (wcmatch (strcase (vla-get-objectname attr_pos)) "*ATTR*") (not (equal attr_pos attr_number)) (/= (strcase (vla-get-tagstring attr_number)) (strcase (vla-get-tagstring attr_pos)) );_ end of /= (equal (vla-objectidtoobject adoc (vla-get-ownerid attr_pos)) (vla-objectidtoobject adoc (vla-get-ownerid attr_number)) );_ end of equal );_ end of and (progn (foreach item (vl-remove-if-not '(lambda (x / lst) (setq lst (_kpblc-conv-vla-to-list (vla-getattributes x))) (and (member (strcase (vla-get-tagstring attr_number)) lst );_ end of member (member (strcase (vla-get-tagstring attr_pos)) lst );_ end of member );_ end of and );_ end of lambda (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget '((0 . "INSERT") (66 . 1))))) );_ end of vl-remove-if );_ end of mapcar );_ end of vl-remove-if-not ;| Ну а здесь уже проставление чего надо и куда надо - сам, батенька, сам :)|; );_ end of foreach );_ end of progn );_ end of if );_ end of defun P.S. Ну вот, пока отвечал, пост уже снесен.. Ну что, код отправлять туда же, куда и #343 ушел?
Сообщение отредактировал kpblc - 28.9.2007, 0:15
|
|
|
|
Гость_Supermax_*
|
28.9.2007, 6:54
|
Guest Forum

|
Е кы лы мы ны! Сейчас поправлю VVA сказал, что ничего не понял, вот я его и снес, а то не удобно как-то. Работа навалилась. Но я не здаюсь! Я и сегодня немного пошлангую.
|
|
|
|
|
28.9.2007, 7:08
|
CAD Developer
Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062

|
Пока ты не начал "шланговать" (подозреваю, что имеется в виду "прикидываться шлангом". Не пытайся - не получится  ). Перед дополнением кода подумай - почему я не стал прописывать заполнение атрибутов? С технической стороны этот вопрос не сложен. Я знаю, я скотина
|
|
|
|
Гость_Supermax_*
|
28.9.2007, 7:20
|
Guest Forum

|
Поправляю ТЗ, и возник спорный вопрос. Вот есть план микрорайона с проложенной теплотрассой. Надо выделить объекты для позиционирования и нумерации. А нужен ли выбор секущей рамкой? Вообще, может ли в принципе быть такая ситуация, когда в модели есть несколько груп элементов (с атрибутами есс-но) где одни надо маркировать и нумеровать, а другие либо не надо, либо они должны быть отмаркированы по новой с нуля? Что-то я никак не могу себе представить такой случай.
|
|
|
|
|
28.9.2007, 7:25
|
CAD Developer
Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062

|
Ни фига не понял. "Маркировать" надо для чего? Для составления спецухи, так? Значит эта нумерация должна быть сквозной. Или все не так? --- Добавлено: во, ща чего нашел: Цитата Название программы EasySpecВерсия: 2.0.0.29 04.09.2006 Официальный сайт: http://orbita.perm.ru/?page=specДемо: http://orbita.perm.ru/download-main.php?id=13 (2,2 Мб) Краткое описание: Программа предназначена для создания спецификаций на основе базы данных по оборудованию и материалам. Полностью исключается и сводится к нулю рутинная работа по вводу текста, автоматически формируется титульный лист для любой организации из списка занесенных в программу. Программа формирует документы в соответствии с ГОСТ, а также позволяет настроить выходные форматы в соответствии с фирменным стилем, личным предпочтением, вкусом и желанием пользователя. Данная программа является самостоятельным законченным блоком, который планируется включить в программу проектирования систем безопасности. Программа позволяет выполнять спецификации для различных видов строительной деятельности. Программа формирует титульный лист в формате A4, таблицу спецификации - в двух форматах А3 и А4. Автоматически заполняется штамп и титульный лист в зависимости от выбранного из справочника конкретного Исполнителя работ. Включает два справочника: по заказчикам и подрядчикам. Имеется возможность : глубокого редактирования и форматирования всех исходных шаблонов. быстрого ввода готового текста в панель управления из списка заранее подготовленных в редакторе списка. быстрого ввода информации из базы данных нажатием клавиш цифровой клавиатуры. быстрого поиска по базе данных с сортировкой базы данных по алфавиту и по номеру записи. База данных имеет функцию автоматического измерения ширины полей в документах и саморасширяющиеся поля, позволяющие заполнять базу данных в точном соответствии с выбранным форматом листа, видом шрифта и шириной полей (граф) в документах. Не качал и не проверял.
Сообщение отредактировал kpblc - 28.9.2007, 7:28
|
|
|
|
Гость_Supermax_*
|
28.9.2007, 7:41
|
Guest Forum

|
Kpblc, ты вообще сегодня спать ложился? Что-то ты очень рано сегодня. Нумерация - сквозная, но упорядоченная, то есть с начала нумеруются детали одного типа, затем другого и т.д. Позиционирование (маркировка) производится тоже упорядоченно. С начала группируются детали по эффектив нейму, потом по *Unnn и маркируются. Грубо говоря с начала в кучу собираются все трубы (атрибут "категория материала"), а потом из этой кучи выбирается первое эффективное имя и все *Unnn ему принадлежащие маркируются и нумеруются. Затем следующее имя и т.д. Ща ТЗ доделаю и выложу.
Добавлено: Если учесть тот факт, что атрибут в блоке может быть видимым и заключенныи в кружочек или квадратик, то и на монтажке это дело - самое оно.
Сообщение отредактировал Supermax - 28.9.2007, 7:44
|
|
|
|
Гость_Supermax_*
|
28.9.2007, 7:47
|
Guest Forum

|
А эту прогу я оказывается уже устанавливал. Там ручками надо штампик заполнять. Ничего она не делает акромя выпуску бумажек.
Да, пишу ТЗ и прога получается явно не на 3000р.
Сейчас, VVA проснется и я узнаю, надо ли мне расписывать последовательность этапов обработки массива или не надо.
Сообщение отредактировал Supermax - 28.9.2007, 8:08
|
|
|
|
Гость_Supermax_*
|
28.9.2007, 8:13
|
Guest Forum

|
Вот: Краткое описание: Программа предназначена для создания спецификаций Цитата на основе базы данных по оборудованию и материалам. А где собственно и чем (это я о ручках) эту базу создавать? И они ЭТО продают за деньги!
|
|
|
|
|
28.9.2007, 8:15
|
CAD Developer
Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062

|
Цитата(Supermax @ 28.9.2007, 8:41) [snapback]170434[/snapback] Kpblc, ты вообще сегодня спать ложился? Что-то ты очень рано сегодня. Нумерация - сквозная, но упорядоченная, то есть с начала нумеруются детали одного типа, затем другого и т.д. Позиционирование (маркировка) производится тоже упорядоченно. С начала группируются детали по эффектив нейму, потом по *Unnn и маркируются. Грубо говоря с начала в кучу собираются все трубы (атрибут "категория материала"), а потом из этой кучи выбирается первое эффективное имя и все *Unnn ему принадлежащие маркируются и нумеруются. Затем следующее имя и т.д. Ща ТЗ доделаю и выложу.
Добавлено: Если учесть тот факт, что атрибут в блоке может быть видимым и заключенныи в кружочек или квадратик, то и на монтажке это дело - самое оно. Ложился, спал аж 4 часа. Работы просто много - TDMS никак не сдается  Я бы сортировку делал по другому принципу (см.аттач, там dvb-файл, сделан на ACAD2007) P.S. Жалко, что ToolTip нельзя сделать многострочным, красивше получилось бы...
Сообщение отредактировал kpblc - 28.9.2007, 8:16
|
|
|
|
Гость_Supermax_*
|
28.9.2007, 10:50
|
Guest Forum

|
Во-первых, мы должны уяснить себе что такое "позиция". Мое мнение на этот счет следующее: Цифра в кружочке обозначает позицию в спецификации и в атрибуте написано (см. блок ФБС) "ПОЗИЦИЯ_В_СПЕЦИФИКАЦИИ". В сецификации конечно можно по разному расставлять объекты по позициям, НО! На плане чертежа, элементы с одной и той же позицией, разбросаны по всему листу и говорить о какой-то ориентации на геометрическое положение, с моей точки зрения - не логично. Количество вложенных блоков можно рассматривать только как некое свойство конструктивной насыщенности, от которого суть объекта не меняется. Вот к примеру автомобиль - модель создана не из одного блока, а там их целая гора, но тем не менее этот автомобиль имеет название ЗИЛ-130, к примеру. Ему на плане определено место, другому автомобилю - другое, разве кто-нибудь определяет место по насыщенности объекта? Вот если в атрибуте "КАТЕГОРИЯ_МАТЕРИАЛА" указано "Грузовые автомобили", то все "Грузовые автомобили" должны быть сгруппированы, а "Легковые автомобили" в свою кучу сложены. К какой группе ты приписал этот блок, в такой он и окажется не смотря на то, что он просто точка. Да, да - точка. И такие блоки бывают с атрибутами и свойствами. Свойства есть, а грфики - одна только точка. Имен у блока, как мы уже знаем - 2. Первое является эффективным, второе - подвид этой особи, только с отклонениями в развитии. Я имею в виду *Unnn. Ясен пень, надо с начала выудить основной вид, а затем шерстить его подвиды. Чтобы в спецификации получилось " поз. 1 эл-ты 1-6 Труба ДУ-150 L=3000 мм. - 6шт. поз. 2 эл-ты 7-12 Труба ДУ-150 L=2500 мм. - 6шт. и т.д.
Труба ДУ-150 - это эффективное имя или значение атрибута "НАИМЕНОВАНИЕ_ИЗДЕЛИЯ". эл-ты 1-6 - это *Unnn с этим эффективным именем, но с одинаковой длинной L=3000 мм. поз. 1 - это все элементы с одинаковой длинной (в частности с 1-го по 6-ой).
В спецификации нельзя чтобы одни трубы валялись в начале, другие в конце, третьи в середине. Вот мы потихоньку логически и подбираемся к аргументации состава и назначению атрибутов в блоке предложенного мною.
Сообщение отредактировал Supermax - 28.9.2007, 10:55
|
|
|
|
Гость_Supermax_*
|
28.9.2007, 11:07
|
Guest Forum

|
В общем вся эта нумерация уперается в основную тему и пока мы ее не начнем НОРМАЛЬНО гасить - ничего путного не получится. Для VVA могу сказать только одно - есть 3000р - могу дать. Надо все как следует еще раз проанализировать и бери себе что нибудь на 3000р. и делай. Я лично пока застрял на создании набора для обработки. Все уперается здесь в работу с внешними ссылками. Без них я не могу. Либо надо AutoDesk дожимать, чтобы -refedit починили, либо сбрасывать модель в соседний файл и там превращать в единое целое, либо ПСК пересчитывать - не знаю. Если подскажете как мне обойти эту проблему, но чтобы потом можно было вернуться и доделать с сылками - буду очень благодарен.
|
|
|
|
|
28.9.2007, 11:13
|
CAD Developer
Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062

|
А я еще раз повторяю - что надо фильтровать атрибуты и свойства - что является значимым для спецификации, а что - нет. Позиция, кстати, совершенно необязательно проставляется как "число в кружке". Она может (и зачастую так и делается) проставляться как выноска. Если у тебя есть возможность, скачай или возьми демку того же MechaniCS, весьма расширяет кругозор
|
|
|
|
Гость_Supermax_*
|
28.9.2007, 11:59
|
Guest Forum

|
Ну надо фильтровать, а как? Я вот предлагаю по блоку образцу. Прога задает вопрос, а ты ей указываешь ответ. Согласен, номер изделия не всем и не всегда нужен. Значит нумерацию надо делать по прямому указанию (ставим галку). В блоке очень много свойств и атрибутов, но прога ищет только те, которые ты указал. Если программа ориентирована на нумерацию и позиционирование, значит ей надо знать как минимум куда ставить эти номера или позиции. По поводу выноски - да хоть в золотую рамочку с вензилями. Что в блоке нарисуешь, и к чему атрибут присобачишь, то и увидишь.
Условия: Геоподоснова, масштаб отображения 1:1, на которую я кладу динамические блоки труб, вентилей, элементы камер и пр. Все состоит из линий, полилиний и технологических блоков (выноски, элементы сооружений и т.п.) я добавляю свои виртуальные детали и на основе полученного создаю монтажную схему. Атрибуты в блоках есть не только у меня, но они другие.
Для выравнивания:
1. При запуске макроса следует запрос «укажите блок образец» указав на любой подходящий блок видим список его свойств. 2. На запрос «укажите свойство длинны» - указываем свойство 3. На запрос «укажите размер округления в мм.» - указываем цифрами скажем 50 4. На запрос «укажите критерий округления + или &» Указываем + если хотим только в плюс (даже если будет длинна 10000.01 – округляем до 10060.00) если хотим обычно, то &. 5. На запрос «Все или Указать» - указываем скажем У (выбор секущей рамкой) 6. Создаем набор секущей или не секущей рамкой с возможностью многократности. 7. Нажимаем ОК и макрос выравнивает длины.
Можно зациклить этот процесс и каждый раз будет запрос «Выровнять следующую позицию?» в случае положительного решения повторяется все с пункта №1, а если больше равнять не надо – переходим к позиционированию.
Для маркировки и позиционирования:
1. При запуске макроса следует запрос «укажите блок образец». Пользователь указывает на любой подходящий блок. Макрос должен развернуть панель со списком атрибутов и свойств этого блока. 2. С верху панели над окном или в командной строке должна гореть надпись «укажите заполняемый атрибут номера» - указываем атрибут. Выбора через Ctrl или Shift - нет. Нажимаем ОК. 3. С верху панели над окном или в командной строке должна появится надпись «укажите заполняемый атрибут позиции» - указываем атрибут. Нажимаем ОК. 4. С верху панели над окном или в командной строке должна появится надпись «укажите атрибут категории материала» - указываем атрибут. Нажимаем ОК. 5. С верху панели над окном или в командной строке должна появится надпись «укажите свойство с первым уровнем приоритета в сортировке» - указываем свойство «наименованием изделия или материала». Нажимаем ОК. 6. С верху панели над окном или в командной строке должна появится надпись «укажите свойство со вторым уровнем приоритета в сортировке» - указываем свойство «марка изделия или материала». Нажимаем ОК. 7. С верху панели над окном или в командной строке должна появится надпись «укажите свойство с третьим уровнем приоритета в сортировке» - указываем свойство «… L=». Нажимаем ОК. 8. Наверное, на 5-ти уровнях можно и ограничиться. 9. Если атрибут «категория материала» есть, а в нем нет записи, то при обработке программа останавливается, подсвечивает и зуммирует элемент, выводит его эффективное имя, техническое имя, поле для записи и предлагает заполнить этот атрибут. Если в блоке нет такого атрибута, то все детали маркируются и нумеруются в соответствии с алфавитом. Все что найдено также сортируется по алфавиту, чтобы указав в атрибуте «Категория материала» - значение «Техника\Дорожная\Грузовые автомобили», в других блоках «Техника\Дорожная\Бльдозеры» с начала были собраны все блоки «Техника\Дорожная\Бльдозеры». А затем «Техника\Дорожная\Грузовые автомобили». Это дает возможность разделять категорию на подкатегории не наращивая количество атрибутов. (Разделитель - обсуждается). 10. Создать набор секущей или не секущей рамкой с возможностью многократности. 11. Набор создается с фильтром «только блоки с атрибутами) 12. Выбрасываем из набора все блоки не имеющие указанные атрибуты, причем и те, в которых есть только один из указанных атрибутов. Желательно, чтобы при этом машина выбрасывала сообщение о найденных «бракованных» блоках. 13. Из общего набора создаем наборы, включающие в себя только один вид категории материалов. 14. Берем первое имя – проставляем блокам с этим именем в указанном атрибуте – если Нумерация – номера, а если Позиционирование, то позицию. (при позиционировании заполнение атрибута проводить присоединением значения позиции к существующему тексту в значении атрибута). 15. Сохраняем имя блока, первое и последнее значение номера или номер позиции в переменной blk_num или blk_poz (в зависимости что происходит) и переходим к другому имени блока.
Результатом работы макроса является пронумерованные и позиционированные блоки. В памяти две переменные со списком списков результатов нумерации и позиционирования.
Условия изменены!
Сообщение отредактировал Supermax - 28.9.2007, 19:58
|
|
|
|
Гость_Supermax_*
|
28.9.2007, 12:10
|
Guest Forum

|
Еще наверное, а скорее всего - точно, надо и наименование спрашивать, дескать по эффективному имени или укажите тогда атрибут с наименованием изделия.
Добавлено: Создание основного набора - отдельной функцией сделать надо, чтобы ее можно было потом подменить на более крутую, работающую с внешними ссылками.
Если отделить маркировку и позиционирование от основной проги, ограничась простановкой значений в атрибутах и созданием переменных с результатом, то вполне будет рабочий блок.
Сообщение отредактировал Supermax - 28.9.2007, 12:15
|
|
|
|
Гость_Azarko aka VVA_*
|
28.9.2007, 12:26
|
Guest Forum

|
Ну вот, я проснулся. по поводу ТЗ. Соглашения: 1. В динамических блоках разговор о *Unnn не идет 2. Состояние блока определяется его динамическими свойствами или их набором, как-то Visibility, Look up, Distance и т.д. 3. Во избежание накладок, значимые для спецификации свойства должны иметь уникальные имена например параметр длинны не Distanse, а Seekdistanse (например) не Visibility, а TipTrub (или что оно там значит) 4. ТЗ должно выглядеть так 4.1 Из выбранных пользователем объектов, отобрать все динамические блоки с атрибутами "КАТЕГОРИЯ_МАТЕРИАЛА", "НАИМЕНОВАНИЕ_ИЗДЕЛИЯ" и что там еще нужно 4.2 Сгруппировать все по значению атрибута "КАТЕГОРИЯ_МАТЕРИАЛА" В пределах значения атрибута материала используется сквозная маркировка позиций (для труб с 1 до N, для ковров с 1 до N) с занесением полученной позиции в артибут POS В пределах значения "КАТЕГОРИЯ_МАТЕРИАЛА" (например для труб) сгруппировать по "НАИМЕНОВАНИЕ_ИЗДЕЛИЯ" (Труба ДУ-150 , Труба ДУ-159) в пределах одного "НАИМЕНОВАНИЕ_ИЗДЕЛИЯ" (Труба ДУ-150) сгруппировать по значению динамического свойства "Тип,марка,позиция" (Ст 159х4,5-1-ППУ-ПЭ, Ст 159х5-1-ППУ-ПЭ) с сортировкой по возрастанию в пределах полученной группы отсортировать по возрастанию значения динамического параметра SeekDistance с округление до 50 в большую сторону (или до ближайшего 50?). Обновить динамический параметр SeekDistance полученным значением (подравнять блоки) и занести значение в атрибут Dlina Посчитать количество блоков с одинаковым параметром SeekDistance Получаем спецификацию: Трубы поз.1 Ст 159х4,5-1-ППУ-ПЭ Труба ДУ-150 L=2500 6 шт. поз.2 Ст 159х4,5-1-ППУ-ПЭ Труба ДУ-150 L=3000 6 шт. поз.3 Ст 159х5-1-ППУ-ПЭ Труба ДУ-150 L=2500 6 шт. поз.4 Ст 159х5-1-ППУ-ПЭ Труба ДУ-150 L=3000 6 шт. поз.5 Ст 159х4,5-1-ППУ-ПЭ Труба ДУ-159 L=3000 6 шт. Ковры поз.1 красный Ковер персидский L=2500 6 шт. поз.2 красный Ковер персидский L=3000 6 шт. поз.3 синий Ковер бресткий L=2500 6 шт.
Подготовить контрольный пример (файл) с наличием N кол-ва разных блоков и посчитанной спецификацией
Примерно такое ТЗ я жду. Ты этим живешь, поэтому многие вещи, понятные тебе для меня пустой звук (белые буквы на белом фоне).
|
|
|
|
Гость_Supermax_*
|
28.9.2007, 12:37
|
Guest Forum

|
Еще пару моментов.
1. Я уже сделал входную часть проги, которая получает из файла *.xls последовательность сортировки и подсчета элементов. Дело в том, что этот файл (*.xls) является документом сопровождающим проект. Если я сделал спецификацию, используя определенный выбор и порядок, то эта настройка должна быть сохранена, что я и сделал.
Я могу вам прислать эту часть, НО! это уже не разрозненные части лиспа и не функции. Это уже надо беречь, до тех пор пока ЭТО не будет окончательно закончено и оформлено. Если вы хотите миру что-то подарить, то вы должны с начала доказать, что ЭТО ваше, и что оно у вас есть. Я намерен передать продукт в офисы крупных компаний бесплатно, но с оформлением определенных условий (выложить на сайт для бесплатного скачивания, не стирать авторство и т.п.). Поскольку ты Kpblc де-факто соавтор, не плохо было бы сделать это де-юре. И к тебе VVA это тоже относится.
Еще раз предлагаю рассмотреть концепцию. Я выкладываю *.xls и "методы расчета".
Сообщение отредактировал Supermax - 28.9.2007, 16:40
|
|
|
|
Гость_Azarko aka VVA_*
|
28.9.2007, 13:20
|
Guest Forum

|
Цитата Еще раз предлагаю рассмотреть концепцию. Явыкладываю *.xls и "методы расчета". Давай тогда пока не будет оформлено решение в коде, дальнейшие разговоры вести по email/ICQ.
|
|
|
|
|
28.9.2007, 15:02
|
CAD Developer
Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062

|
Открою. Скорее всего, вечером - TDMS, гидрит ее налево, всю малину подпортила. Не вздохнуть. К вечеру, может, подостыну, выскажусь насчет #358. P.S. Supermax, я в ПМ тебе отписался насчет связи со мной.
|
|
|
|
Гость_Supermax_*
|
28.9.2007, 16:36
|
Guest Forum

|
Да я уже сохранил твой манускрипт. Концепцию можно и открыто делать. Вышлю тебе свои перлы только после того, как мы договоримся о дальнейших действиях в плане обязательств при совместной деятельности. Надо что-то делать. Я в начале предлагал попробовать сделать у темы нотариальный надзор. как ты к этому относишся? Ты в Питере, я в Москве, а мог бы быть или в Канаде, или Ташкенте. Как сделать, чтобы стороны зря стук колес не слушали и при этом чтобы не безобразничали? Думай брателло, думай. А пока про мерзопакостное поговорим. Например про *.xls
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
Реклама
ООО «Арктика групп» ИНН: 7713634274
Реклама: ООО «СибСтронг» | ИНН 6670013662 | ERID: 2VtzqvWgxEU
ООО «УНИСПЛИТ» ИНН: 6453155081 erid:2VtzqvybpdW
Реклама: ООО «СЛ-ЛАЗЕР» ИНН 7727447267 | erid: 2VtzquvhFWx
Последние сообщения Форума
|