|
  |
Создание спецификации автоматически (Дубль2), Рассматриваются технология и ее реализация по автоматическому создани |
|
|
Гость_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
|
|
|
|
Гость_Supermax_*
|
28.9.2007, 19:59
|
Guest Forum

|
Изменил ТЗ! Оно стало более точным.
|
|
|
|
Гость_Supermax_*
|
28.9.2007, 20:48
|
Guest Forum

|
Я немного пословоблудю. Да простят меня хозяева этого сайта, но видимо без рассказа о своей фирме и том, что я делаю просто никак не обойтись. Я себя оболью клеем и посыплю перьями, чтобы не сочли это за рекламу, но суть своей деятельности и то, что следует за этим, придется открыть. И так: Как называется моя фирма не суть важно, хотя кому надо уже знают. Занимается она «Виртуальным строительством» то есть, по готовым проектам строим в компьютере «Модель тела» и «Модель действий». На основе этих двух моделей создается потом подрядчиками ПОС и ППР. Когда на стройке 15 субподрядчиков – очень трудно сделать так, чтобы они не бились лбами друг о друга. Чтобы строить «муравейником» надо все очень тщательно спланировать и проверить попутно проект, на предмет «хомутов» проектировщиков. Сделать резервы по снабжению, выработать регламенты, технологические карты составить (в том числе и сводные) и т.д. и т.п. Модель здания к примеру, логически разделена на этапы строительства и когда модель готова, с нее очень удобно получать такую информацию как затраты на такой-то этап, или очень быстро перепланировать снабжение. Форс-мажоры – это можно сказать норма на строительном участке и скорость их решения и скорость адаптации к существующей ситуации определяет размер финансовых потерь от простоев, перерасходов и пр. не приятных последствий. Существующие способы планирования можно описать очень просто. Суем палец в чернильницу и проводим на графике полосы, ковыряясь чистым пальцем в носу. Даже если графики составлены очень скрупулезно, то все равно они и рядом не лежали с пооперационным планированием и нормировками на эти виды операций. И про такое явление как саботаж не забыто. И на эту напасть есть управа. Про социальную психологию тоже не забыто. Мотивирование труда очень сильно влияет на технологию производства и управления, а уж на финансирование как влияет – сказать страшно. Многое, что есть рассказать, да влом стучать по клаве. Так вот для меня самое главное это этап строительства и уж на его фоне я рассматриваю отдельные инженерные системы и строительные объемы. Конечно, иногда и про все сразу спрашивают, но гораздо реже, чем в частности. Проектирование надо развивать таким образом, чтобы это действо не сдыхало, как только вышло за порог проектной организации, а продолжало приносить пользу и на строительном участке. Переход к 3D моделированию и применению при этом «виртуальных изделий» дает возможность прямо на строительном участке крутить модель объекта, измерять его, изменять, создавать новые ведомости закупочных элементов, вносить изменения и быстро их пересчитывать. Вот по этому я и не согласен с концепцией элементных баз. Сама модель должна быть такой базой. Для простого проектировщика наружных сетей, конечно все это слишком глобально, но решение этой глобальной задачи (а мы ее уже почти решили, теоретически) вполне подойдет для его мелкособственнических интересов.
|
|
|
|
|
29.9.2007, 14:11
|
CAD Developer
Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062

|
Пока дите спит, попробую ответить сразу и на ТЗ, и на все остальное. > #361: См.ПМ > #393: Сильно смахивает на PDM-систему... > #355: Я б делал все же модульную систему, аналогичную ruCAD или CADWare (хотя в этом смысле они близнецы). То есть рисуется сотня лиспов, каждый из которых делает одну часть работы, а потом они объединяются. Как пример можешь посмотреть http://dwg.ru/forum/viewtopic.php?t=15926&start=28 - там просто библиотечные функции забиты внутрь одной. Функция нумер раз: 1. Не оспаривается. 2. Я бы сделал конт.меню. Сначала указываются неиндесируемые свойства, следом - индексируемые. 3. Если в п.2 было выбрано неиндескируемое свойство, то запрос значения округления. Для индексируемого шаг пропускается. 4. Критериев округления несколько: в "+", в "-", "к ближайшему" и "не изменять" - для неиндексируемых свойств. Для индексируемых: "оставить как есть" или "установить ближайшее к ..." 5 и дальше. Не оспаривается. Вопрос только один: что делать с объектами таких же блоков, лежащих внутри других блоков или внешних ссылок (ессно, что эти "другие" блоки попали в набор)? Функция нумер два: предлагаю просто при необходимости создавать или модифицировать новый атрибут внутри блока: "POS" - для номера позиции; "MATERIAL" - для обозначения материала (хотя, если уже есть дин.свойство аналогичное, неочевидна необходимость этого, может, из дин.свойства брать?) ну и тому подобное. То есть вопросы по пп.1-3. Пп.4-7 - проще сделать dcl-окно динамически, чем заморачиваться. Дальнейшее не очень понял. Но вот зачем хранить в памяти... Добавлю: может, проще будет делать выноски программно? P.S. Смотрю на xls как баран на новые ворота, ничего не понмаю  Думаю, что пройдет, и я до всего допетрю
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
Реклама
ООО «Арктика групп» ИНН: 7713634274
Реклама: ООО «СибСтронг» | ИНН 6670013662 | ERID: 2VtzqvWgxEU
ООО «УНИСПЛИТ» ИНН: 6453155081 erid:2VtzqvybpdW
Реклама: ООО «СЛ-ЛАЗЕР» ИНН 7727447267 | erid: 2VtzquvhFWx
Последние сообщения Форума
|