| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
19.09.2008, 15:55 | #1 | |
Циклическое выполнение функции... как?
Инженер-электрик
Калининград
Регистрация: 13.10.2007
Сообщений: 151
|
||
Просмотров: 3830
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,833
|
Или использовать набор, например?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер-электрик Регистрация: 13.10.2007
Калининград
Сообщений: 151
|
Кулик Алексей aka kpblc, Использовать набор не получиться, потому как нельзя заранее определить какие именно светильники придется заменить.
А почему происходит сбой программы? Не могу понять, ведь я их заранее определяю... ЗЫ. Благодарю за помощь с _dwgru-getkword и dwgru-error-catch!!!! Если эти функции позволяют мне программно "Расставить" светильники по комнате, то эта функуция чтобы "Определить в комнате АВАРийные светильники", а для этого надо заменить один блок другим. zenon, Этот вариант тоже не пойдет - потому что этот код лишь часть от другого и надо заставить его выполняться пока я не прерву функцию...
__________________
Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. /В. Гюго/ |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Примерно так цикл делается:
Код:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,833
|
Вариант:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер-электрик Регистрация: 13.10.2007
Калининград
Сообщений: 151
|
Кулик Алексей aka kpblc,
После выполнения почему-то "Выбивает" AutoCAD. Блок вставляется, как я понял - анонимный. Для ясности: На чертеже определено 4 динамических блока (условное обозначение светильников - с люминисцентными лампами и лампами накаливания - ЛЛ и ЛН и их аварийные дубликаты ЛЛ_АВАР и ЛН_АВАР, которые различаются цветом и подписью "А", где "А" - текст, который который можно двигать). Поскольку светильники могут быть разными, то в параметре Visibility Set тупо забиты названия светильников, и - если поменять параметр - условное обозначение светильника не изменится, меняется только параметр, т.е. "Тип светильника". При расстановке блоков (сначала только ЛЛ или ЛН) благодоря твоей программе _kpblc-change-dyn-block-prop, и многим функциям с форума. Автоматически расстанавливаются светильники с уже заданными параметрами видимости , поэтому для того чтобы заменить всетильник необходимо, что бы вставляемый блок унаследовал все свойства заменяемого. Вот что у меня получилось: Код:
Можт подскажешь )))) От циклического выполнения отказался - вник советам - посадил на кнопку.
__________________
Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. /В. Гюго/ |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,833
|
По-моему, сначала не было сказано о том, что блоки динамические. Для них далеко не все так просто, как я нарисовал. Сейчас времени нет, может, попозже нарисую вариант.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
проектировщик-электрик Регистрация: 20.12.2007
Челябинск
Сообщений: 474
|
Kostinok, Приложи файл с блоками светильников. А лучше кусочек чертежа.
Я эту проблему по-другому решаю (т.к. программировать не умею ). У меня в параметре видимости как раз висит буква "А", а название светильника я вручную ввожу (в атрибут). А в аварийную сеть я его включаю просто перенося на другой слой (аварийное освещение). Есть другой вариант если хочешь чтобы название светильника было в параметре видимости. Можно букву "А" просто масштабировать, чтобы в обычном варианте ее не было видно. Не знаю кем это придумано, первый раз я такое увидел в блоках у Krieger'а. Прикладываю 2 варианта блока. Второй вариант очень сырой, просто для того чтобы показать принцип действия сказанного. |
|||
|
||||
Инженер-электрик Регистрация: 13.10.2007
Калининград
Сообщений: 151
|
Volodich, Хотелось сделать так же как и у тебя, но тогда, как это обычно происходит, может подвести человеческий фактор - без него никуда, я отказался по 2-м причинам:
1. Постоянно прописывать имя своего светильника - ЛЕНЬ и можно легко наврать ведь, как я понимаю, атрибут "МАРКА" по идее НЕ видим; Можно конечно задать несколько атрибутов с названиями светильников, ну а потом при выборе "такого-то типа", просто присвоить значение 1 атрибуту "такой-то тип", но тогда можно ставить и ставить, а вот удалять эти единички - забыться можно, и извлечь потом "чЁрти чЁ" - Тоже БРЕД. 2. Расставляя впопыхах блоки, забыть что ни будь исправить, и вставить с ошибкой. Конечно, все эти ошибки я могу сделать и со своими блоками, но - своя рубашка ближе к телу.. Здесь на форуме есть очень много замечательных функций, благодаря которым, когда я вставляю светильник у меня сразу вылетает вопрос: "Какой тип светильника будем вставлять?", и выбирая из списка тип светильника и указывая точку вставки - получаю без проигрышный вариант Ну а расставив светильники одним кликом заменяю необходимые светильники аварийными, оставляя последние на том же слое (если надо слой можно поменять!). Благодаря программе VVA, позволяющей извлекать из динамических блоков параметр видимости. Сразу получаю мощность и спецификацию. В приложенной файле светильники. Если идея понравилась могу скинуть - попробуешь.
__________________
Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. /В. Гюго/ |
|||
|
||||
проектировщик-электрик Регистрация: 20.12.2007
Челябинск
Сообщений: 474
|
Kostinok, ты меня не понял. Я тебе просто идею показал как можно сделать по-другому.
Доделал свой блок до более понятного варианта. Объясняю плюсы. 1) Работаешь точно так же, т.е. тип светильника "забит" в параметр видимости. 2) Атрибут я сделал для наглядности, чтобы как раз избежать ошибок. 3) Первоначально название светильника я сделал в атрибуте, т.к. я подумал, что сложно все возможные светильники перечислить будет сложно, а вдруг появится новый тип? Но с другой стороны наверное лучше когда они все уже перечислены и ты только выбираешь. А по мере появления новых светильников можно редактировать блок. 4) По поводу слоя... У меня они сразу разделены. 5) Не знаю, обратил ты внимание или нет, но у меня на весь светильник сделан wipeout, чтобы не рвать линию, на которой светильник "висит". Я тут на форуме нашел программку, которая "поднимает" все блоки с wipeout наверх. Если надо, приложу здесь. Kostinok, выложи, пожалуйста, программку VVA, которая извлекает из дин блоков параметр видимости. Я сейчас пользуюсь EATTEXT, но это не очень удобно. P.S. А у нас принято светильники типа ARS показывать квадратиками... не по ГОСТ, конечно, но зато понятно И вопрос, как ты показываешь светильники с КЛК?
__________________
Неважно, что что-то идет неправильно. Возможно, это хорошо выглядит... |
|||
|
||||
проектировщик-электрик Регистрация: 20.12.2007
Челябинск
Сообщений: 474
|
Блин, блок-то забыл приложить
Да, еще забыл сказать, атрибут обновляется при регенерации чертежа. Можно сделать чтобы обновлялся мгновенно (подсмотрел у Supermax), но это мороки много. Пока неохота делать. Нужно в каждой видимости прописать текст с маркой светильника. И делать его видимым только в данном представлении.
__________________
Неважно, что что-то идет неправильно. Возможно, это хорошо выглядит... |
|||
|
||||
Инженер-электрик Регистрация: 13.10.2007
Калининград
Сообщений: 151
|
Volodich,
Идея с wipeout - СУПЕР!!! Огромное спасибо, делаешь, делаешь себе блоки всякие и все равно - что нибудь да упустишь, или не догадаешься вообще!!! Для выбора примитивов пользуюсь программой Александра Ривилиса "ObjectARX. SelSim — выбор по образцу". Вот код VVA, вызов - bcnt Код:
Код:
(Возмущенно) Ах вы Цитата:
Пришли ко мне как то планы архитекторов, там все такими вот светильниками, да еще не блоками, да еще из Архикада. Вот до сих пор вспоминаю Как я все это перебивал... Светильники с КЛК никак не показываю, потому что к своему стыду не знаю, что такое КЛК и с чем его едят.
__________________
Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. /В. Гюго/ |
|||
|
||||
проектировщик-электрик Регистрация: 20.12.2007
Челябинск
Сообщений: 474
|
Спасибо! Лисп-то нужен для поднятия всех блоков с wipeout наверх? Или он у тебя уже есть? Иначе если сначала поставишь светильник, а потом проведешь линию, она будет сверху.
Цитата:
С извлечением попробую разобраться чуть позже. А что, список светильников будет в экселе? Про КЛК извиняюсь, это я очепятался. Я имел ввиду КЛЛ - компактные люминисцентные лампы. Кстати, предлагаю еще обменяться идеями и другими блоками. Будет поле для творчества. У меня есть по электрической части еще динамический разрез траншеи, выключатель и выноска списка кабелей. Хочу еще сделать толи разрез кабельного канала, толи просто блок стойка+полка динамический. Еще не решил. Какие еще можно сделать блоки для удобства работы пока не придумал.
__________________
Неважно, что что-то идет неправильно. Возможно, это хорошо выглядит... |
|||
|
||||
Инженер-строитель Регистрация: 15.08.2007
Киров
Сообщений: 2,204
|
Цитата:
|
|||
|
||||
Инженер-электрик Регистрация: 13.10.2007
Калининград
Сообщений: 151
|
Volodich,
Да список будет состоять из наименования блоков и их состояния Visibility Set-а. Обязательно попробуй, должно понравиться. КЛЛ - используем очееееееень редко, настолько, что я еще ни разу не использовал). В блоках у меня Выключатели нагрузки, Выключатели напряжения, Штепсельные розетки, Щиты, Узлы прокладки траншей. Хотел спросить: Как решаешь вопрос со спецификацией? Сделано, что нибудь для увеличения производительности? Просто у меня есть некоторые идеи, но думаю, что они слишком трудоемкие. Может что подскажешь... По блокам вроде все. А вот с поднятием наверх: Можно выбрать все свои светильники, потом правой кнопкой и Bring to Front. Может и не правильно, но свои блоки пока еще не подправил. Програмку пожалуйста скинь.
__________________
Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. /В. Гюго/ |
|||
|
||||
проектировщик-электрик Регистрация: 20.12.2007
Челябинск
Сообщений: 474
|
Makswell, Да, да, это оно! Именно эта функция! Kostinok, рекомендую ту тему почитать и взять себе на вооружение.
Цитата:
Если не жалко, выложи свои блоки, я свои. Обсудим. Со спецификацией это пока проблема. Автоматически не могу пока придумать как заполнять. Пока проще SelSlim-мом выделять и считать. Как считать кабели особая проблема. 1. Для внутрянки можно делать слои 2х1,5; 3х1.5; 4х1,5 и т.п. Чертить четко в этих слоях, а потом общую длину смотреть программкой GeomPrompts. С поправками, конечно. 2. Я в основном делаю внешние сети, поэтому пользуюсь программкой FDIST - без нее вообще не могу. Хотя и наши "внутрянщики" уже попривыкли и говорят не представляют себе как без нее работать. Суть - тыкаешь мышкой в точки прохождения кабеля, а программка сама считает длину трассы с учетом масштаба. Расскажи свои трудоемкие идеи, подумаем.
__________________
Неважно, что что-то идет неправильно. Возможно, это хорошо выглядит... |
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как передать функции (getkword) Список ключевых слов из списка? | Kostinok | Программирование | 31 | 31.05.2012 13:08 |
Предложение: Готовые функции | Apelsinov | Библиотека функций | 170 | 27.06.2010 23:51 |
на злобу дня !! | zaza-noza | Разное | 63 | 22.05.2009 15:10 |
Как из исходного файла передать выполнение в другой файл? | elena_k | Программирование | 6 | 04.04.2008 16:30 |
БРЕД СИВОЙ КОБЫЛЫ | Kryaker | Разное | 1876 | 29.12.2006 23:41 |