Реклама i
Стань нашим партнером - зарабатывай с нами!
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Отраслевые разделы > Прочее. Отраслевые разделы > Данные для раскроя (Мебель, и не только)

Данные для раскроя (Мебель, и не только)

Ответ
Поиск в этой теме
Непрочитано 21.05.2004, 22:08
Данные для раскроя (Мебель, и не только)
Don Pedro
 
Designer
 
Кишинев
Регистрация: 21.05.2004
Сообщений: 24

Я (и не только я) использую АвтоКад для 3-х мерного моделирования мебели, применяя для этого солиды.
Само собой, весь ламинат (постоянная толщина - 18мм) находиться на отведенном для него слою.
Задача такова: получить размеры (X,Y) каждой ламинатной детали и записать эти размеры в внешний текстовой файл. Дальше эти данные обрабатываються спецпрограммами для раскроя листового материала (у меня Cutting2).
Сам я эту задачу никогда не решу. Просто не могу понять, как получить размеры детали у которой одна кромка - сплайн (см. пример)
Если бы все детали были прямоугольными тогда задача упростилась бы.

Реально ли сделать лисп для этих целей? Уверен что многим он бы пригодился. А может уже есть что-то готовое?
[ATTACH]1085162980.gif[/ATTACH]
__________________
Via est vita!
Просмотров: 24663
 
Автор темы   Непрочитано 01.06.2004, 15:31
#41
Don Pedro

Designer
 
Регистрация: 21.05.2004
Кишинев
Сообщений: 24
<phrase 1=


Цитата:
Во вторых, перечитайте первый пост данного топика. Там вопрос стоял именно о сплайнах.
Сплайны я использую только для предварительного моделирования, когда клиенту надо быстро дать трехмерную раскраску. Быстро хочеться давать и приблизительную цену (т.е. нужен метраж). Вот для чего я спрашивал насчет сплайнов. Легко могу от них отказаться.

Цитата:
И последнее, размеры на сплайн ставятся элементарно - пара координат XY точки с привязкой _nea например (как вариант - программно получить таблицу координат).
Для чертежа использую дуги - наши мастера не переваривают координатные привязки, только габаритные. Когда у дуги большущий радиус то даю ее хорду (отрезок соединяющий начало и конец дуги) и расстояние между серединами.

С Боз-ом не согласен. Чаще всего меняю существующий солид
__________________
Via est vita!
Don Pedro вне форума  
 
Непрочитано 01.06.2004, 16:21
#42
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Цитата:
Сообщение от Don Pedro
Быстро хочеться давать и приблизительную цену (т.е. нужен метраж). Вот для чего я спрашивал насчет сплайнов. Легко могу от них отказаться.
Тогда быстро вряд ли получится, придется потратить время на рисование нескольких примитивов :roll: А впрочем, BoundingBox выдаст несколько завышенное значение А много - не мало Если управляющая точка сплайна улетит не слишком далеко за габарит - мож никто и не заметит :wink:

Цитата:
.... наши мастера не переваривают координатные привязки, только габаритные.
Наши тоже не переваривают Иногда просто делаю бумажный шаблон 1:1. Ну это скорее по настроению

>all
Чтоб не засорять форум килобайтами кода, код с обещаными (и не только) исправлениями выложил по адресу hhttp://bazarov.net/~vkle/gabarit.zip (3,5 кб)
vk вне форума  
 
Автор темы   Непрочитано 02.06.2004, 13:43
#43
Don Pedro

Designer
 
Регистрация: 21.05.2004
Кишинев
Сообщений: 24
<phrase 1=


Прекрасная работа!
Я даже боюсь начальству показывать, слишком жирно будет!

Пожелания:
1. Сделать опциональное выделение рамкой. Чтобы можно было быстро получить метраж;
2. Выделение цветом солидов у которых присутствуют координаты записанные в расширенные данные;
3. Выделение цветом солидов у которых есть позиция (название детали);
4. Быстрое обнуление всех расширенных данных, а также выборочное обнуление. Или отдельную функцию проверки на соответствие данных с реальными координатами которая запускается перед экспортом в текстовку. (пригодиться когда надо делать изменения в конструкцию)
5. Проверка данных на обязательное наличие одинаковой толщины (толщину запрашивать у пользователя). Солиды у которых нет обозначенной толщины (к примеру 18мм ламинат) помечать цветом для идентификации для дальнейшей ручной установки ПСК.
6. Запись данных в обычный текстовый файл но с расширением .xls
Формат данных:
Координата Х <табулятор> Координата Y <табулятор> Координата Z <табулятор> Позиция

Надеюсь, я не слишком напрягаю.
__________________
Via est vita!
Don Pedro вне форума  
 
Непрочитано 02.06.2004, 18:24
#44
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Ну это еще не самое то... Всего лишь наброски, хотя и практически рабочие.

Вижу, моя прога пригодилась не только мне... По поводу пожеланий:
1) На какой стадии? Если при вычислении габарита - то необходимо исключить то что не стыкуется с текущей ПСК. Тоесть, выбрать нужно только детали лежащие в плоскостях, параллельных плану текущей ПСК и соответствующим образом ориентированных. Пока не знаю, как это решить программно чтоб получилось надежно. ИМХО это самое "интеллектуальное" место.
2 и 3) Сделаю... А каким цветом? :wink: У меня цвет детали как правило ByLayer ("ПоСлою"), а слоям назначаю разные цвета, чтоб в хитросплетениях линий можно было ориентироваться....
Впрочем может быть удобнее скрывать детали у которых есть расширенные данные либо путем замораживания/выключения слоя детали или лучше управлять видимостью (в последнем случае потребуется еще одна малюсенькая функция-команда для восстановления видимости)
4) У меня была аналогичная мысль о проверке на соответствие, но... "см. п.1" Удаление данных (только габаритных) сделаю.
5) Может проще это сделать (во всяком случае увидеть) непосредственно в Экселе (см. п.6)? Хотя, можно попробовать и программно... ИМХО это вопрос не первой срочности...
6) Добавил функцию прямого экспорта в Эксель (OfficeXP), только формат немножко другой (делал под свои нужды). Перед употреблением рекомендуется прочитать комментарии перед программой GAB2EX (в конце Лисп-файла). Адрес прежний http://bazarov.net/~vkle/gabarit.zip (7,3 кб) Не гарантирую что все работает идеально... Времени на всестороннее тестирование почти нет :cry:

Кроме того, у меня есть еще и свое пожелание, которое надеюсь воплотить в... код. Копирование детали из сборки в отдельный файл на этапе вычисления габарита (ПСК то установлена правильно!!!). И соответственно, в Экселевском файле создание гиперссылки на этот файл детали (по определенным правилам). Не знаю, нужно ли это кому кроме меня... Если не нужно, то для себя сделаю отдельные функции.
vk вне форума  
 
Непрочитано 03.06.2004, 14:29
#45
BOZ


 
Сообщений: n/a


Цитата:
Сообщение от vk
Тоесть, выбрать нужно только детали лежащие в плоскостях, параллельных плану текущей ПСК и соответствующим образом ориентированных. Пока не знаю, как это решить программно чтоб получилось надежно. ИМХО это самое "интеллектуальное" место.
Предлагаю. Первоначальный box создать отдельной командой и записать в его расширенные данный в код 1013 значение (0 0 1) - вектор направления выдавливания в МСК.
Если объект будет повернут в пространстве, то это значение изменится. Плоскопараллельный перенос и поворты вокруг Z данное значение не изменят. Будет Вам признак.
 
 
Непрочитано 03.06.2004, 16:25
#46
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


>BOZ
Интересная мысль! Только нужна ориентация детали, полученная после всех преобразований.... Тут еще есть над чем подумать.

>Don Pedro
Забирайте http://bazarov.net/~vkle/gabarit.zip (8,7 кб)
vk вне форума  
 
Автор темы   Непрочитано 03.06.2004, 16:35
#47
Don Pedro

Designer
 
Регистрация: 21.05.2004
Кишинев
Сообщений: 24
<phrase 1=


1. Быстрое вычисление габаритов происходит выборочно при запуске команды gabarit:
Код:
[Выделить все]
Укажите 3DSOLID или [Ucs, Window]  >
Цитата:
Пока не знаю, как это решить программно чтоб получилось надежно. ИМХО это самое "интеллектуальное" место.
Решаеться изучением плоскостей солида.
Вариант 1: Самый большой регион (после взрыва) и есть оптимальная плоскость для ПСК;
Вариант 2: Перебор фэйсов для ПСК. Если в данных GetBoundingBox отсутствует толщина материала (ранее заданная пользователем) то для ПСК применяеться другой фэйс (не знаю если программно так возможно но, имхо, должно работать железно);

Цитата:
2 и 3) Сделаю... А каким цветом? У меня цвет детали как правило ByLayer ("ПоСлою")
У меня точно так же. Для экспорта данных, думаю, надо будет слой изолировать от других (остальные заморожены и скрыты). У меня, к примеру, слой с ламинатом имеет цвет White, а когда текстур больше то применяю оттенки желтого. Думаю эти параметры каждый пользователь должен сам и указать (один раз в жизни ). То есть, самому редактировать лисп. Меня устроит зеленый и темно-зеленый.
Цитата:
Впрочем может быть удобнее скрывать детали у которых есть расширенные данные либо путем замораживания/выключения слоя детали или лучше управлять видимостью (в последнем случае потребуется еще одна малюсенькая функция-команда для восстановления видимости)
Надо оставлять видимыми только те детали у которых в данных нет заданной толщины материала. Если нет толщины - значит деталь криво стоит, значит надо ручками ставить ПСК. ИМХО, проверка на толщину - универсальное решение для листовых материалов. В принципе, в этом весь смысл пункта 5.

6. У меня Офис 2003. Не хочет загружаться.
Код:
[Выделить все]
Command: gab2ex
; error: An error has occurred inside the *error* functionbad argument type: 
VLA-OBJECT nil
Думаю, то что я предлагал выше будет более универсальным решением, такой файл открываеться ЛЮБЫМ Экселем.
Цитата:
6. Запись данных в обычный текстовый файл но с расширением .xls
Формат данных:
Координата Х <табулятор> Координата Y <табулятор> Координата Z <табулятор> Позиция
Цитата:
Копирование детали из сборки в отдельный файл на этапе вычисления габарита
Мне нужно. И по отдельности каждую копировать и все детали копировать и разворачивать в план WCS. Желательно только регионы, а в центре региона текстом вывести позицию детали и габариты.
__________________
Via est vita!
Don Pedro вне форума  
 
Автор темы   Непрочитано 03.06.2004, 16:47
#48
Don Pedro

Designer
 
Регистрация: 21.05.2004
Кишинев
Сообщений: 24
<phrase 1=


Цитата:
>Don Pedro
Забирайте http://vkle.bazarov.net/gabarit.zip (8,7 кб)
Пока писал ответ, вы уже переделали... Респект!
Потестил, хорошо работает!
__________________
Via est vita!
Don Pedro вне форума  
 
Непрочитано 03.06.2004, 17:13
#49


 
Сообщений: n/a


Цитата:
Сообщение от vk
>BOZ
Интересная мысль! Только нужна ориентация детали, полученная после всех преобразований.... Тут еще есть над чем подумать.
Описанный мной вектор как раз всегда и будет всегда указывать на ось Z детали. Припиши еще вектора (1 0 0) и (0 1 0) - будуешь знать и направление осей X и Y.
А если приписать нулевую точку и три точки на габаритах (не помню, кажется в код 1011) то всегда можно будет вычислить и плоскость и габариты (если не было операций).
 
 
Непрочитано 03.06.2004, 17:19
#50
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Цитата:
У меня Офис 2003. Не хочет загружаться
Возможно... в "Excel.Application.10" надо убрать ".10" - в этом случае будет запускаться первый попавшийся в системе Excel.
vk вне форума  
 
Автор темы   Непрочитано 03.06.2004, 18:10
#51
Don Pedro

Designer
 
Регистрация: 21.05.2004
Кишинев
Сообщений: 24
<phrase 1=


Цитата:
Возможно... в "Excel.Application.10" надо убрать ".10" - в этом случае будет запускаться первый попавшийся в системе Excel.
Работает. Спасибо!
Штудирую...

ЗЫ: У данных XYZ четыре лишних нуля.
__________________
Via est vita!
Don Pedro вне форума  
 
Непрочитано 03.06.2004, 18:38
#52
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Цитата:
У данных XYZ четыре лишних нуля
Вобще то я так и делал: передавал в Excel число с несколько завышенной точностью. Разрядность отображения чисел установлена в файле шаблона .xlt и для XYZ в моем варианте установлен один знак после запятой. Почему может отображаться 4 знака... Возможно, дело в настройках Excel'я Сервис -> Параметры -> Международные -> Числа -> там должна быть выбрана запятая (,) или системные настройки, если в них запятая установлена....
Можно в принципе автоматически настраивать Excel, но эта настройка хранится кажись в системе а не в файле и будет распространяться на другие файлы.
Вроде бы у нас принята запятая в качестве разделителя, а в Лиспе используется точка. Поэтому в проге сделана замена точки на запятую
Код:
[Выделить все]
          xyz  (mapcar '(lambda (x) (vl-string-subst "," "." (rtos x 2 4))) ;_ здесь задана завышенная точность размеров
                       (cdr (assoc 1010 (cdadr (assoc -3 delt))))
               ) ;_  mapcar
В принципе, если надо оставить точку - можно слегка подсократить
Код:
[Выделить все]
          xyz  (mapcar '(lambda (x) (rtos x 2 4)) ;_ здесь задана завышенная точность размеров
                       (cdr (assoc 1010 (cdadr (assoc -3 delt))))
               ) ;_  mapcar
Количество знаков после запятой для экспорта определено 4 в третьем аргументе rtos
vk вне форума  
 
Автор темы   Непрочитано 03.06.2004, 19:21
#53
Don Pedro

Designer
 
Регистрация: 21.05.2004
Кишинев
Сообщений: 24
<phrase 1=


Лишние нули находяться до запятой, а не после.
То есть речь о точности не идет.
Код:
__________________
Via est vita!
Don Pedro вне форума  
 
Непрочитано 03.06.2004, 19:40
#54
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Только что перепроверил... Все верно работает.... Как на "круглых" размерах, так и на дробных....
Может это проблема 2003 офиса или каких то региональных настроек?
vk вне форума  
 
Непрочитано 03.06.2004, 23:01
#55
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Цитата:
Запись данных в обычный текстовый файл но с расширением .xls
Формат данных:
Координата Х <табулятор> Координата Y <табулятор> Координата Z <табулятор> Позиция
Сделал, тока расширение оставил прежним. Все ж натуральный Excel хочу оставить основным, а текстовый формат - это так.... "постольку поскольку".... или "на всякий случай".
vk вне форума  
 
Непрочитано 04.06.2004, 10:03
#56
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Большое спасибо BOZ за подсказку по 1011 группе DXF!!! Кажется должно получиться!

>Don Pedro
Добавил групповой выбор. Для чего мигалка - надеюсь понятно. А пищалка мне пригодицца . Некоторые примитивы обсчитываются долго. То ли комп слабоват, то ли наворочены они слишком.... :roll: Попробовал для ускорения выцепить функцию из OVERKILL (из Экспрессов-2002). Не знаю как на других версиях... Если не пойдет - выкиньте тот (if c:-overkill.....
vk вне форума  
 
Автор темы   Непрочитано 04.06.2004, 17:49
#57
Don Pedro

Designer
 
Регистрация: 21.05.2004
Кишинев
Сообщений: 24
<phrase 1=


Мигалка - хорошая идея! Только работает после ввода позиции, что сводит ее практическое применение к нулю. Надо чтоб мигало перед вводом позиции, или чтоб окрашивалось в другой цвет, задаваемый пользователем вручную в лиспе.

Ключ Select. После выделения рамкой, цифры записанные в расширенные данные не соответствуют реальным измерениям
__________________
Via est vita!
Don Pedro вне форума  
 
Непрочитано 04.06.2004, 19:30
#58
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Увлекся ПСК - позабыл про все на свете... И про цифирь тоже...

Мигалку не подумавши в последний момент переткнул, типа чтоб не мигала при одиночном выборе.... Изначально ее место было немного повыше

Исправил и то и это.
vk вне форума  
 
Непрочитано 05.06.2004, 05:17
#59
BigBrother

Design & programming :)
 
Регистрация: 14.02.2004
Новосибирск
Сообщений: 172
<phrase 1= Отправить сообщение для BigBrother с помощью Skype™


>vk Большое спасибо BOZ за подсказку по 1011 группе DXF!!! Кажется должно получиться!

В развитие этой темы: если примитивы создавать программно и не редактировать их с изменением габаритов, то можно анализируя XDATA создавать полки, фасады, ящики, расставлять крепеж своими командами.
Что однозначно быстрее средств Автокада, но тут есть одно НО!
Обеспечить редактирование программно - очень большой головняк.
А ведь всем нам хорошо знакомо это волшебное слово "согласование".
:evil:
Именно поэтому перешел на МДТ, а потом на 3D-Constructor.

2vk Если интересуют исходники, тулзовина такая написана, но заброшена еще в 2001г. :roll: Может пригодится?
BigBrother вне форума  
 
Непрочитано 05.06.2004, 17:42
#60
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


>BigBrother
Спасибо за предложение, однако, мне в ближайшее время точно не пригодится. По тем же самым "волшебным" причинам. В том то и дело, что сейчас проще ручками поправить проблемные места в модели, а если все будет построено на программной правке - головняка не избежать

Чем привлекает Инвентор - так это асоциативность деталей. Стоит изменить один размер - и все что с ним связано тоже автоматом подстраивается, меняется.... Конечно если все зависимости сделаны правильно . Вплоть до размерного текста в чертеже детали! Впрочем, это не исключает необходимость применения мозгов :!: только освобождает от рутинной работы... Останавливает только пока еще скромный его функционал. По крайней мере в 7 версии, с которой знаком. Впрочем, надеюсь что сия софтина будет развиваться...

>Don Pedro
Копирование деталей из сборки в отдельные файлы - сделал свою версию. Если деталь имеет позицию и сохраненную ПСК (а сохраняется они с деталью при вычислении габарита) - то она будет скопирована в отдельный файл в указанную папку (папки должны быть созданы заранее, имена папок не должны содержать пробелов). Ориентация и расположение детали в конечном файле определяется ПСК, которая сохранена в момент вычисления габарита. Позже постараюсь добавить еще и прописывание гиперссылок на эти файлы в экселевский файл.
Кстати, что все таки с лишними нулями? И откуда точка взялась? Должна вроде быть запятая... К сожалению нет под руками 2003 Офиса чтоб проверить подробно...
vk вне форума  
Ответ
Вернуться   Форум DWG.RU > Отраслевые разделы > Прочее. Отраслевые разделы > Данные для раскроя (Мебель, и не только)

Размещение рекламы