Нумерация по спецификации ?
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Нумерация по спецификации ?

Нумерация по спецификации ?

Ответ
Поиск в этой теме
Непрочитано 12.08.2008, 18:38 #1
Нумерация по спецификации ?
Dmitry AD
 
инженер-проектировщик
 
Москва
Регистрация: 12.08.2008
Сообщений: 64

Коллеги! Каким образом можно сделать автоматическую нумерацию объектов (оборудования) по спцификации (спецификация с нумерацией в формате Excel).
Желательно нумерация блоков должна быть мобильной (можно было бы менять расположение цифр на чертеже, для создания читаемого чертежа)
з.ы. AutoCAD 2005
Просмотров: 23387
 
Автор темы   Непрочитано 13.08.2008, 15:03
#2
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Я приблизительно понимаю, что это делается при помощи изменяемого атрибута и макроса, но как это в действительности выглядит и каким образом это воплотить в жизнь....
Dmitry AD вне форума  
 
Непрочитано 13.08.2008, 15:37
#3
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Dmitry AD!
Я "программер-любитель". Могу попробовать решить твою задачку на VBA (лисп пока не осиляю).
Можешь подробнее описать ситуацию. Желательно файл чертежа и екселя (я так понял: "спецификация с нумерацией в формате Excel" - это значит в файле екселя).
А объекты оборудование - в виде блоков или как?
Ну а насчет: "что это делается при помощи изменяемого атрибута" - реализовать можно по разному, как удобнее, например можно выносками. А насчет атрибута, он внутри блока оборудования (если это блок) уже есть и ему надо просто нужное значение присвоить по спецификации, ты это имел ввиду?
Короче без фалов сложно разобраться.
Vildar вне форума  
 
Непрочитано 13.08.2008, 15:58
#4
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, տ.գ.թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,990
Отправить сообщение для Red Nova с помощью Skype™


Dmitry AD,
Вопрос очень расплывчатый. Нужно более подробное описание + файл примера.
__________________
Блог
Red Nova вне форума  
 
Автор темы   Непрочитано 13.08.2008, 16:15
#5
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Vildar спасибо за отклик,
Алгоритм моих действий таков:
1.Делаю чертеж, расставляю оборудование, делаю спецификацию (через Attribute Extract)- выгружаю в Excel,
2.макросом форматирую спец-ю в Excel(форматированая спец-я приложена)-получается файл спецификации с нумерацией.
3.Далее согласно полученой спецификацией с нумерацией (порядковый номер) в спеке я расставляю ВРУЧНУЮ номера оборудования! а ведь его колличество может быть весьма большим (300-400 позиций)....

В идеале-Хотелось бы получить горячую кнопку на панеле инструментов, позволяющую раставлять нумерацию, согласно спецификации АВТОМАТИЧЕСКИ...


[ATTACH]Вложение 9260[/ATTACH]
Dmitry AD вне форума  
 
Непрочитано 13.08.2008, 16:17
#6
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450


Поищи по форуму по словам "нумера*" и "автонумер*" - думаю, найдешь что хочется.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 13.08.2008, 16:17 файлы
#7
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Пробую еще раз подкрепить файлы...
Вложения
Тип файла: rar Спецификация об-я.rar (3.1 Кб, 197 просмотров)
Тип файла: dwg
DWG 2004
оборудование.dwg (176.6 Кб, 1973 просмотров)
Dmitry AD вне форума  
 
Автор темы   Непрочитано 13.08.2008, 16:19
#8
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


kpbIc, два дня искал- именно того не смог найти...
С тем и обращаюсь.
Dmitry AD вне форума  
 
Непрочитано 13.08.2008, 16:35
#9
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Теперь давай файл чертежа что в итоге должно получиться.
Непонял из #5:
спеке я расставляю ВРУЧНУЮ номера оборудования!"
Что это такое, спека?
Vildar вне форума  
 
Непрочитано 13.08.2008, 16:39
#10
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Кстати, я так понял ты "сантехник", ну или как это правильно называется спец. по инженерным-системам.
Скажи в чем расчеты делаешь.
Вот тут напиши пожалуйста: http://dwg.ru/f/showthread.php?t=10846

Последний раз редактировалось Vildar, 13.08.2008 в 16:45.
Vildar вне форума  
 
Автор темы   Непрочитано 13.08.2008, 16:40
#11
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Пардон - опечатался! (мозг кипит)
конечно же на чертеже раставляю вручную нумерацию!
спека- сокращенно спецификация.
А в итоге должно получиться как раз то, что на чертеже. (оборудование, над которым в отдельном слое NUNBER стоят номера оборудования по спецификации)
Т. е исходник - это тот же чертеж, только без номеров.
Dmitry AD вне форума  
 
Автор темы   Непрочитано 13.08.2008, 16:41
#12
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


не, я не сантехник ))) я инженер-технолог!
занимаюсь подбором и растановкой технологического оборудования для ресторанов согласно норм!
Dmitry AD вне форума  
 
Автор темы   Непрочитано 13.08.2008, 16:43
#13
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Смотрел...
Только просчетов я не делаю.
только указываю точки вывода коммуникаций для оборудования.
Dmitry AD вне форума  
 
Непрочитано 13.08.2008, 17:40
#14
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Черт, не засек цыфирьки, у меня черный фон стоит.
Пока ничего не понимаю!
Почему атрибуты в блоках не используешь?
Я переделал один блок. Так пойдет. Еще можно добавить атрибуты для других параметров оборудования - длины, ширины и т.д. (ты их в екселе вручную забиваешь?)
И перенос в ексель делать не через ЕкстрактАтрибутов. Т.е. будут две кнопки, "экспотр в ексель" и "импорт из екселя", ятд.
Если согласен на эти изменения, то я попробую. У меня есть еще неделя свободная.
Потому что, как сейчас у тебя выглядит чертеж, я не представляю реализацию.
Вложения
Тип файла: dwg
DWG 2004
оборудование_Vil.dwg (191.4 Кб, 1884 просмотров)
Vildar вне форума  
 
Автор темы   Непрочитано 13.08.2008, 18:12
#15
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


У меня серый фон ))) поэтому отлично все видно)

Я атрибуты в блоках использую для составления спецификации.
А так мне атрибуты больше не нужны. Ну теперь еще можно будет использовать для нумерации )))

Параметры оборудования (длину, ширину) вытаскиваю из общей базы оборудования (поиск по атрибуту) она у меня в екселе. И мне в принципи не нужно забивать габариты и остальные параметры.
-Я отослал файл ексель без формул, что бы читался без ошибок так он кишит ссылками (прилагаю).

А если номер в спецификации поменять он на чертеже автоматом изменится, или надо заново импортировать из экселя?

И каким другим образом можно экспортировать в эксель?
Вложения
Тип файла: rar Сп. с формулами.rar (8.0 Кб, 147 просмотров)
Dmitry AD вне форума  
 
Автор темы   Непрочитано 13.08.2008, 18:13
#16
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


А так - это то,что я хотел!
Только каким образом это сделать?
Dmitry AD вне форума  
 
Непрочитано 13.08.2008, 19:19
#17
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Ситуация немного проясняется! Но есть некоторые моменты.
У тебя внутри блока, лежит блок с атрибутом кода. Зачем вкладывать блок внутрь блока? Буду делать просто атрибуты.

План такой.
Есть куча блоков на чертежен с атрибутами вида:
НомерКода1, НомерКода2, и т.д. сколько будет столько и будет в ексель переноситься. И соответственно столько же атрибутов с номером позиции - Номер1, Номер2 и т.д., начальное значение которых по-барабану, 0 например. Поправь, как тебе удобно обозвать атрибуты.
Жмакаешь на "экспорт" - выделяешь блоки - открывается ексель с таблицей атрибутов (кодов и т.д.).
Редактируешь таблицу.
Жмакаешь "импорт" - соответсвующим блокам и атрибутам присваиватся номера из екселя - все.
При изменении в екселе, жмакаешь опять "импорт", и т.д.
Ну я начну, а там посмотрим что получится.
На счет недели я ошибся ( сегодня же уже среда, кончается (( до понедельника имел ввиду, может успею.
С екселем из акада еще не было опыта работы.
ХЗ получится или нет.
Vildar вне форума  
 
Непрочитано 13.08.2008, 19:27
#18
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Offtop:
Ерунда какая-то. У меня подключение через GPRS сотика, так вот, опера то работает то нет, а IE при этом работает.
В чем может быть дело?

Последний раз редактировалось Vildar, 13.08.2008 в 19:46.
Vildar вне форума  
 
Непрочитано 14.08.2008, 01:10
#19
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450


Как бы делал я: во-первых, базу хранить не в xls-файлах (хотя и до их состава можно достучаться лиспом или VBA; анализа просто много надо прописывать). Атрибут, который "достается с помощью ExtractAttributes" - значение ключевого поля соответствующей таблицы БД. Имя оборудования, его описание, остальные данные из базы - соответствующие поля той же таблицы. Во-вторых, полностью меняется логика работы: из-под AutoCAD'a вызывается специально разработанное окно обращения к БД. Пользователь в этом окне выбирает нужное оборудование (например, по наименованию - способ отображения определять явно не мне), жмет на кнопку "вставить" и вставляет блок оборудования в поле чертежа. Внутри блока нет никаких атрибутов и прочей шелухи, которую (по злобе или по глупости) может изменить конечный пользователь - все данные (хотя чего там - "данные"... Код оборудования и больше ничего не требуется) хранятся в областях, простому смертному недоступных (например, расширенные данные, или ldata, или словари - вариантов тьма). После окончания расстановки оборудования пользователь жмет еще одну кнопень (типа "составить спецификацию"), определяет область чертежа, с которой надо собирать данные, а программа (имеется в виду не AutoCAD, а собственная разработка) сама собирает все данные, сортирует их по заранее определенным и неизменяемым законам и проставляет номера позиций, сводя все в единую таблицу.
Конечно, это все можно потом наращивать и наращивать (ну, например, решить - обрабатывать только текущий файл или какой-либо иной; обрабатывать или нет внешние ссылки; где хранить и хранить ли вообще номера позиций), но начало надо проработать достаточно серьезно.
Кода будет очень много. И тестирования - тоже.
И вот теперь вопрос - а почему б не попробовать использовать МЕР? Он же вроде ориентирован именно на подобные штуки. Его наладка тоже не сахар, но по крайней мере не надо изобретать велосипед...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 14.08.2008, 09:24
#20
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Спасибо Алексей. Это будет следующим этапом моего развития. Пока не дорос(!?).
Сделаю по простому.
Что ты имел ввиду, в первой строчке #19, какой анализ? Проверка наличия Екселя, версия, открыт ли он, активный документ, что еще может быть. [I/]Еще нужна проверка содержания, при обратном переносе данных из екселя, вдруг данные будут несоответсовать или вообще из другой области.[/i]

Второстепенный вопрос. На какие штуки оринентирован МЕР? Имеется ввиду собственные объекты оборудования в библиотеке, с описанием характеристик, и дальнейшее составление спецификаций, и без всякого программирования, так!?

Последний раз редактировалось Vildar, 14.08.2008 в 09:38.
Vildar вне форума  
 
Непрочитано 14.08.2008, 09:55
#21
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450


Нет, анализ - в каком столбце чего хранится. Евгений Елпанов писал в свое время лисп по доступу в Excel'ным файлам через ADO, но там были какие-то ограничения (сейчас навскидку не помню, а искать просто некогда - посмотри на caduser.ru в разделе "Готовые программы").
Цитата:
Имеется ввиду собственные объекты оборудования в библиотеке, с описанием характеристик, и дальнейшее составление спецификаций, и без всякого программирования, так!?
Основываясь на собственном опыте ADT и тому, что я видел при обучении по МЕР (учили других, я только шпионил), так оно и есть.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 14.08.2008, 10:07
#22
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Капец! Фатал еррор нападает!
Первый раз запускаю макрос, все нормально. Ну, как нормавльно, до Екселя доходит, а там пока не порядок, есть ошибки; останавливаю; подправляю, и при повторном запуске - фатал ерор. Постоянно.
Раньше это было редко.
Какие методы борьбы с ним есть?
Vildar вне форума  
 
Непрочитано 14.08.2008, 10:25
#23
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450


А надо просто освобождать память, занятую Excel'ом, освобождать файл и т.п. Я не зря сказал про порочность использования xls в качестве БД...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 14.08.2008, 11:13
#24
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Странно, прошло само сабой!
Фатал возникал при создании нового набора selSetBlock:
Код:
[Выделить все]
strSelName = "БдокиОборудования"
   For Each selSetItem In ThisDrawing.SelectionSets
      If selSetItem.Name = strSelName Then
         selSetItem.Clear
         selSetItem.Delete
      End If
   Next
   Set selSetBlock = ThisDrawing.SelectionSets.Add(strSelName)
Vildar вне форума  
 
Автор темы   Непрочитано 14.08.2008, 12:10
#25
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Vildar, касаемо вопроса:
У тебя внутри блока, лежит блок с атрибутом кода.Зачем вкладывать блок внутрь блока?

Ответ:
Я не вкладываю блок с арибутом в бок оборудованя.
Когда я достаю об-е из базы через меню (.mnu)- оно выходит единым блоком- все слои блоком.
Существует некая база оборудования - много файлов с отрисованым оборудованием в формате dwg (оборудование в базе находится НЕ в блоке и имеет несколько слоев, в одном из слоев лежит атрибут (код оборудования).
И у каждой позиции об-я в базе есть свой атрибут (код об-я), а то и несколько кодов(составляющие об-я)

А касаемо :
Есть куча блоков на чертежен с атрибутами вида:
НомерКода1, НомерКода2, и т.д. сколько будет столько и будет в ексель переноситься. И соответственно столько же атрибутов с номером позиции - Номер1, Номер2 и т.д.

Если я правильно понял, нужно к оборудованию в базе добавить атрибуты для номеров?
Но у меня в базе оборудования (более 1000 позиций) нет АТРИБУТОВ С НОМЕРАМИ. Эти атрибуты (НОМЕРА) должны выдаваться автоматом. Не имея заранее атрибута номера.

Я не умею экспортировать атрибуты в эксель кроме как Экстракт атрибут.
И не умею импортировать данные из экселя в кад (номера для блоков) (((

ДЛЯ Кулик Алексей aka kpblc

Хранить базу в экселе- это необходимость, т.к. она обновляется в эксель файле и так с ней удобнее работать.

касаемо:
Атрибут, который "достается с помощью ExtractAttributes" - значение ключевого поля соответствующей таблицы БД. Имя оборудования, его описание, остальные данные из базы - соответствующие поля той же таблицы
Так и происходит )

По предложению:
-вызывается специально разработанное окно обращения к БД.

Так и есть - создана менюшка, с ниспадающим списком, из которого выбирается об-е и ставится в чертеж.
Но внутри блока есть атрибут с кодом об-я (благодаря которому я и делаю спец-ю) с помощью ExtractAttributes-вытаскиваю коды в лист Excel, далее макрос из базы данных Excel (где как раз и есть все данные) добавляет необходимые ячейки, форматирует спецификацию.

Но атрибут (код об-я) пользователи должны видеть (для проверки и наглядности)

По поводу:
Конечно, это все можно потом наращивать и наращивать (ну, например, решить - обрабатывать только текущий файл или какой-либо иной; обрабатывать или нет внешние ссылки; где хранить и хранить ли вообще номера позиций),

Это все не требуется, нужно только по сформированой спецификации из формата Excel вытащить порядковые номерки и поставить их на оборудование.

ВОТ )
Dmitry AD вне форума  
 
Непрочитано 14.08.2008, 12:40
#26
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Тогда, возвращаюсь к изначально поставленной задаче, переносу нумерации из екселя в чертеж.
Как что нить будет готово напишу.
Vildar вне форума  
 
Непрочитано 14.08.2008, 12:49
#27
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450


Е-мое... А написать интерфейс так, чтоб пользователю было удобно с ним работать не судьба? И "что там и где хранится" - дело не пользователя. Он может хоть с MS SQL Server работать, не подозревая об этом.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 14.08.2008, 13:04
#28
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Кулик Алексей aka kpblc, на что именно такая реакция?
Я токма учусь!
Vildar вне форума  
 
Непрочитано 14.08.2008, 13:05
#29
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450


Это реакция была на Dmitry AD, к тебе касательства не имеет.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 14.08.2008, 13:07
#30
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Алексей, конечно было бы неплохо создать удобный интерфейс, при условии, если умеешь это делать и есть непосредственная в этом необходимость. Но на данном этапе это мною скорее всего не осуществимо в виду совсем не глубоких моих знаний акада, посему такие мысли в голове не держу. Есть необходимость лишь в упрощении, и ускорении работы. Вероятно, через некоторое время, проникшись всеми прелестями и возможностями програмирования я и задумаюсь об этом, но не сейчас.
Dmitry AD вне форума  
 
Непрочитано 14.08.2008, 13:17
#31
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Отлегло, фуу...
Offtop: Твои критические высказывания действуют примерно также как путинские на мечел -> фондовый рынок чуть не рухнул
У меня такой реакции к Dmitry AD не возникло. Понятно только, что картина описанная в #25 не простая, мне не разобраться. С БД и АДО я не знаком.
Как ты понял, что там у него к чему?
Vildar вне форума  
 
Автор темы   Непрочитано 14.08.2008, 14:55
#32
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Vildar ,
Подскажи, каким образом ты подвизал нумерацию к спецификации в приведенном тобой варианте решения проблемы #14 ?
Dmitry AD вне форума  
 
Непрочитано 14.08.2008, 15:09
#33
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Цитата:
Сообщение от Dmitry AD Посмотреть сообщение
Vildar ,
Подскажи, каким образом ты подвизал нумерацию к спецификации в приведенном тобой варианте решения проблемы #14 ?
Ручками
В том то и проблема, что номера из екселя непонятно куда вставлять. Можно найти нужный блок по коду. А куда текст с номером вставлять непонятно. Анализировать габариты блока - сложно. Можно попробовать рядом с кодом вставлять (определять по точке вставки кода внутри блока), или прямо поверх кода.
Вообщем еще не готово, подожди.
Vildar вне форума  
 
Непрочитано 14.08.2008, 17:04
#34
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450


> #31: Все очень просто - я сам занимался аналогичной задачей. Правда, у меня и отрисовка блоков в результате была программной
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 15.08.2008, 11:41
#35
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Vildar,
нашел один пример, но не понятно к чему привязывается нумерация- атрибута с кодом нет!
Вложения
Тип файла: dwg
DWG 2004
пример нумерации.dwg (40.7 Кб, 1239 просмотров)
Dmitry AD вне форума  
 
Непрочитано 15.08.2008, 12:23
#36
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Цитата:
Сообщение от Dmitry AD Посмотреть сообщение
Vildar,
нашел один пример, но не понятно к чему привязывается нумерация- атрибута с кодом нет!
Как раз в этом примере сделано правильно (имхо).
Блоки с атрибутами. (меня немного смущает нумерация - под 400)
Я так и предлагал. Значение атрибутов с номером позиции "импортировать" из Екселя.
Если у тебя чертежи будут в таком виде, тогда мне проще будет. Но судя потому, что ты написал в #25 - это невозможно.

А так, я щас на проблеме из #33 застопорился.
Ты продолжай "терроризировать" гуру. Потому что, даже если у меня что-то получится сделать на своей машине, то не факт что у тебя будет фурычить. Например с версией Екселя может быть проблема. У тебя какая версия?
Vildar вне форума  
 
Автор темы   Непрочитано 15.08.2008, 13:07
#37
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Хорошо, давай значение атрибутов с номером позиции "импортировать" из Екселя.
Но спецификацию я считаю все равно по атрибутам с кодом об-я!

по#33 проблеме:
А если никак не привязывать, по умолчанию циферки сами над атрибутом не встанут?
Ексель 2003 года!

Давай хоть как нибудь попробуем, а то мой мозг рарывается от колличества обработаной информации!
Dmitry AD вне форума  
 
Непрочитано 15.08.2008, 13:40
#38
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Цитата:
Сообщение от Dmitry AD Посмотреть сообщение
Хорошо, давай значение атрибутов с номером позиции "импортировать" из Екселя.
Но спецификацию я считаю все равно по атрибутам с кодом об-я!

по#33 проблеме:
А если никак не привязывать, по умолчанию циферки сами над атрибутом не встанут?
Ексель 2003 года!
Над этим и работаю. Идея такая: текст (DText) с номером позиции будет вставляться в точку = положению блоку с атрибутом кода (с учетом поворота блока). Конечно это не совсем то что нужно. Ведь атрибут с кодом находится как бы ниже самого блока.
Цитата:
Сообщение от Dmitry AD Посмотреть сообщение
Давай хоть как нибудь попробуем, а то мой мозг рарывается от колличества обработаной информации!
Как только, так сразу "Потерпи браток, не умирай (отвлекай) пока ..." (С) Любе
Еще такая фигня, мероприятие на сегодня-завтра намечается rinks:
Так шо возможна небольшая задержка.
"Зуб даю" в воскресенье "хоть как нибудь" - будет!
Vildar вне форума  
 
Непрочитано 17.08.2008, 11:38 "Хоть как нибудь"...
#39
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Тестовый вариант.

Прикладываю zip с макрсом, исходные чертежи и тот вид спецификации в Екселе на который все расчитано. Положение строк и столбцов должно ей соответствовать.

Номер оборудования ставиться над атрибутом кода. Как и говорил. Лучше не придумал.
Еще есть вопрос по масштабу. Какой высоты текст вставлять? Пока сделал тупо 100, как у тебя на чертеже.

На кнопку можешь повесить такой макрос:
Код:
[Выделить все]
^C^C_-vbarun "D:/Vildar/Программироване/DWGRU/Dmitry AD/BlockNum.dvb!ImportNum.Main"
Путь свой конечно напиши.
Перед запуском макроса, должен быть открыт Ексель со спекой!

Главное! В случае ошибки, а она будет, уверен на 99%, жми Debug, снимай скрин ошибки и скрин кода в месте ошибки, буду разбираться.

PS Кажись зубы целые остануться
Вложения
Тип файла: rar Спецификация об-я.rar (3.1 Кб, 91 просмотров)
Тип файла: dwg
DWG 2004
оборудование.dwg (182.5 Кб, 1245 просмотров)
Тип файла: zip BlockNum.zip (34.6 Кб, 113 просмотров)
Vildar вне форума  
 
Автор темы   Непрочитано 18.08.2008, 11:18
#40
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Vildar,
Макрос скинул себе, путь изменил, значок поставил, нажимаю- вылетает ошибка, как ты иговорил!
Миниатюры
Нажмите на изображение для увеличения
Название: ошибка.jpg
Просмотров: 96
Размер:	58.4 Кб
ID:	9384  
Dmitry AD вне форума  
 
Автор темы   Непрочитано 18.08.2008, 11:53
#41
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Vildar,
Нарыл такой макрос, он вроде по смыслу похож на твой, по крайней мере в описании так было написано.
Посмотри...
Вложения
Тип файла: rar ChangeAttributes.rar (73.2 Кб, 92 просмотров)
Dmitry AD вне форума  
 
Непрочитано 18.08.2008, 12:17
#42
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Щас буду искать как библиотеку для 2003 Excelя подключить.
Может здесь кто-нибудь поможет?
Vildar вне форума  
 
Непрочитано 18.08.2008, 12:44
#43
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Dmitry AD, попробуй так:
В редакторе VBA (где скрин снимал) подключи библиотеку Екселя. Tools->References->Microsoft Excel 11.0 Object Library

PS Это хорошо еще что Фатал еррор не выходит.
Vildar вне форума  
 
Непрочитано 18.08.2008, 13:08
#44
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450


Лучше тогда уж использовать позднее связывание (ИМХО, как всегда)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 18.08.2008, 13:24
#45
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Через Object
Типа:
Код:
[Выделить все]
Dim ExcelApp As Object
А потом:
Код:
[Выделить все]
Set ExcelApp = GetObject(, "Excel.Application")
Вложения
Тип файла: zip BlockNum.zip (35.7 Кб, 78 просмотров)
Vildar вне форума  
 
Автор темы   Непрочитано 18.08.2008, 14:20
#46
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Vildar,
Происходит следующее:
Заменил макрос.
Снова вылетела ошибка, только в след. строке.
Окно References не активно.
Dmitry AD вне форума  
 
Автор темы   Непрочитано 18.08.2008, 14:21
#47
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Приложеный файл с ошибкой:
Миниатюры
Нажмите на изображение для увеличения
Название: Опять ошибка выскочила.jpg
Просмотров: 77
Размер:	55.1 Кб
ID:	9392  
Dmitry AD вне форума  
 
Непрочитано 18.08.2008, 14:31
#48
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Не подумал, извентиляюсь.

Workbook и Worksheet тоже на Object заменил.
Вложения
Тип файла: zip BlockNum.zip (35.7 Кб, 73 просмотров)
Vildar вне форума  
 
Автор темы   Непрочитано 18.08.2008, 14:43
#49
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Еще какая то ошибочка...
Миниатюры
Нажмите на изображение для увеличения
Название: Новая ошибка выскочила.jpg
Просмотров: 68
Размер:	64.7 Кб
ID:	9397  
Dmitry AD вне форума  
 
Непрочитано 18.08.2008, 15:04
#50
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Непонял!
LCase же стандартная функция VBA.
Посмотри версию VBA, опять же в редакторе: Help->About
У меня 6.5.
Можно просто, убрать её
Код:
[Выделить все]
If LCase(ExcelSheet.Cells(intRow, intColСоde)) = "код" Then
на
Код:
[Выделить все]
If ExcelSheet.Cells(intRow, intColСоde) = "КОД" Then
Тогда в Екселе должно быть именно КОД (большими буквами) в шапке для кодов.
Продолжаем!
Vildar вне форума  
 
Автор темы   Непрочитано 18.08.2008, 15:09
#51
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Стоит версия Версия 6.3 !
А по поводу "КОД" -он и есть большими буквами-всегда!
Dmitry AD вне форума  
 
Непрочитано 18.08.2008, 15:24
#52
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Цитата:
Сообщение от Dmitry AD Посмотреть сообщение
Стоит версия Версия 6.3 !
А по поводу "КОД" -он и есть большими буквами-всегда!
Это я хотел привнести больше универсальности

А насчет 6.3, низнай должна быть там эта функция, ёпрст. Чё делать то?
Vildar вне форума  
 
Автор темы   Непрочитано 18.08.2008, 15:33
#53
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Может попробуем спросить у кого нибудь из "продвинутых программистов".....
Dmitry AD вне форума  
 
Непрочитано 18.08.2008, 15:37
#54
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Да давай спросим!

Ну а ты эту строчку заменил? Дальше опять косяки прут?
Vildar вне форума  
 
Автор темы   Непрочитано 18.08.2008, 15:41
#55
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


нет, не менял еще, щас попробую...
Dmitry AD вне форума  
 
Автор темы   Непрочитано 18.08.2008, 15:49
#56
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Еще косячок вылетел..
Миниатюры
Нажмите на изображение для увеличения
Название: Вот такая теперь ошибка.jpg
Просмотров: 73
Размер:	55.0 Кб
ID:	9398  
Dmitry AD вне форума  
 
Непрочитано 18.08.2008, 16:02
#57
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Эту строчку можно удалить:
Код:
[Выделить все]
ReDim strNameBlocks(0)
Забыл убрать.

Подозреваю, что с Екселя он сведения не собрал!
Ладно, пробуй дальше.
Vildar вне форума  
 
Автор темы   Непрочитано 18.08.2008, 16:26
#58
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Ура!
Работает!!!!
Но когда пробую сделать нумерацию в другом чертеже он пишет "Должна быть установлена мировая система координат"
Dmitry AD вне форума  
 
Автор темы   Непрочитано 18.08.2008, 16:31
#59
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Нумерация липнет к атрибутам...
Ориентировать нумерацию на блок не получится?
Миниатюры
Нажмите на изображение для увеличения
Название: Вот так выводит.jpg
Просмотров: 83
Размер:	13.2 Кб
ID:	9400  
Dmitry AD вне форума  
 
Непрочитано 18.08.2008, 16:35
#60
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Урааа...!!!
А с системами координат я не разобрался ..
Ты теперь сам почти программёр. Закомментируй в начале:
Код:
[Выделить все]
'c UCSами не разобрался????
   If ThisDrawing.GetVariable("UCSNAME") <> "" Then
      MsgBox "Должна быть установлена Мировая система координат!"
      End
   End If
т.е. перед каждой строчкой поставь апостроф '
И заводи по новой, может проканает и в другой системе координат. Кстати в какой? Кто, что, зачем, создал её? Если не секрет. А лучше файлик. Может чёнибудь придумаю.

Да и еще, можно не трогать эту часть кода, а установить МСК

Последний раз редактировалось Vildar, 18.08.2008 в 16:50.
Vildar вне форума  
 
Непрочитано 18.08.2008, 16:43
#61
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Цитата:
Сообщение от Dmitry AD Посмотреть сообщение
Нумерация липнет к атрибутам...
Ориентировать нумерацию на блок не получится?
Да я ж об этом с самого начала грил.
Надо сильно подумать...
1.Можно попробовать номера в центр блока кидать.
2.Про атрибуты уже говорили, низзя.
3.К чему еще привязываться?

А щас, тебе приходится каждый номерок двигать, да!
Vildar вне форума  
 
Автор темы   Непрочитано 18.08.2008, 16:46
#62
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Vildar,я немного разобрался- все работает и на других чертежах!
Прости за наглость )
А можно сделать некоторые поправки?
К примеру забить автоматическое установление мировой системы координат? Если я не ошибаюсь- ^C^C_ucs _w
и вместо ячейки В2 поменять на B22 (там где то прописано, что в ячейке B2 должен быть код), я сверху логотип еще прикрепляю и всякую ерунду еще дописываю!
и было бы круто если к блоку сделать привязку п о атрибуту.... )))))
А в целом - Я ОЧЕНЬ РАД!
РЕСПЕКТ ТЕБКЕ И УВАЖУХА! )
Dmitry AD вне форума  
 
Непрочитано 18.08.2008, 16:55
#63
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Все нормально,
Так. Поправки - можно конечно. Ща попробцю.
Вот тут не понял:
и было бы круто если к блоку сделать привязку п о атрибуту.... )))))
Поясни-ка.

Спсибо, я учусь, а ты подопытный не пугайся вирусов нет (проверено Каспером)
Vildar вне форума  
 
Автор темы   Непрочитано 18.08.2008, 16:58
#64
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Я какую то хрень написал- сам не пойму что!: "и было бы круто если к блоку сделать привязку п о атрибуту.... )))))"

А если попробывать номера в центр блока?
Кстати я не знаю чем открыть dvb? , что бы отредактировать.
при ошибке он сам открывается, а так х.з.
Dmitry AD вне форума  
 
Автор темы   Непрочитано 18.08.2008, 16:59
#65
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


наверно от радости мозг подтупливает )
Dmitry AD вне форума  
 
Непрочитано 18.08.2008, 17:17
#66
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Насчет B22:
Поменяй число на 22:
Код:
[Выделить все]
intRow = 22 'строка с шапкой таблицы
Это где-то перед той той строчкой гду ты LCase заменял.
В дальнейшем можешь сам изменения вносить. Это open-source проект

МСК, ищу пока.
Временно, как и предлагалось ранее, закомментируй.

Последний раз редактировалось Vildar, 18.08.2008 в 17:39.
Vildar вне форума  
 
Непрочитано 18.08.2008, 17:25
#67
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Цитата:
Сообщение от Dmitry AD Посмотреть сообщение
А если попробывать номера в центр блока?
Нужно время. Сегодня, завтра или послезавтра.
Цитата:
Сообщение от Dmitry AD Посмотреть сообщение
Кстати я не знаю чем открыть dvb? , что бы отредактировать.
при ошибке он сам открывается, а так х.з.
Alt+F11, или vbaide в ком. строке, или Сервис-Макросы-там увидишь.
А в файл dvb сохраняется макрос из этого редактора.
Vildar вне форума  
 
Автор темы   Непрочитано 18.08.2008, 17:53
#68
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Спасибо, открываю, корректирую! )))
все вроде получается )

Попробывал один из рабочих случаев, а именно: меняется нумерация в спецификации и требуется поменять нумерацию на чертеже.
если еще раз нажимаешь на кнопку, сверху накладывается еще одна нумерация (новая), старая же остается на месте.
Можно команду выделить и удалить нумерацию вывести на отдельную кнопку?

Последний раз редактировалось Dmitry AD, 18.08.2008 в 18:06.
Dmitry AD вне форума  
 
Автор темы   Непрочитано 18.08.2008, 18:01
#69
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


А еще, прости за наглость в очередной раз))))
Можно каким нибудь образом сделать нумерацию только выделеной области (выделенных объектов)?
Типо хочу пронумеровать группу объектов -> обвел -> нажал кнопку -> они пронумеровались...

Последний раз редактировалось Dmitry AD, 18.08.2008 в 18:07.
Dmitry AD вне форума  
 
Непрочитано 18.08.2008, 19:22
#70
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Вот.
Запрос выбора - рамкой или весь чертеж.
При этом в выбранных элементах - удаляются тексты на слое "NUMBER".
Пойдёт!?
Вложения
Тип файла: zip BlockNum.zip (27.4 Кб, 78 просмотров)
Vildar вне форума  
 
Автор темы   Непрочитано 19.08.2008, 10:40
#71
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Ага! все круто,работает )))) только эту строчку снова пришлось поменять!
If ExcelSheet.Cells(intRow, intColСоde) = "КОД" Then
А так-сказка просто!
Dmitry AD вне форума  
 
Автор темы   Непрочитано 19.08.2008, 11:46
#72
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


На изначальном примере (простой сплошной нумерации) все работает идеально! )))
Тестирую на разных примерах (более сложных и чаще всего применяемых) - выходят небольшие проблемсы:

Проблемс 1
Хочу пронумеровать один из участков (мясо-рыбный цех) Как и положено нажимаю на кнопочну -> выдается запрос (да- выделить область, нет- весь чертеж) -> нажимаю да (область) -> выделяю -> Enter -> происходит нумерация (что очень радует) НО! нумерация не только выделеного участка, но и всего чертежа, имеющий такие же атрибуты. (см. скрин шот)

Проблемс 2
Не всегда в спецификации первое число после слова "КОД" именно код, часто бывает текст (наименование этажа или цеха) -> в таких случаях пишется: ошибка в екселе, не найдено ни одного кода.

Для того что бы проставлялась нумерация именно по определенному участку - на чертеже выделяю область, а в спецификации каким образом следует поступать? скрывать все, отображая лишь нужную область или как?
Миниатюры
Нажмите на изображение для увеличения
Название: Проблемсы.jpg
Просмотров: 95
Размер:	52.7 Кб
ID:	9422  
Вложения
Тип файла: rar Проблемс 2.rar (9.6 Кб, 310 просмотров)
Dmitry AD вне форума  
 
Непрочитано 19.08.2008, 12:17
#73
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Здорово.

Проблемс 1. Ща исправлю, поготь.
Проблемс 2. Пришли фрагмент файла екселя. Непонял.

Ой. Файло то есть
Vildar вне форума  
 
Непрочитано 19.08.2008, 13:04
#74
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Вот попробуй.

У меня тут запарка. Поэтому шипко не проверял. Могут быть ошибки.

Удивился новому обстаятельству. Т.е. одному коду могут соответствовать разные позиции. И на чертеже в одной точке собираются все номера найденные в Екселе для этого кода.
Как быть, непойму.
И даже в одном цехе это может быть. Смотрю на Ексель.

Я то думал для каждого кода только один номер.
Вложения
Тип файла: zip BlockNum.zip (27.4 Кб, 73 просмотров)
Vildar вне форума  
 
Непрочитано 19.08.2008, 14:05
#75
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Для того что бы проставлялась нумерация именно по определенному участку - на чертеже выделяю область, а в спецификации каким образом следует поступать? скрывать все, отображая лишь нужную область или как?

Можно сделать запрос с какого по какой ряд собирать данные. Или еще как нибудь.
Vildar вне форума  
 
Автор темы   Непрочитано 19.08.2008, 14:06
#76
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Пробую новый макрос- выходит ошибка.
А по поводу того, что одному коду соответствуют разные позиции- это так!
к примеру в цехе №1 стоят 5 столов 1200*700- в спецификации они отображаются как столы 1200*700, а их колличество -5 штук. У них одинаковые коды и номера (но только для данного цеха)

в цехе №2 стоит такой же стол 1200*700 - в спецификации он будет находиться в другом цехе и порядковый номер у него будет другой, хоть и код такой же.

Для этого и нужно было нумеровать именно определеную область (цех).
но как со спецификацией поступать? Я пытался скрыть временно не нужные позиции, оставляя лишь те, по которым делается нумерация - ничего не выходит.

Скрины ошибок прилагаются.
Миниатюры
Нажмите на изображение для увеличения
Название: ошибка.jpg
Просмотров: 89
Размер:	54.0 Кб
ID:	9431  Нажмите на изображение для увеличения
Название: ошибка в макросе.jpg
Просмотров: 85
Размер:	58.8 Кб
ID:	9432  
Dmitry AD вне форума  
 
Непрочитано 19.08.2008, 14:43
#77
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Цитата:
Сообщение от Dmitry AD Посмотреть сообщение
Пробую новый макрос- выходит ошибка.
Так. В начале этой процедуры поменяй строчку:
Код:
[Выделить все]
Private Sub InsertNumberPosition(lCode As Long, intNumber As Integer)
   'есть имя блока для проставление номеров позиции для конкретного кода
   'есть номер позиции для вставки
   'нужно для всех блоков проставить номер позиции соответстующего кода
   
   Dim objText As AcadText
   Dim objLayer As AcadLayer
   Dim objBlockItem As AcadBlockReference
на:
Код:
[Выделить все]
Dim objBlockItem As AcadEntity
Цитата:
Сообщение от Dmitry AD Посмотреть сообщение
А по поводу того, что одному коду соответствуют разные позиции- это так!
к примеру в цехе №1 стоят 5 столов 1200*700- в спецификации они отображаются как столы 1200*700, а их колличество -5 штук. У них одинаковые коды и номера (но только для данного цеха)

в цехе №2 стоит такой же стол 1200*700 - в спецификации он будет находиться в другом цехе и порядковый номер у него будет другой, хоть и код такой же.
Смотрю на "Мясо- рыбный цех" в спеке, коду 3795 соответствуют четыре позиции: 24,28,35,36. Это как понимать?

Цитата:
Сообщение от Dmitry AD Посмотреть сообщение
Для этого и нужно было нумеровать именно определеную область (цех).
но как со спецификацией поступать? Я пытался скрыть временно не нужные позиции, оставляя лишь те, по которым делается нумерация - ничего не выходит.
Скрыть строки, имеется ввиду. Это да, не поможет.
Как я предложил, пойдёт. Выдавать запрос на ряды. Записать ответ на него можно будет примерно так: 22-45 (цыфры от балды взял, не смотри)
Vildar вне форума  
 
Автор темы   Непрочитано 19.08.2008, 14:58
#78
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Смотрю на "Мясо- рыбный цех" в спеке, коду 3795 соответствуют четыре позиции: 24,28,35,36. Это как понимать?
Вывает такое, что автоматически позиции с одинаковым кодом не суммируется в спецификации и получается такая бадяга..24,28,35,36. хотя эта позиция одна и таже.
Dmitry AD вне форума  
 
Автор темы   Непрочитано 19.08.2008, 14:59
#79
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


А по поводу запросов рядов- да хорошая идея!
Dmitry AD вне форума  
 
Непрочитано 19.08.2008, 15:05
#80
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Насчет ошибки ничего не меняй, много надо менять.
Вот целиком. Проверь как он.
Пока без запроса рядов. Чуток попозжее будет.
Вложения
Тип файла: zip BlockNum.zip (27.5 Кб, 78 просмотров)
Vildar вне форума  
 
Автор темы   Непрочитано 19.08.2008, 15:17
#81
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Все работает, информация считывается со спецификации, не смотря на пробелы и надписи!
Номера позиций кроме выделеных блоков нигде больше не всплывают!
Я так понимаю когда появится команда для запрса рядов будет все в ажуре!
пока что все номера из спецификации выставляются по атрибуту на выделеный блок.
прилагается скриншот:
Миниатюры
Нажмите на изображение для увеличения
Название: работает!.jpg
Просмотров: 127
Размер:	75.0 Кб
ID:	9438  
Dmitry AD вне форума  
 
Непрочитано 19.08.2008, 15:23
#82
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Какой у нас серьезный пабочий процесс
Все наверно смотрят и о....ют!

Может нам в личку нужно перейти?
Vildar вне форума  
 
Автор темы   Непрочитано 19.08.2008, 15:28
#83
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


давай)
Dmitry AD вне форума  
 
Непрочитано 19.08.2008, 15:55
#84
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Не, не получится. Там файлы крепить некуда. Только что пробовал.

Продолжаем разговор!
Вот потестируй с запросоми рядов.
Запрос можешь переформулировать, я долго не думал:
Код:
[Выделить все]
'запрос рядов
   strOtvet = InputBox("Ряды, например 22-45:")
Держи.
Вложения
Тип файла: zip BlockNum.zip (27.0 Кб, 83 просмотров)
Vildar вне форума  
 
Автор темы   Непрочитано 19.08.2008, 16:12
#85
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Выдает ошибку...
Миниатюры
Нажмите на изображение для увеличения
Название: Снова ошибку выдает.jpg
Просмотров: 82
Размер:	56.9 Кб
ID:	9442  
Dmitry AD вне форума  
 
Непрочитано 19.08.2008, 16:32
#86
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Куда же без них ( ты главно терпи

Вот отдельно запрос начального и конечного ряда.
Вложения
Тип файла: zip BlockNum.zip (26.9 Кб, 76 просмотров)
Vildar вне форума  
 
Автор темы   Непрочитано 19.08.2008, 17:16
#87
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


)))
что то не то! )
сначала он пишет введите строки, потом определяет область, потом нихрена не находит! )))

По логике:
1. Определить область или весь чертеж
1.1 весь чертеж -> проставилась нумерация
1.2. область -> появляется курсор -> обвести -> "введите номера поиска по спецификации"-> начальный ряд -> конечный ряд -> (что бы ставились номерки ))) )
Dmitry AD вне форума  
 
Автор темы   Непрочитано 19.08.2008, 17:18
#88
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


он искал не по определенным номерам, а не пойми как!
Dmitry AD вне форума  
 
Непрочитано 19.08.2008, 17:40
#89
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Чё не так!
Выбрал ты хоть весь чертеж, хоть область, надо вводить начальный ря и конечный ряд.
У меня правильно проставляет номера.
Для мясного цеха:
Ввел начальный ряд - 41, конечный -63
Выделил один блок - M16_7R
Получил: код 19614 - номер 29,
11579 - 23
3795 - 24,28,35,36
Все верно.
Vildar вне форума  
 
Автор темы   Непрочитано 19.08.2008, 17:49
#90
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


ммм, точно, получается!
я видимо не теномера вводил.
А можно последовательность запроса изменить, как я писал:. Определить

1.область или весь чертеж
1.1 весь чертеж -> проставилась нумерация
1.2. область -> появляется курсор -> обвести -> "введите номера поиска по спецификации"-> начальный ряд -> конечный ряд ->номерки
Dmitry AD вне форума  
 
Автор темы   Непрочитано 19.08.2008, 17:50
#91
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


потому что, если выбираем "НЕТ"- запрос ряда не актуален!
Dmitry AD вне форума  
 
Непрочитано 19.08.2008, 17:56
#92
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Цитата:
Сообщение от Dmitry AD Посмотреть сообщение
потому что, если выбираем "НЕТ"- запрос ряда не актуален!
Как так неактуален. У тебя тогда опять будут в кучу собираться номера со всего Екселя. Ты чё

Ладно допустим ты прав. Но это не так просто сделать. Так что, надо покумекать.

Последний раз редактировалось Vildar, 19.08.2008 в 18:05.
Vildar вне форума  
 
Автор темы   Непрочитано 19.08.2008, 18:07
#93
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


я как понимаю:
Если "да" (выбор объектов) . -> выбираем объекты! А выбираем потому, что спецификация разбита на части (одни и те же коды под разными номерами) и они накладываются друг на друга.
Если "нет" -> объекты не выбираем! делается нумерация по всей спецификации! это удобно. когда спецификация составлена сплошными данными - без разбития по цехам! Объекты с одинаковыми кодами складываются (будем стараться это делать) и накладок номеров не получается!
или я не правильно что то понял?
если правильно понял, то именно предложеный мною порядок считаю логичным.
Dmitry AD вне форума  
 
Непрочитано 19.08.2008, 18:14
#94
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Тогда да, базара нет.
Сделаю, завтра скорее всего.
Vildar вне форума  
 
Автор темы   Непрочитано 19.08.2008, 18:23
#95
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


оке!
Dmitry AD вне форума  
 
Непрочитано 20.08.2008, 09:48
#96
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Потестируй.
Перечислю общие недостатки:
1. При запуске макроса должен быть отркрыт эксель и активен документ с нужной таблицей.
Надо придумать проверку идентификации таблицы.
2. Сейчас любая встречная комбинация чисел в столбце А и B считается за комбинацию кода и номера позиции.
Надо придумать проверку.
4. Высота текста для номеров - фиксированной высоты =100. А нужно сделать в зависимости от масштаба. У тебя что, все чертежи в одном масштабе?
5. При дальнейшем использовании макроса могут появляться новые "неожиданности", неучтенные условия. Будь начеку.
6. Вот уже сейчас я мог что-то упустить.

Ну а про то, что номера вставляются не туда, всмысле над кодами а не внутрь блоков, я ваще молчу.

"А в остальном, прекрасная маркиза, все хорошо, все хорошо!" (из песни слов не выкинешь)
Вложения
Тип файла: zip BlockNum.zip (26.7 Кб, 87 просмотров)
Vildar вне форума  
 
Автор темы   Непрочитано 20.08.2008, 11:18
#97
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


С П А С И Б О !!! )
клево! все работает!
По поводу недостатков:
1.- это нужно прививать людям, кто будет с этими чертежами и таблицами работать (следить за правильностью)- не проблема!
2. Не вижу ничего в этом страшного - в этих столбах всегда должны находиться данные значения номера и кода!
3. Высота текста оптимальна! масштаб не меняется - всегда одинаковый, ведь оборудование всегда одинаково!
4.По поводу неожиданостей - ну всякое бывает! если че, буду надеяться на твою поддержку )))

А если появится мысль как сделать что бы номера вставлялись в центр блока - буду очень признателен!

p.s. Спасибо огромаднийшее!
Dmitry AD вне форума  
 
Непрочитано 20.08.2008, 11:55
#98
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Мне добавить нечего!
Я определенный опыт получил.
Пока.
Vildar вне форума  
 
Автор темы   Непрочитано 20.08.2008, 12:01
#99
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Vildar,
ну вот не прошло и полу часа, а я снова к тебе с просьбой ))) :

При сплошной нумерации без выделения области был решон вопрос со старыми нумерами (они удалялись и появлялись новые)
При выделении области старые номера не удаляются , а накладываются новые, как раньше было со сплошной.

Не мог бы поправить ? ))) плиз.
Dmitry AD вне форума  
 
Непрочитано 20.08.2008, 12:33
#100
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Удаляются только те номера которые попали в выделение (номера - это DText или MText, и только на слое "NUMBER").
Выделяй нужную область вместе с номерами.
Vildar вне форума  
 
Автор темы   Непрочитано 20.08.2008, 12:51
#101
Dmitry AD

инженер-проектировщик
 
Регистрация: 12.08.2008
Москва
Сообщений: 64
<phrase 1= Отправить сообщение для Dmitry AD с помощью MSN


Да, действительно!
Спасибо!
Dmitry AD вне форума  
 
Непрочитано 18.06.2012, 14:29
#102
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Я тут!
Если нужно что-то поправить в макросе, я готов.

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

Жуть, чего понаписал, в этом макросе )
Переделать бы надо (

Последний раз редактировалось Vildar, 18.06.2012 в 16:44.
Vildar вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Нумерация по спецификации ?

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сквозная нумерация чертежей Alxd Прочее. Архитектура и строительство 26 19.06.2024 09:01
Нумерация листов в AutoCad Sergk AutoCAD 21 11.03.2022 05:21
Обозначение арматуры А500с в спецификации арматурных стержне Летун Железобетонные конструкции 10 23.06.2007 10:05
Нужна програмка для спецификации Нютка Программирование 46 02.04.2007 14:53
Нужно ли показывать с спецификации болты, гвозди, анкеры? Колян Прочее. Архитектура и строительство 9 14.09.2006 08:09