В учебных целях поднимаю свой старый топик (Создание поля-счётчика листов в dwg-файле)
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > В учебных целях поднимаю свой старый топик (Создание поля-счётчика листов в dwg-файле)

В учебных целях поднимаю свой старый топик (Создание поля-счётчика листов в dwg-файле)

Ответ
Поиск в этой теме
Непрочитано 26.10.2009, 14:40 #1
В учебных целях поднимаю свой старый топик (Создание поля-счётчика листов в dwg-файле)
hwd
 
C, C++, C#
 
С-Пб.
Регистрация: 07.10.2009
Сообщений: 2,762

Вопрос снят - разобрался сам. этот архив не качайте! в нём старая, не исправленная версия библиотеки. исправленная указана далее по топику.

Вложения
Тип файла: zip AcadPlagins.zip (1.42 Мб, 136 просмотров)


Последний раз редактировалось hwd, 10.11.2009 в 18:01.
Просмотров: 7285
 
Непрочитано 26.10.2009, 23:41
#2
чеснок


 
Регистрация: 26.10.2009
Сообщений: 55


hwd, издеваетесь, вы чего в архив напихали. Траффик знаете не резиновый у некоторых
Хм, compositum это вы, такой ник встречал на форуме SQL кажется.
Вы спец по С# NET и всякое такое.
Это хорошо. (может скинете примерчик приложения на С# для общего развития, можно по бд, спасибо <сhesnok@pochtamt.ru>).
чеснок вне форума  
 
Автор темы   Непрочитано 27.10.2009, 10:25
#3
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от чеснок Посмотреть сообщение
hwd, издеваетесь, вы чего в архив напихали. Траффик знаете не резиновый у некоторых
в архив включены необходимые библиотеки автокада 2009-го, чтобы можно было запустить на более ранних версиях акада. На этот архив нужно забить - код я исправил, а доступ к уже выложенному архиву, как я понял - уже не имею, дабы удалить его.

Цитата:
Сообщение от чеснок Посмотреть сообщение
hwd
Хм, compositum это вы, такой ник встречал на форуме SQL кажется.
Вы спец по С# NET и всякое такое.
Это я. Насчет "спец" - это преувеличение ). Я обычный юзер-самоучка.

Цитата:
Сообщение от чеснок Посмотреть сообщение
Это хорошо. (может скинете примерчик приложения на С# для общего развития, можно по бд, спасибо <сhesnok@pochtamt.ru>).
Так у вас же "трафик не резиновый" )... Базы они разные бывают - в одних приложениях я в качестве базы использовал аксесс, в других sql server. Какая СУБД интересует? )
hwd вне форума  
 
Непрочитано 27.10.2009, 19:06
#4
чеснок


 
Регистрация: 26.10.2009
Сообщений: 55


Цитата:
Сообщение от hwd Посмотреть сообщение
Так у вас же "трафик не резиновый" )... Базы они разные бывают - в одних приложениях я в качестве базы использовал аксесс, в других sql server. Какая СУБД интересует? )
Про базы это я ляпнул до кучи. Мне сейчас главное не база, а сама организация приложения. Что, как, к чему, посмотреть живьем так сказать, а то читаю книжки, а там helloworld и типа того.
А сколько прмерно весят исходники. Я думаю не больше 10Мб. Для дела то я уж потяну
чеснок вне форума  
 
Автор темы   Непрочитано 27.10.2009, 22:23
#5
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от чеснок Посмотреть сообщение
Про базы это я ляпнул до кучи. Мне сейчас главное не база, а сама организация приложения. Что, как, к чему, посмотреть живьем так сказать, а то читаю книжки, а там helloworld и типа того.
А сколько прмерно весят исходники. Я думаю не больше 10Мб. Для дела то я уж потяну
Мои поделки нельзя приводить в качестве учебного пособия ). Советую почитать Стива Макконнелла "Совершенный код" (я её не всю прочёл, а только часть) - он пишет как раз на эту тему, причём довольно таки толково и понятно. Начиная с планирования, разработки обобщённых интерфейсов (дабы между библиотеками минимизировать зависимость друг от друга и предоставить возможность замены их др. более новыми модулями, без переписывания существующего кода) и т.п. Паттерны те же... Я лишь малую часть из них читал, а понял еще меньше )
Мои поделки хоть и работают, но в качестве образца их использовать ни в коем случае нельзя. )))
hwd вне форума  
 
Непрочитано 04.11.2009, 03:18
#6
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,537
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Цитата:
Сообщение от hwd Посмотреть сообщение
Вопрос снят - разобрался сам.
Не слишком ли много телодвижений, ради одной только цифры?

Вариант с USERI1
Вариант с подшивкой
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 09.11.2009, 09:25
#7
Walkmax


 
Регистрация: 17.07.2008
Сообщений: 75


Товарисчи, поясните пожалуйста.
При использовании приведённого в шапке комплекта систематически выпадает AutoCad с фатальной ошибкой.
Walkmax вне форума  
 
Автор темы   Непрочитано 09.11.2009, 10:15
#8
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Walkmax Посмотреть сообщение
Товарисчи, поясните пожалуйста.
При использовании приведённого в шапке комплекта систематически выпадает AutoCad с фатальной ошибкой.
всё до безобразия просто: приведённый выше архив использовать не следует. Данный баг давно исправлен. Рабочая версия выложена здесь. Там же описаны и варианты регистрации библиотек. Размещать информацию в этом топике о том, что ошибка исправлена не стал в виду того, что интереса к ней не было проявлено (на данном форуме).

2 wetr
Цитата:
Не слишком ли много телодвижений, ради одной только цифры?

Вариант с USERI1
Вариант с подшивкой
А ведомости тут коим боком?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 09.11.2009 в 10:31.
hwd вне форума  
 
Непрочитано 10.11.2009, 17:50
#9
Walkmax


 
Регистрация: 17.07.2008
Сообщений: 75


Всё было-бы хорошо, но результат тот-же.
"может в консерватории что-нибудь подправить?"
Новый вариант не отличается поведением. Возможно есть какая-нибудь заковырка?
Пробовал на двух разных машинах, с разными автокадами (2008 и 2009)
Очень полезная ACVAR, жаль что такие фокусы с ней...
Walkmax вне форума  
 
Автор темы   Непрочитано 10.11.2009, 17:55
#10
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Walkmax Посмотреть сообщение
Всё было-бы хорошо, но результат тот-же.
"может в консерватории что-нибудь подправить?"
Новый вариант не отличается поведением. Возможно есть какая-нибудь заковырка?
Пробовал на двух разных машинах, с разными автокадами (2008 и 2009)
Очень полезная ACVAR, жаль что такие фокусы с ней...
а может просто руки не оттуда растут? причём у меня.... )))))

Удали все предидущие версии и установи эту. Архив на сайте так же обновлён. Должно заработать как часы.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 10.11.2009 в 19:02.
hwd вне форума  
 
Непрочитано 10.11.2009, 23:20
#11
Walkmax


 
Регистрация: 17.07.2008
Сообщений: 75


Ух.
Значит так. Системная переменная работает только в одном файле.
При открытии следующего файла происходит "Фатальная ошибка".
В первом файле переменная работает устойчиво, но только в первом.
Есть мысли по этому поводу...?
Walkmax вне форума  
 
Непрочитано 10.11.2009, 23:27
#12
чеснок


 
Регистрация: 26.10.2009
Сообщений: 55


Walkmax, так это намек, не юзай что попало...
Как детят говорят - не бери в рот бяку )))
чеснок вне форума  
 
Непрочитано 10.11.2009, 23:46
#13
Walkmax


 
Регистрация: 17.07.2008
Сообщений: 75


Задаваемые мной вопросы адресованы человеку с ником hwd поднявшему данную тему, который к стати скромно подписался Специалист по САПР, и если нечего ответить по делу то как говорится - стойте в сторонке и набирайтесь вежливости.
Решение данной проблемы полезно не только для решения как такового.
А реплики типа "не бери в рот бяку" наводят на размышления о уместности данной реплики как таковой.
А что интересно ВЫ товарищ ЧЕСНОК рекомендуете ЮЗАТЬ?
Walkmax вне форума  
 
Непрочитано 11.11.2009, 00:02
#14
чеснок


 
Регистрация: 26.10.2009
Сообщений: 55


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

А юзать, да от фатала никто не застрахован, - ручками.
чеснок вне форума  
 
Непрочитано 11.11.2009, 00:20
#15
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Walkmax Посмотреть сообщение
Ух.
Значит так. Системная переменная работает только в одном файле.
При открытии следующего файла происходит "Фатальная ошибка".
В первом файле переменная работает устойчиво, но только в первом.
Есть мысли по этому поводу...?
Второй файл открываешь закрыв первый или нет?
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 11.11.2009, 08:22
#16
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Walkmax Посмотреть сообщение
Ух.
Значит так. Системная переменная работает только в одном файле.
При открытии следующего файла происходит "Фатальная ошибка".
В первом файле переменная работает устойчиво, но только в первом.
Есть мысли по этому поводу...?
Странно... Вчера я на 2007-м проверял, всё работало прекрасно. Мне нужно точное описание производимых вами действий, чтобы я смог понять, на каком шаге у вас вылетает фатал эрор. Тестируя я создавал как раз несколько файлов. Сегодня еще раз посмотрю... Кстати, работать со вторым файлом, закрыв первый я не пробовал... Попробую сегодня.

Я проверял так (прошу и вас в таком же виде описать порядок своих действий):
1. Запустил автокад
2. Создал файл
3. загрузил через netload свою библиотеку.
4. Создал текстовое поле, которому присвоил значение системной переменной.
5. создавал листы, удалял листы - всё работало как часы.
6. Затем, не закрывая первый файл, создал второй (сейчас не помню, по-моему в нём я netload уже не вызывал)
7. во втором файле повторил действия п.п. 4 и 5. Всё хорошо работало.
8. закрыл второй файл.
9. снова повторил п.5 в первом файле - всё по прежнему работало.

О варианте Александра Ривилиса я как-то не подумал. Сегодня с утра попробую и его.

Хотя, если netload загружать при открытии каждого файла индивидуально для документа - вроде не должно быть проблем. Но раз вы говорите, что у вас вылетает ошибка - буду смотреть...

Вообще, как появится свободное время, я хочу сделать ещё два варианта счётчиков:
1. Показывающий общее количество листов в разделе подшивки.
2. Показывающий общее количество листов в целом в подшивке.

На мой взгляд эти счётчики были бы более актуальны, поскольку проекты у меня (в смысле в нашей компании), как наверняка и у многих др. пользователей, будут вестись в виде подшивок. Вот для подшивок счётчики более интересны, чем для единичного файла. Хотя сначала нужно конечно же разобраться, в чем дело в вашем случае.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 11.11.2009 в 08:45.
hwd вне форума  
 
Непрочитано 11.11.2009, 08:57
#17
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,537
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Цитата:
Сообщение от hwd Посмотреть сообщение
А ведомости тут коим боком?
в теме про ведосмости решалась та же задача.
Код:
[Выделить все]
^C^C(setvar "USERI1" (length(layoutlist)));_updatefield;all;;
если нужно штоб считалось само. В поле соответственно выводим значение переменной USERI1. Только тыкать кнопочку просто так - расход энергии большой. Поэтому повесил макрос на кнопочку с вставкой ведомости рабочих чертежей.

С подшивкой еще проще получается. В поле вставляем количество строк Ведомости рабочих чертежей (минус) 2 строки.

Просто не могу представить для чего нужно именно ДИНАМИЧЕСКОЕ обновление количества листов? Юзер что постоянно должен отслеживать его? Я задумываюсь о кол-ве листов, только когда проект готов.

И при всех вариантах - заполняю это поле вручную. Ведь по нормам достаточно использовать поле "Листов" только на титуле. Кроме того, бывают ситуации, когда в файле торчат вспомогательные layout_ы.
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Автор темы   Непрочитано 11.11.2009, 08:58
#18
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Значит так... Прежде чем идти на работу, сел и проверил у себя на компе дома вариант Александра Ривилиса.
1. создал первый файл, в нём загрузил через netload мою библиотеку, поиграл с листами.
2. Создал второй файл и так же выполнил ряд операций с листами.
3. закрыл второй файл, сохранив его предварительно. снова в первом файле выполнил ряд операций с листами.
4. закрыл первый файл, сохранив его предварительно (теперь открытых файлов нет).
5. создал новый файл (третий). поигрался с листами. ошибок нет...

странно...

2 wetr
Цитата:
Просто не могу представить для чего нужно именно ДИНАМИЧЕСКОЕ обновление количества листов? Юзер что постоянно должен отслеживать его? Я задумываюсь о кол-ве листов, только когда проект готов.
имея на руках вариант с динамикой, юзер вообще не думает о том, что у него там с количеством листов. Оно всегда актуально (т.е. отображается корректно).
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 11.11.2009 в 10:09.
hwd вне форума  
 
Непрочитано 11.11.2009, 09:05
#19
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,537
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Цитата:
Сообщение от hwd Посмотреть сообщение
Оно всегда актуально (т.е. отображается корректно).
а вариант
Цитата:
когда в файле торчат вспомогательные layout_ы
?
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Автор темы   Непрочитано 11.11.2009, 10:28
#20
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от wetr Посмотреть сообщение
а вариант
?
при желании решаемо. например вы можете в поле таблицы поставить не значение самого field, а формулу, использующую этот field. т.е. формулу разницы общего количества листов минус количество ваших черновиков.
Но это было бы неверное решение, т.к. вам нужно в таком случае постоянно держать в голове, что после того, как изменится количество черновиков, вам нужно вносить правку в формулу.

Поэтому задачу (в случае наличия черновиков) грамотней решать так:
Можно легко избежать формулы, реализовав определение типа листа (т.е. черновик он или нет) программным способом.
Например, имена черновым листам присваивать согласно определённым правилам (к примеру начиная с символа "_").
В этом случае добавив в код блок foreach{...} в котором анализируются наименования листов и в соответствии с результатом выдавалось бы количество НЕ ЧЕРНОВЫХ листов - данная задача была бы решена.

При желании могу сделать это. Но, имхо, вам это не нужно, поскольку ваша задача, как я понимаю - доказать бесполезность моего варианта и нужность вашего. ) На "полезность" своего не претендую, поскольку считаю более полезным вариант, который бы работал с подшивкой. )

п.с. я не заставляю никого использовать то, что мною написано ))) код написан мною, прежде всего, для самого себя - из интереса, получится или нет.
Получилось.

Вести споры, честно говоря, желания нет.

п.с. 2
из интереса добавил в код изменение, в соответствии с которым считаются только те листы, имена которых не начинается с символа "_" (подчёркивание). Т.е. те листы, имена которых начинаются с "_" - считается черновиками и они не должны учитываться при подсчёте общего количества листов в файле.
Сейчас протестирую и заменю прежний вариант на новый...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 11.11.2009 в 10:55.
hwd вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > В учебных целях поднимаю свой старый топик (Создание поля-счётчика листов в dwg-файле)

Реклама i