|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Циклическое выполнение функции... как?
Инженер-электрик
Калининград
Регистрация: 13.10.2007
Сообщений: 151
|
||
Просмотров: 3924
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,408
|
Или использовать набор, например?
__________________
Моя библиотека 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,372
|
Примерно так цикл делается:
Код:
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,408
|
Вариант:
Код:
__________________
Моя библиотека 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
С.-Петербург
Сообщений: 40,408
|
По-моему, сначала не было сказано о том, что блоки динамические. Для них далеко не все так просто, как я нарисовал. Сейчас времени нет, может, попозже нарисую вариант.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
проектировщик-электрик Регистрация: 20.12.2007
Челябинск
Сообщений: 475
|
Kostinok, Приложи файл с блоками светильников. А лучше кусочек чертежа.
Я эту проблему по-другому решаю (т.к. программировать не умею ![]() Есть другой вариант если хочешь чтобы название светильника было в параметре видимости. Можно букву "А" просто масштабировать, чтобы в обычном варианте ее не было видно. Не знаю кем это придумано, первый раз я такое увидел в блоках у Krieger'а. Прикладываю 2 варианта блока. Второй вариант очень сырой, просто для того чтобы показать принцип действия сказанного. |
|||
![]() |
|
||||
Инженер-электрик Регистрация: 13.10.2007
Калининград
Сообщений: 151
|
Volodich, Хотелось сделать так же как и у тебя, но тогда, как это обычно происходит, может подвести человеческий фактор - без него никуда, я отказался по 2-м причинам:
1. Постоянно прописывать имя своего светильника - ЛЕНЬ и можно легко наврать ведь, как я понимаю, атрибут "МАРКА" по идее НЕ видим; Можно конечно задать несколько атрибутов с названиями светильников, ну а потом при выборе "такого-то типа", просто присвоить значение 1 атрибуту "такой-то тип", но тогда можно ставить и ставить, а вот удалять эти единички - забыться можно, и извлечь потом "чЁрти чЁ" ![]() 2. Расставляя впопыхах блоки, забыть что ни будь исправить, и вставить с ошибкой. Конечно, все эти ошибки я могу сделать и со своими блоками, но - своя рубашка ближе к телу. ![]() Здесь на форуме есть очень много замечательных функций, благодаря которым, когда я вставляю светильник у меня сразу вылетает вопрос: "Какой тип светильника будем вставлять?", и выбирая из списка тип светильника и указывая точку вставки - получаю без проигрышный вариант ![]() Благодаря программе VVA, позволяющей извлекать из динамических блоков параметр видимости. Сразу получаю мощность и спецификацию. В приложенной файле светильники. Если идея понравилась могу скинуть - попробуешь.
__________________
Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. /В. Гюго/ |
|||
![]() |
|
||||
проектировщик-электрик Регистрация: 20.12.2007
Челябинск
Сообщений: 475
|
Kostinok, ты меня не понял. Я тебе просто идею показал как можно сделать по-другому.
Доделал свой блок до более понятного варианта. Объясняю плюсы. 1) Работаешь точно так же, т.е. тип светильника "забит" в параметр видимости. 2) Атрибут я сделал для наглядности, чтобы как раз избежать ошибок. 3) Первоначально название светильника я сделал в атрибуте, т.к. я подумал, что сложно все возможные светильники перечислить будет сложно, а вдруг появится новый тип? Но с другой стороны наверное лучше когда они все уже перечислены и ты только выбираешь. А по мере появления новых светильников можно редактировать блок. 4) По поводу слоя... У меня они сразу разделены. 5) Не знаю, обратил ты внимание или нет, но у меня на весь светильник сделан wipeout, чтобы не рвать линию, на которой светильник "висит". Я тут на форуме нашел программку, которая "поднимает" все блоки с wipeout наверх. Если надо, приложу здесь. Kostinok, выложи, пожалуйста, программку VVA, которая извлекает из дин блоков параметр видимости. Я сейчас пользуюсь EATTEXT, но это не очень удобно. P.S. А у нас принято светильники типа ARS показывать квадратиками... не по ГОСТ, конечно, но зато понятно ![]() И вопрос, как ты показываешь светильники с КЛК?
__________________
Неважно, что что-то идет неправильно. Возможно, это хорошо выглядит... |
|||
![]() |
|
||||
проектировщик-электрик Регистрация: 20.12.2007
Челябинск
Сообщений: 475
|
Блин, блок-то забыл приложить
![]() Да, еще забыл сказать, атрибут обновляется при регенерации чертежа. Можно сделать чтобы обновлялся мгновенно (подсмотрел у Supermax), но это мороки много. Пока неохота делать. Нужно в каждой видимости прописать текст с маркой светильника. И делать его видимым только в данном представлении.
__________________
Неважно, что что-то идет неправильно. Возможно, это хорошо выглядит... |
|||
![]() |
|
||||
Инженер-электрик Регистрация: 13.10.2007
Калининград
Сообщений: 151
|
Volodich,
Идея с wipeout - СУПЕР!!! Огромное спасибо, делаешь, делаешь себе блоки всякие и все равно - что нибудь да упустишь, или не догадаешься вообще!!! Для выбора примитивов пользуюсь программой Александра Ривилиса "ObjectARX. SelSim — выбор по образцу". Вот код VVA, вызов - bcnt Код:
Код:
(Возмущенно) Ах вы Цитата:
Пришли ко мне как то планы архитекторов, там все такими вот светильниками, да еще не блоками, да еще из Архикада. Вот до сих пор вспоминаю Как я все это перебивал... Светильники с КЛК никак не показываю, потому что к своему стыду не знаю, что такое КЛК и с чем его едят.
__________________
Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. /В. Гюго/ |
|||
![]() |
|
||||
проектировщик-электрик Регистрация: 20.12.2007
Челябинск
Сообщений: 475
|
![]() Цитата:
С извлечением попробую разобраться чуть позже. А что, список светильников будет в экселе? Про КЛК извиняюсь, это я очепятался. Я имел ввиду КЛЛ - компактные люминисцентные лампы. Кстати, предлагаю еще обменяться идеями и другими блоками. Будет поле для творчества. У меня есть по электрической части еще динамический разрез траншеи, выключатель и выноска списка кабелей. Хочу еще сделать толи разрез кабельного канала, толи просто блок стойка+полка динамический. Еще не решил. Какие еще можно сделать блоки для удобства работы пока не придумал.
__________________
Неважно, что что-то идет неправильно. Возможно, это хорошо выглядит... |
|||
![]() |
|
||||
Инженер-строитель Регистрация: 15.08.2007
Киров
Сообщений: 2,204
|
Цитата:
|
|||
![]() |
|
||||
Инженер-электрик Регистрация: 13.10.2007
Калининград
Сообщений: 151
|
Volodich,
Да список будет состоять из наименования блоков и их состояния Visibility Set-а. Обязательно попробуй, должно понравиться. КЛЛ - используем очееееееень редко, настолько, что я еще ни разу не использовал). В блоках у меня Выключатели нагрузки, Выключатели напряжения, Штепсельные розетки, Щиты, Узлы прокладки траншей. Хотел спросить: Как решаешь вопрос со спецификацией? Сделано, что нибудь для увеличения производительности? Просто у меня есть некоторые идеи, но думаю, что они слишком трудоемкие. Может что подскажешь... По блокам вроде все. А вот с поднятием наверх: Можно выбрать все свои светильники, потом правой кнопкой и Bring to Front. Может и не правильно, но свои блоки пока еще не подправил. Програмку пожалуйста скинь.
__________________
Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. /В. Гюго/ |
|||
![]() |
|
||||
проектировщик-электрик Регистрация: 20.12.2007
Челябинск
Сообщений: 475
|
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 |