Реклама / ООО «ИЗОЛПРОЕКТ» / ИНН: 7725566484 | ERID: 2Vtzqx6kV7S
IPB IPB
Проектирование, монтаж, наладка, сервис


Здравствуйте, гость ( Вход | Регистрация )

- Стандарт НП «АВОК» 7.11-2024
«Рекомендации по проектированию инженерных систем
дошкольных образовательных организаций»

АВОК в соц. сетях
ИНН: 7714824045 | erid: 2VtzqwzKQiU
20 страниц V  « < 7 8 9 10 11 > »   
Добавить ответ в эту темуОткрыть тему
> Создание спецификации автоматически (Дубль2), Рассматриваются технология и ее реализация по автоматическому создани
Гость_Supermax_*
сообщение 9.9.2007, 18:03
Сообщение #241





Guest Forum






Я тебе сочувствую. Чес. слово. Писать проги для широкой аудитории это конечно патриотично, но не экономично.
Я очень не приветствую потугов Autodesk-a разнообразить линейку кадов. Гораздо лучше бы было добавлять основному ядру руки и ноги. Так по крайней мере и уровень продвинутости AutoCAD-a вырос бы и пользователи друг друга бы лучше понимали. А так, у них там все лучшие умы разбрелись по версиям када и в результате явная накладка исполнений. Я вот давно понял, что если я не сосредоточу все свое внимание на каком-то одном продукте, то и результат будет - ни рыба, ни мясо. Все эти специализированные исполнения типа десктопов и усеченнных вариантов чес. слово баловство. У нас работает человек пять продвинутых автокадчиков, все они прошли через эти специализированные кады и выбросили их на помойку. У всех чистый AutoCAD. И ни кто их не убеждал. Сами приняли решение.
Есть такой "пивной синдром". Раньше было пара-тройка сортов, люди в них разбирались, ценили. А сейчас, заходишь в магазин - уйма, до неба! И все по большей части - полный отстой. Никого уже не тянет в этом разбираться и слыть ценителем. В результате - те, кто покупал пиво чтобы получить удовольствие от вкуса - вымерли. Остались только те, которые получают удовольствие от количества.
Так и в программах. Когда в проге появляется слишком много кнопок, которые можно применять, но очень редко - их удаляют из панелей и про них забывают. А работа основных команд, таких как например черчение линий - стоит на месте. Эти функции не совершенствуются (что соответствует улучшению вкуса пива), а остаются на старом уровне. Зато появляется много новых функций, что улучшает общее раскручивание продукта. Что творится при этом в теле программы догадаться не трудно. От чего и все твои проблемы с совместимостью.
Могу посоветовать (извини за нескромность). Сам выбери себе лидера среди всех виденных тобой программ и пиши только для него. Пошли все эти другие проги (даже если там есть что-то интересное) куда подальше!
Если не работает макрос под LT - не трудись его дорабатывать. Уважай свой труд. В жизни надо занимать твердую позицию. Сам мне говорил, что всем не угодишь. Если заказчик хочет под LT - пиши для LT. Хочет под чистый кад - это уже другой макрос и за другие деньги. А то слишком кучеряво выходит "чтобы везде работало".
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_OVKT_*
сообщение 9.9.2007, 19:23
Сообщение #242





Guest Forum






Как сказали на семинаре в Русской Промышленной Компании, самый лучший Автокад - это... 2004-й.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kpblc
сообщение 9.9.2007, 20:40
Сообщение #243


CAD Developer


Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062



> OVKT : Полные данные на того, кто это сказал, пожалуйста. А так... "Бездоказательно, дорогой профессор. Бездоказательно".
Не верю я в это, не верю. 2004 - не самый плохой кад, но и не самый лучший. Я точно так же могу заявить, что 2006 самый крутой, или 2007. Или 2008.
> Supermax : Ну есть такая фраза: "Что бы мы ни делали, а мухи летом все равно будут". Лидера-то я давно выбрал, но 22 места AutoCAD LT тоже покоя не дают. Под LT я пишу не макросы, а лиспы, вполне нормально работающие (как правило). Есть, конечно, тонкости, но их достаточно мало.
То, что у тебя продвинутые выкинули вертикальные решения, показывают то, что отсутствовало какое бы то ни было сопровождение и наладка. Вопрос к продавцам софта. Читая, что Виталий Филин на autocad.ru делает в MEP, я тихо фигею - какие в нем (в софте, ессно) возможности скрыты.

Сообщение отредактировал kpblc - 9.9.2007, 20:44
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 10.9.2007, 20:28
Сообщение #244





Guest Forum






О! Возможности везде есть. Люди ведь не только за бабки пашут. Интерес и личные идеи реализовывают. Но есть такая пакость как эволюция. Проги, которые имеют то, что имеют благодаря их собственной эволюции так просто с наскока не напишешь. Опыт есть опыт. AutoCAD - эволюционный продукт. Когда начинают что-то с нуля, или на базе известной платформы, то с нуля, сами понимаете, а на базе платформы про саму платформу забывают. Она перестает эволюционировать и все в целом храмает на обе (или сколько там их у нее) ноги. Проанализируйте все продукты "на платформах" и увидите то, о чем мы тут печемся.
Это совсем не означает, что надо все продукты отвергать, просто не надо писать для всей линейки. Кесарю - кесарево, а слесарю - слесарево. Вот драйвера к плотерам ведь все разные. Для каждой операционки отдельно выпущены, а не адаптированы.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 10.9.2007, 22:20
Сообщение #245





Guest Forum






Спешу еще добавить, а то сейчас охранники заявятся и будут плакаться, что надо под охрану офис ставить.
Отсутствует общая идеология перспектив развития проектирования. Почти во всех институтах пытаются создать хоть какое-то подобие концепции этой самой перспективы, но разработчики всяких кадов эти концепции не видят, поскольку их к их созданию не привлекают. В результате реализовывать эти концепции нечем. Не видно в AutoCAD-e следов хоть как-то организованных идеалогий. Есть некоторые детали, да только в общую картину никак не склеиваются. Как скажите развивать програмный продукт, если проектирование не развивается?
Была с самого начала установка - с начала моделировать тело, а потом его в Layout-ах в разных ракурсах и разрезах показывать, так кроме железячников этим никто руководствоваться не спешит. Вот какого хрена сделали в AutoCAD-e возможность распечатывать Model? Как людей отучить теперь рамки со штампами в ней рисовать?
Предлагаю сделать диверсию - написать постоянно действующий макрос, который не дает печатать из модели.
Как только станет ясно как будет развиваться проектирование, сразу станет ясно что и как нам писать.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kpblc
сообщение 10.9.2007, 23:07
Сообщение #246


CAD Developer


Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062



Ну, по-моему, тут звучит "взгляд не с того конца истории". Пространство листа в AutoCAD'е же не сразу появилось. В 12-й версии под DOS его еще не было.
Цитата
Была с самого начала установка - с начала моделировать тело, а потом его в Layout-ах в разных ракурсах и разрезах показывать, так кроме железячников этим никто руководствоваться не спешит

Почему? Архитекторы, работающие в ADT, очень широко этим пользуются.
Цитата
Вот какого хрена сделали в AutoCAD-e возможность распечатывать Model?

Не дали, а оставили. Посмотрим, что будет в 2009 wink.gif
Цитата
Предлагаю сделать диверсию - написать постоянно действующий макрос, который не дает печатать из модели.

Я - пас. Из принципа.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Bers
сообщение 11.9.2007, 14:50
Сообщение #247





Группа: Участники форума
Сообщений: 1587
Регистрация: 24.1.2005
Из: Чита
Пользователь №: 384



Цитата(Supermax @ 11.9.2007, 5:20) [snapback]164719[/snapback]
...Вот какого хрена сделали в AutoCAD-e возможность распечатывать Model? Как людей отучить теперь рамки со штампами в ней рисовать?
Предлагаю сделать диверсию - написать постоянно действующий макрос, который не дает печатать из модели.
Как только станет ясно как будет развиваться проектирование, сразу станет ясно что и как нам писать.

Пардон за маааленький офф-топ. Если осуществить предлагаемую Вами диверсию, то 90% проектных контор на территории нашей необъятной Родины обанкротятся, по причине того, что не смогут распечатать свою продукцию. У Вас здесь интересный, конструктивный диалог о высоких материях, но в реальности львиная доля чертежей выполняется в модели вместе с "рамочками" и печатается оттуда же на струйных принтерах с использованием цветозависимого стиля печати по фамилии "monochrome". Это - будни проектировщиков "на местах" ("местами" эта реальность до сих пор не вышла за границы 14-й версии АвтоКАДа) и с ней (реальностью) тоже нужно считаться:-) Не смотря на все рассуждения, нужно более реально смотреть на вещи.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kpblc
сообщение 11.9.2007, 21:47
Сообщение #248


CAD Developer


Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062



> Bers : К сожалению (или счастью, не знаю), но минимальная версия AutoCAD'a была ограничена практически в самом начале темы - AutoCAD 2006. В R14 не было объектной модели и VBA, насколько я слышал; также там не было до конца реализовано пространство модели, про дин.блоки и палитры инструментов там даже заикаться не след - засмеют; arx еще не был привязан к студии от MS ну и так далее.
Кстати, эту "диверсию" выполнить лично мне (на моем сегодняшнем уровне знаний) невозможно априори. И кроме того, даже если она будет выполнена, я за полчаса (снести кад - очистить винт и реестр - поставить кад) эту диверсию ликвидну так, что и памяти о ней не останется.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 17.9.2007, 16:54
Сообщение #249





Guest Forum






Добавлю немного интересного.
Сейчас собираю дом из отдельных кирпичей, камней Knauf и пластинок-солидов иммитирующих раствор.
Все кирпичи, 2/3, половинки, четвертушки и все виды камней - блоки. Лежат в 0-ом слое. солиды раствора лежат в слое "Раствор кладочный".
С начала (после первых 5-ти рядов) модель стала очень тяжелой. Объединил ряды в блоки и модель стала легче, но по окончании 1-го этажа все равно стала грузить мою нервную систему.
Demontage написал макрос всего из трех кнопок "Включить все", "Оставить выделенное" и "Выключить выделенное". Все, что захочешь можно выключить не зависимо, в каком слое оно лежит.
Дело стало просто кайф!
Сохраняется модель с установками на выкл. и загружается тоже с выключенными элементами. Просто мгновенно!
Когда включаешь все, долго рисует, но рисует исправно, без выбросов "фатала егора". Только начинаешь крутить, или работать с полностью включенными элементами - все! Рушится!.
Хочу макрос переделать на включение и выключение по областям. Точка и радиус области, только не шар, а куб. Все, что в область попадает может быть выключено, или включено, а также вокруг области тоже самое.
Чтобы областей было несколько, вообще, чтобы создавались по желанию сколько хочешь.
А вот подсчет элементов можно делать и не включая их. От дома или этажа один только контур, а установив в нем область подсчитает все, что в ней. Зачем спрашивается их включать?.

Файл огромный, элементов в нем уйма, а работать с ним можно на любой, даже самой "недоукомплектованной" машине. Только меньше элементов надо включать. Я думаю, что даже подгрузку элементов при "включить все" надо делать лотами с диалогом типа "еще грузить?".
Вот делаешь теплопункт и возишся с обвязкой теплообменника, зачем тебе все остальное в памяти, да и обзор закрывает. Чудесный одним словом макрос получился.

Сообщение отредактировал Supermax - 17.9.2007, 19:59
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kpblc
сообщение 17.9.2007, 17:23
Сообщение #250


CAD Developer


Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062



Ххе, еще раз смотрим на пост #241. Кстати, интересно было бы посмотреть на этот макрос - насколько оно совпадает с моим кодом smile.gif.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 17.9.2007, 19:38
Сообщение #251





Guest Forum






На VBA и с панелью кнопок.
Скоро выложу.
Я чесно говоря, на эту строчку и внимание-то не обратил. А зря, зря!
Кнопки приделать к твоему макросу можно прямо кадовские, без напрягов с писанием панели.
Сейчас протестирую.
Все, протестировал.
И Дима Demontage, тобишь, и ты на одни и теже грабли наступили. Во, оказывается болезнь-то заразная, как бы не подхватить..
Когда выделяешь объекты и командуешь "скрыть выделенное" они скрываются, НО! не дезактивируются!
если после этого выделить какой-нибудь объект из оставшихся и его передвинуть, или еще хуже того - грохнуть, то и те, что скрылись, но не дезактивировались тоже сместятся или канут в небытие.
Включаешь "включить все" а их и нетути!
Я пол модели так грохнул, слава богу кад не выключал и назад откатил (2 часа упорного труда по восстановлению).
В конец надо эскейп вставить, а то люди могут пострадать!

Свй макрос я удалил, поскольку он хуже Kpblc-овского.

Сообщение отредактировал Supermax - 18.9.2007, 19:57
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kpblc
сообщение 18.9.2007, 11:11
Сообщение #252


CAD Developer


Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062



Работает только для пространства модели (то есть набор должен формироваться в пространстве модели).
Код
(defun kpblc-objects-hide (bit
                           /
                           *error*
                           _kpblc-error-catch
                           _kpblc-layer-status-restore
                           _kpblc-layer-status-save
                           selset
                           selset_all
                           msg
                           item
                           )
        ;|
*    Скрытие выбранных объектов / невыбранных объектов / показ всех объектов.
* Сделано в качестве попытки создания аналога ADT-шной команды Isolate objects.
* Работает только в активном пространстве.
*    Параметры вызова:
*  bit  что делать. 0 — показать все; 1 — скрыть выделенные; 2 — скрыть
*    все, кроме выделенных
*    Примеры вызова:
(kpblc-objects-hide 0); Показать все объекты
(kpblc-objects-hide 1); Скрыть выделенные объекты
(kpblc-objects-hide 2); Скрыть все, кроме выделенных
|;

  (defun *error* (msg)
    (_kpblc-layer-status-restore)
    (vla-endundomark *kpblc-activedoc*)
    (princ msg)
    (princ)
    );_ end of defun

  (defun _kpblc-error-catch (protected-function
                             on-error-function
                             /
                             catch_error_result
                             )
                ;|
*** Функция взята из книжной версии ruCAD'a без каких бы то ни было переделок,
*** кроме переименования.
*    Оболочка отлова ошибок.
*    Параметры вызова:
*    protected-function    - "защищаемая" функция
*    on-error-function    - функция, выполняемая в случае ошибки
|;
    (setq catch_error_result (vl-catch-all-apply protected-function))
    (if (and (vl-catch-all-error-p catch_error_result)
             on-error-function
             );_ end of and
      (apply on-error-function
             (list (vl-catch-all-error-message catch_error_result))
             );_ end of apply
      catch_error_result
      );_ end of if
    );_ end of defun

  (defun _kpblc-layer-status-restore (/ item)
                ;|
*    Восстановление состояния слоев из глобального списка
* *kpblc-list-layer-status*
*    Параметры вызова:
*    нет
*    Примеры вызова:
(_kpblc-layer-status-restore)
|;
    (if *kpblc-list-layer-status*
      (progn
        (foreach item *kpblc-list-layer-status*
          (_kpblc-error-catch
            '(lambda ()
               (vla-put-freeze (car item) (cdr (assoc "freeze" (cdr item))))
               );_ end of LAMBDA
            nil
            );_ end of _kpblc-error-catch
          (_kpblc-error-catch
            '(lambda ()
               (vla-put-lock (car item) (cdr (assoc "lock" (cdr item))))
               );_ end of LAMBDA
            nil
            );_ end of _kpblc-error-catch
          );_ end of foreach
        );_ end of progn
      );_ end of if
    (setq *kpblc-list-layer-status* nil)
    );_ end of defun

  (defun _kpblc-layer-status-save (layers-on / item)
                ;|
*    Разблокировка и разморозка всех слоев активного документа. Состояние
* сохраняется в глобальном списке *kpblc-list-layer-status* вида
* '(vla-указатель ("freeze" . :vlax-true) ("lock" . :vlax-false))
*    Параметры вызова:
*    layers-on    включать слои (t) или нет (nil)
*    Примеры вызова:
(_kpblc-layer-status-save t)
|;
    (vlax-for item (vla-get-layers *kpblc-activedoc*)
      (setq *kpblc-list-layer-status*
             (append *kpblc-list-layer-status*
                     (list
                       (list item
                             (cons "freeze" (vla-get-freeze item))
                             (cons "lock" (vla-get-lock item))
                             );_ end of list
                       );_ end of list
                     );_ end of append
            );_ end of setq
      (if layers-on
        (progn
          (_kpblc-error-catch
            '(lambda ()
               (vla-put-freeze item :vlax-false)
               );_ end of LAMBDA
            nil
            );_ end of _kpblc-error-catch
          (vla-put-lock item :vlax-false)
          );_ end of progn
        );_ end of if
      );_ end of vlax-for
    );_ end of defun

  (vl-load-com)
  (or *kpblc-activedoc*
      (setq *kpblc-activedoc* (vla-get-activedocument (vlax-get-acad-object)))
      );_ end of if
  (vla-startundomark *kpblc-activedoc*)
  (_kpblc-layer-status-save t)
  (cond
    ((= bit 1) (setq msg "Скрыть выделенные объекты"))
    ((= bit 2) (setq msg "Скрыть кроме выделенных"))
    );_ end of cond
  (if (= bit 0)
    (progn
      (foreach item
               (mapcar
                 'vlax-ename->vla-object
                 (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget "_A"))))
                 );_ end of mapcar
        (vla-put-visible item :vlax-true)
        );_ end of foreach
      );_ end of progn
    (progn
      (setq selset (ssget "_I"))
      (while (not selset)
        (prompt msg)
        (setq selset (ssget))
        );_ end of while
      (cond
        ((= bit 1); Скрывать выделенные
         (foreach item
                  (mapcar 'vlax-ename->vla-object
                          (vl-remove-if 'listp (mapcar 'cadr (ssnamex selset)))
                          );_ end of mapcar
           (vla-put-visible item :vlax-false)
           );_ end of while
         )
        ((= bit 2); Скрывать кроме выделенных
         (setq selset_all (ssget "_A"))
         (while (and selset_all (> (sslength selset_all) 0))
           (setq item (ssname selset_all 0))
           (ssdel item selset_all)
           (if (not (ssmemb item selset))
             (vla-put-visible (vlax-ename->vla-object item) :vlax-false)
             );_ end of if
           );_ end of while
         )
        );_ end of cond
      );_ end of progn
    );_ end of if
  (sssetfirst nil nil)
  (_kpblc-layer-status-restore)
  (vla-endundomark *kpblc-activedoc*)
  (princ)
  );_ end of defun

(defun c:hideobj (/ answer)
  (vl-load-com)
  (if
    (not (vl-catch-all-error-p
           (vl-catch-all-apply
             '(lambda ()
                (initget
                  "Показать Выделенные Кроме Show SElected Exculde _ 0 1 2 0 1 2"
                  );_ end of initget
                (setq answer
                       (getkword
                         "\nЧто делаем [Показать все/скрывать Выделенные/скрывать Кроме выделенных] <Отмена> : "
                         );_ end of GETKWORD
                      );_ end of setq
                );_ end of lambda
             );_ end of vl-catch-all-apply
           );_ end of vl-catch-all-error-p
         );_ end of not
     (kpblc-objects-hide (atoi answer))
     );_ end of if
  );_ end of defun

P.S. Код из #253 снес
P.P.S. Загружать все, вызов с ком.строки - hideobj.

Сообщение отредактировал kpblc - 19.9.2007, 15:19
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 18.9.2007, 18:24
Сообщение #253





Guest Forum






С замком стало все в порядке, вот разморозка не хочет размораживаться, да и у меня при замораживании объекты с экрана исчезают. Вообще-то я этим "холодильником" не пользуюсь может чего-то не так делаю?
Ты можешь мне объяснить зачем нужен этот "Freeze"?

Предлагаю ничего не менять, а просто хелпик в макросе подтереть. Оставить только включение и выключение. И так нормально аж до визгу.

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

Сообщение отредактировал Supermax - 18.9.2007, 20:01
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kpblc
сообщение 18.9.2007, 20:46
Сообщение #254


CAD Developer


Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062



Ну я ж не автодеск... Глобальным Freeze я пользуюсь если надо и объекты скрыть, и защитить их от удаления (простое выключение слоя от ctrl+a не спасает). А вот внутри видовых экранов - очень полезная штука.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 19.9.2007, 14:52
Сообщение #255





Guest Forum






Kpblc, как тебе краники и прочие детали? Ты говорил, что живешь на DWG.RU. Это я только 20-30 меговые папки кидаю, а у меня еще и 300 меговые есть, да и новый диск ожидаю на днях.
Очень плохо, что там только солиды, да и многие из отдельных солидов состоят (шпильки, гайки и т.п.) все не раскрашенное и без опознавательных данных. Такого понатыкаешь в монтажку, до-о-олго голову будешь ломать над тем ху-из-ху.

Консолидация мозгов и трудовых резервов в интернете не идет пока накак. Говоришь людям: "давайте все вместе, каждый по штучке" а они молчат, попрятались и ждут, когда найдуться человек 100 дураков, все сделают и им дадут на халяву. Наши производители - вообще отдельная песня. Сайты у них - без слез смотреть нельзя. Видно, что напрягаются, да только от напряжения свои извилины выпрямляют.
Предложил серию ППУ труб забацать дин. блоками. Научить готов, хочу взамен 4 штуки таких, каких у меня нет. Наверное много хочу. Самое интересное, что у меня на всю серию графика готова. Осталось взять существующий блок и отредактировать. Нет, и этого оказывается много за знания. Пишут крики о помощи найти литературу по дин. блокам, а принять мое предложение слабо.
ХАЛЯВЩИКИ! Как я их всех ненавижу!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kpblc
сообщение 19.9.2007, 15:14
Сообщение #256


CAD Developer


Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062



ты про download тамошний? Я его не отслеживаю - и без того негрустно (хочешь, посмотри, к примеру, задачку http://dwg.ru/forum/viewtopic.php?p=174368 - у меня что-то логика зашкалила.
Насчет "кто есть ху" - попробуй использовать группы, может, они тож помогут.
Добавлено: Посты почистил по обсуждению кода

Сообщение отредактировал kpblc - 19.9.2007, 15:18
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
mmax
сообщение 19.9.2007, 23:41
Сообщение #257





Группа: Участники форума
Сообщений: 51
Регистрация: 18.6.2007
Из: Череповец
Пользователь №: 9568



Поробую вернуться к теме создания спецификации.
Мной было замечено и случайно установлено, что
В ОС Vista, если компьютор перезагружен, и после перезагрузки Excel ниразу не запускался, то при выполнении кода
Код
(setq excelobj (vlax-create-object "Excel.Application"))

excelobj получается только если выполнить код 2-3 раза. Первый запуск будет nil 100%.
тоже самое в VS2005
Код
dim excelobj as object
excelobj = createobject("Excel.Application", "")

тут ошибка Err().Number = 429.
при повторных запусках объект получается без проблем.

Если же ексель запускался обычным образом, то объект формируется с первого раза



Если в бейсике можно проигнорировать ошибку без проблем, добавив:
Код
on error resume next

и до end sub все ошибки будут проигнорированы.

То в лиспе вот так вот просто это сделать не получится.
Есть над чем голову поломать.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kpblc
сообщение 20.9.2007, 0:21
Сообщение #258


CAD Developer


Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062



В лиспе есть специальная функция (vlax-get-or-create-object), ею и пользуйся. Ведь и в VB приходится делать аналог:
Код
' VB 6.0, VBA
Sub Main()
Dim objExcel As Object
  On Error Resume Next
  Set objExcel = GetObject("Excel.Application", "")
  If Err.Number <> 0 Then
    Err.Clear
    On Error GoTo 0
    Set objExcel = CreateObject("Excel.Application")
  End If
  ' Ну и тут пошли операции с ним
End Sub

Код
' VB.NET 2002Public Function MyFunc()
        Dim objExcel As Object
        Try
            objExcel = GetObject(, "Excel.Application")
        Catch
            objExcel = CreateObject("Excel.Application"))
        End Try
        ' Ну и так далее
    End Function

В .NET я не работаю (не довелось sad.gif), так что там могут быть проблемы.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
mmax
сообщение 20.9.2007, 17:22
Сообщение #259





Группа: Участники форума
Сообщений: 51
Регистрация: 18.6.2007
Из: Череповец
Пользователь №: 9568



Ты так ничего и не понял.
GETobject, не даст объекта, даже с сотого запуска, если ексель в данный момент не запущен.
CREATEobject дает объект даже если приложение НЕ запущено, если приложение запущено, то она запустит его в отдельном процессе.
Это делаеца одинаково что в VS что в LISP.

Тут ситуация другая: в ос Windows Vista нужна функция create-or-create-object

если я ВКЛЮЧИЛ компьютор, и сразу запустил программу взаимодействующую с екселем, НЕ запуская ексель обычными способами, то функция CREATEobject не даст объекта, с первого раза.
пару раз замечалось, что объект получается только с третьего раза.

если я ВКЛЮЧИЛ компьютор, и запустил Ексель из меню пуск, а потом закрыл его. Или пользовался программами которые используют объектную модель екселя
то CREATEobject сработает сразу.

Тоесть получается вывод, если в процессе работы компьютора, с момента его включения, к екселю не было обращений, то функция CREATEobject возвратит объект только если ее запустить не менее 3х раз, причем это самое количество раз окончательно не установлено.
Если в автокаде выполнить 1раз (vlax-create-object), то возвратится nil, а потом в VS CREATEobject, то объект получается. Тоже самое наоборот VS CREATEobject = ошибка -> (vlax-create-object)=vlaobject, тоже самое c (vlax-get-or-create-object) -- превый раз пролетаем.

Моя программа не связана с автокадом, автокад я пробовал для сравнения и результат одинаковый.
мне без разницы запущен ексель или нет, экспорт выполняется в один клик и при каждом клике запускается ексель с новой книгой и уже заполненой таблицей и моя программа на этом прекращает взаимодействие с екселем, сохранение и редактирование полученного документа отдаются на растерзание пользователю средствами самого екселя.

для того чтобы дотучаться до объекта, пришлось сделать вот так:

Код
Dim eobj As Object
        On Error Resume Next
        Err().Clear()
        eobj = CreateObject("Excel.Application", "")
        MsgBox(eobj) 'если объект найден этого сообщения не будет, если не найден будет сообщение без текста

        If Err().Number = 429 Then
            Err().Clear()
            eobj = CreateObject("Excel.Application", "")
            MsgBox(eobj)
        End If


        If Err().Number = 429 Then
            Err().Clear()
            eobj = CreateObject("Excel.Application", "")
            MsgBox(eobj)
        End If

        If Err().Number = 429 Then
            Err().Clear()
            MsgBox("Excel not found")
        End If


Не знаю, есть ли такая проблема в XP, у меня Vista.
также не установлено проблема это только с объектами офиса, или такая бодяга и с другими приложениями.
У Vistы есть еще одна проблема, ЗАКРЕПЛЕННЫЕ в меню пуск ярлыки AutoCAD2008EN, Excel Word (2003), не работают вообще. А которые в ПУСК->Программы и перетащенные на рабочий стол работают.

Вобщем я хочу поднять вопрос о совместимости.
Если так прикинуть, то в старых программах есть средства обработки событий связанных с отсутствием чего либо и особо страшного ничего не произойдет.
но вот конкретно в моей ситуации это самое "чего либо" присутствует и зарегистрировано, но при первом запуске раньше всегда получалось NOT FOUND, а потом работает нормально. Мелочь но НЕприято mad.gif .
И если моя теперяшняя программа запрашивает объект три раза, и это не гарантирует положительного результата, то при использовании старой прораммы в новой ОС нас может ждать полный Not Found.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kpblc
сообщение 20.9.2007, 19:52
Сообщение #260


CAD Developer


Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062



Ну извини, я Vista не ставил - машина не потянет, да и многие вещи (в том числе и по работе) приходится делать с расчетом на Win2k, максимум на ХР. Скорее всего, у тебя в офисе не установлена поддержка .NET-программирования (это только мои подозрения, не больше). И, как следствие, у тебя идет попытка найти офисные приложения через старые API-функции и не находит. А то, что после запуска обнаруживается - ну бог его знает, по каким причинам. ЯТД, проблема в ОС.
---
Добавлено: хотя на фига открывать Excel, я не очень понимаю. Учитывая тенденции некоторых контор переходить на OpenOffice, решение теряет смысл. Файл можно и так записать - хоть как xls (обычный текстовый файл, с разделением \t), хоть как xml, проанализировав тот вариант, который сделает Excel. Работка муторная, но иногда необходимая.

Сообщение отредактировал kpblc - 20.9.2007, 20:11
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
mmax
сообщение 20.9.2007, 20:26
Сообщение #261





Группа: Участники форума
Сообщений: 51
Регистрация: 18.6.2007
Из: Череповец
Пользователь №: 9568



Ну не везде так плохо. На завод врядли пустят представителей Microsoft, для проверки компов. Всетаки частная собственность, объект повышенной опасности итп, служба охраны круче ФСБ....

Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 21.9.2007, 10:29
Сообщение #262





Guest Forum






Kpblc, с темы в DWG.RU про маркировку я ушел. Не та тусовка. Лично тебе скажу, Свойство длинны дублировать атрибутом DLINA - глупо. Надо читать свойство (тут у нас в теме это описано), округлять значение и прописывать полученное значение этому же свойству. Элементы слегка дернуться и станут видны нахлесты, или недостача. Все *Unnn тоже подравняются и будут готовы к использованию (если то потребуется).
Проставлять на плане вместо номера элемента номер позиции в спецификации, что окрестили как маркировка (хотя маркировка это присвоение марки изделию) - продукт деградации нашего проектного дела. Я не могу так маркировать элементы только по тому, что мне приходится составлять тех. карты в которых я должен описать последовательность установки изделий, даже если они все одинаковые. Вот пронумеровать их так, чтобы одна длина была описана номерами без пропусков 1, 2, 3, ....10, 11 а следующая длина была 12, 13, 14, .... 21, 22 и т.д. дело стоящее. Тогда в спецификации пишется все замечательно Длина 1 эл.ты №1-11. Длина 2 Эл.ты 12-22. Собрать все имена блоков, подравнять длины, сгруппировать, ну и посчитать заодно и промаркировать.
Так, что-то мы забежали очень далеко в перед. Но концепция примерно такая.

Добавил: VVA я сюда завернул, может и пригодится.

Сообщение отредактировал Supermax - 21.9.2007, 11:02
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kpblc
сообщение 21.9.2007, 13:58
Сообщение #263


CAD Developer


Группа: Участники форума
Сообщений: 409
Регистрация: 6.2.2006
Из: C.-Петербург, Россия
Пользователь №: 2062



Я не в силах спорить (температурю со страшной силой), хочу только одно сказать - твой подход может оказаться неприменим в некоторых областях. Например, при проектировании навесных фасадов одинаковые элементы маркируются (им проставляются позиции) одинаково. Может, еще и в ЖБ аналогично - не помню. Я ж не зря в самом начале говорил, что надо определяться с тем, какие критерии важны. Потому что если этого не сделать, то получается нечто типа того чудовища, что я выкладывал.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 21.9.2007, 15:03
Сообщение #264





Guest Forum






Твое возражение принимаю, но замечу, что голыми цыфрами это делать нельзя. Вот чел. стойки на чертеже указал и спецификацию что, только на стойки выпустил? Интересная спецификация однако... Ладно, на том же листе табличку вставил, а проект что из одного листа состоит? В конце общую спецификацию что Бобринский делать будет? Или при заказе материалов снабженцу все чертежи перелопачивать прийдется?
Чтобы на эту тему больше не болела голова, предлагаю выделить место в атрибутах и для позиции, и для номера элемента. Так будет на все случаи жизни.
К стати надо не в программу вводить буквы, а читать значение в этом атрибуте и соединять с ним цифру из проги.
Атрибут в блоке лежит скажем со значением "Стойка-" Чел. копирует этот блок туда, сюда, а прога все просчитав прибавляет к Стойка- цыфру 5 (к примеру) Получается Стойка-5.
Так какие хочешь обозначения писать можно. И вот тогда, меняя имя блока можно нумеровать в пределах одной группы.
Для длинномеров это не подойдет. Одна группа - труба ППУ ДУ-57, другая группа - Труба ППУ ДУ-159, позиции в спецификации не просто разные, в каждой группе еще и длины разные, а это значит, что в следующей группе первым номером должен стоять следующий после последнего в предидущей группе. На чертеже не укажешь в кружочке "Труба ППУ ДУ-57-номер позиции". Если оставить одни цифры например: 159-22 где 159 это Труба ППУ ДУ-159, а 22 это номер позиции, то 159-22 рядом с элементом никто с набегу понять не сможет. Тем более, что 159 может быть безусловная отметка поверхности земли и вся геоподоснова может ими быть испещрена.

Надо использовать Tolerance.

Так в принципе что-то вырисовывается, Берем и выравниваем длины всем блокам, какие нужно подравнять. Затем, выбираем все, которые надо нумеровать и позиционировать, в смысле присваивать номер позиции. Берем первое имя, анализируем массив, позиционируем и нумеруем, записываем последние значения позиции и номера, берем следующее имя и т.д.

Сообщение отредактировал Supermax - 21.9.2007, 15:11
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 22.9.2007, 12:17
Сообщение #265





Guest Forum






Kpblc, как здоровье? Ты что подхватил? Тебе болеть нельзя! Ты Родине нужен!
Павлов когда умирал, он заставил своих учеников стоять над ним и записывать то, что он им говорит. А он им говорил, то что с ним в данный момент происходило. Они плакали, но писали. Не помню, на чем закончилась эта экзекуция, но про то, что ноги у него перестали чувствоваться он им сообщить успел.
Kpblc, можно ли программно переименовать один конкретный блок? Вот их у меня штук сто, а мне надо один изменить, тобишь создать новый с таким же именем и местоположением и заменить им старый. Понятно, что если задавать уже имеещееся имя, прога должна ругаться, но в принципе, ты с такой задачей когда-нибудь сталкивался?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
mmax
сообщение 22.9.2007, 12:24
Сообщение #266





Группа: Участники форума
Сообщений: 51
Регистрация: 18.6.2007
Из: Череповец
Пользователь №: 9568



если не поможет vla-put-name или еще какойнибудь vla-put*, то остается только вычистить его из документа и вставить новый з новым именем.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 22.9.2007, 12:35
Сообщение #267





Guest Forum






Ты представляешь, что такое "вставить"? В нем сотни две элементов поставленные на элементы предидущего блока, который потом выключается, а эти элементы объединяются в новый блок, потом он копируется и вот доходит до такого места, где он уже чуть-чуть не катит. Если бы его переименовать как-то, я бы его редактором открыл и детальку подвинул, а так, надо все кроме него выключать, взрывать, потом все включать, а это ого-го сколько включется. Мне столько включать не надо, потому, что может слететь. Даже если я все включу, потом выключать опять прийдется.
Не, надо ничего трогать. Надо поменять блоку имя. Но как?

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

Сообщение отредактировал Supermax - 22.9.2007, 12:32
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
mmax
сообщение 22.9.2007, 12:42
Сообщение #268





Группа: Участники форума
Сообщений: 51
Регистрация: 18.6.2007
Из: Череповец
Пользователь №: 9568



Вот все работает и не надо ничего чистить.
Код
(vl-load-com)
(setq blockref (vlax-ename->vla-object (car(entsel "\nSelect Block"))))

(setq bloks (vla-get-blocks (vla-get-activedocument(vlax-get-acad-object))))

(setq block (vla-item bloks (vla-get-name blockref)))

(vla-put-name block "MyName")


соответственно переименовываются и все вставленные в модель и листы
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 22.9.2007, 13:05
Сообщение #269





Guest Forum






Не-е брателло, так не пойдет. Так он всем вхождениям меняет имя, так я и через rename сделаю.
Мне надо конкретное 100-ое вхождение старого блока сделать первым вхождением нового.
Говорю же надо описание блока копировать.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_Supermax_*
сообщение 22.9.2007, 13:52
Сообщение #270





Guest Forum






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

Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

20 страниц V  « < 7 8 9 10 11 > » 
Добавить ответ в эту темуОткрыть тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

Реклама
ООО «Арктика групп» ИНН: 7713634274




Реклама: ООО «СибСтронг» | ИНН 6670013662 | ERID: 2VtzqvWgxEU

ООО «УНИСПЛИТ» ИНН: 6453155081 erid:2VtzqvybpdW

Реклама: ООО «СЛ-ЛАЗЕР» ИНН 7727447267 | erid: 2VtzquvhFWx
Последние сообщения Форума






RSS Текстовая версия Сейчас: 4.8.2025, 21:41
Политика ООО ИИП «АВОК-ПРЕСС» в отношении обработки персональных данных