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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Diesel. Значения поля не работают внутри diesel

Diesel. Значения поля не работают внутри diesel

Ответ
Поиск в этой теме
Непрочитано 08.10.2008, 06:59 #1
Diesel. Значения поля не работают внутри diesel
wetr
 
инженер
 
Владивосток
Регистрация: 09.08.2006
Сообщений: 1,535

Сразу говорю - я чайник в программировании.
Если задаю тупой вопрос, скажите где почитать. Справку почитал по diesel, хотел сворганить вещь...
Задумка:
есть блок "Рамка". Внизу около штампа есть текст "Формат А3" или A2 или ... Нужно чтобы формат сам обновлялся. Решил залезть в diesel.

Код:
[Выделить все]
$(or,$(if,$(=,area,999969),A0,ложь),$(if,$(=,area,499554),A1,ложь),......)
где area - плошадь полилинии (контур рамки). Так вот получается, что такая конструкция ПОЛЕ<-DIESEL<-ПОЛЕ не обновляется.
Научите как быть
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
Просмотров: 4067
 
Непрочитано 08.10.2008, 08:24
#2
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


wetr, ИМХО ты чего-то перемудрил. Если у тебя блок, то не проще ли в полях использовать, например, его динамические свойства?

ЗЫ Фраза "где area - плошадь полилинии (контур рамки)" непонятна. Как ты получаешь эту area? Да и много чего не понятно. Но ответь хотя бы на это.
Makswell вне форума  
 
Автор темы   Непрочитано 08.10.2008, 08:46
#3
wetr

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


наверно объяснил коряво.
Площадь полилинии "area" это тоже поле.
Например
Код:
[Выделить все]
%<\AcObjProp Object(%<\_ObjId 1945209424>%).Area \f "%lu2">%
В полях свойства динамического блока пытался использовать. У меня есть лукап и там перечисляется "А3 вертикальная" и т.д. Но вытащить только А3 никак не получается. С помощью того же дизеля, не получается. Почитай вот здесь http://dwg.ru/f/showthread.php?t=14548&page=6 с поста №102
В 104 посте мой блок, где я схитрил и эти самые ненужные буквы пробелами сместил в непечатаемую область листа, а формат остался. Но это решение мне тоже не очень нравится. Хочу идеальную рамку любым способом
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)

Последний раз редактировалось wetr, 08.10.2008 в 09:03.
wetr вне форума  
 
Непрочитано 08.10.2008, 08:48
#4
Кулик Алексей aka kpblc
Moderator

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


Кстати, идея! Почему бы не сделать атрибут (или текст) зависимым от параметра видимости?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 08.10.2008, 08:50
#5
wetr

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


Кулик Алексей aka kpblc, ты имеешь ввиду зависимый от лукапа?
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 08.10.2008, 09:02
#6
Кулик Алексей aka kpblc
Moderator

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


Ага. Честно скажу - с дин.блоками практически не работал, так что идею надо качественно проверять.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 08.10.2008, 09:24
#7
wetr

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


Цитата:
Необходимо, чтобы каждое вхождение блока зависело от своего параметра текущего вхождения. Это достигается вставкой поля местозаменителя (BlockPlaceholder). Но опять таки не могу "урезать выражение" с помощью Дизеля.
значение поля
Код:
%<\AcObjProp.16.2 Object(?BlockRefId).Parameter(93).lookupString \f "%tc1">%
в Disel приобретае вид LOOKUPSTRING
Код:
$(substr,"LOOKUPSTRING",1,2)
И как результат
Код:
Формат LO
Должно быть Формат А3
Вот здесь я попробовал реализовать эту идею. Опять все уперлось в невозможность работы полей внутри дизеля.
Т.е. значение поля внутри дизеля принимает свое default-значение и больше не меняется. Нихто не знает, можно ли это изменить?
PS
Как только начал вникать чего я хочу, понял всю бредовость желаемого
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 08.10.2008, 09:25
#8
fenix

проектировщик-электрик
 
Регистрация: 20.06.2006
Сообщений: 459
<phrase 1=


я уже спрашивала в теме "извлечение атрибутов" можно ли сделать атрибут зависимым от параметра видимости, ответов нет пока
__________________
ужасно интересно всё то, что неизвестно
fenix вне форума  
 
Автор темы   Непрочитано 08.10.2008, 09:26
#9
wetr

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


fenix, можно, используй "Blockplaceholder"
Вот здесь Какаду написал(а)
http://dwg.ru/f/showpost.php?p=234249&postcount=4
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 08.10.2008, 09:27
#10
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


wetr, может так попробовать?
Вложения
Тип файла: dwg
DWG 2007
Example.dwg (90.9 Кб, 935 просмотров)
Makswell вне форума  
 
Автор темы   Непрочитано 08.10.2008, 09:39
#11
wetr

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


Makswell, браво!!!
Снимаю шляпу. Я еще не разу не использовал 2 лукапа. Очень рад, что дожали тему.


Offtop: Ну вот опять без дизеля обошлось. Я когда форум шерстил по слову Diesel, ни в одной теме он (diesel) не помог. Везде обходными путями
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Автор темы   Непрочитано 08.10.2008, 09:56
#12
wetr

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


Makswell, а как ты запихал в поле второй лукап? У меня его нету в меню, когда выбираешь Местозаменитель блока(BlockPlaceHolder)
Я даже когда твое поле открываю параметра "Выбор 1" нету в списке.
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Автор темы   Непрочитано 08.10.2008, 10:19
#13
wetr

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


вот ручки мои шаловливые. Убрал в свойствах лукап-параметра "Показывать в свойствах" и не стало видно его при выборе поля. О-как
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 08.10.2008, 11:16
#14
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Цитата:
Сообщение от wetr Посмотреть сообщение
Offtop: Ну вот опять без дизеля обошлось. Я когда форум шерстил по слову Diesel, ни в одной теме он (diesel) не помог. Везде обходными путями
Offtop: ИМХО, DIESEL рулит в меню. Напрмер запрет какого-либо пункта в меню. А также в переменной MODEMACRO - чтобы её значение обновлялось интерактивно. Я думаю именно под это он и заточен. В остальных случаях всё прекрасно решается другими способами. Даже в макросах кнопок - легче использовать лисп-выражение, чем мудрить с DIESEL. Хотя может в полях его применение тоже будет эффективным. Может это ещё просто не так хорошо изучено. Я вот тут подумал, ведь в полях получается можно делать простейшие конструкции ветвления с помощью DIESEL. А это очень даже не плохо.
Makswell вне форума  
 
Непрочитано 02.05.2014, 16:26
#15
kakt00z

инженер-проектировщик КИПиА
 
Регистрация: 30.08.2008
Минск
Сообщений: 159


столкнулся с такой проблеммкой ... : генерирую строку типа
%<\AcDiesel
$(+,
$(+,%<\AcObjProp Object(%<\_ObjId 2128579976>%).Length>%,
%<\AcObjProp Object(%<\_ObjId 2128579984>%).Length>%,...
%<\AcObjProp Object(%<\_ObjId 2128580032>%).Length>%),
$(+,%<\AcObjProp Object(%<\_ObjId 2128580040>%).Length>%,
%<\AcObjProp Object(%<\_ObjId 2128580048>%).Length>%,....
%<\AcObjProp Object(%<\_ObjId 2128580064>%).Length>%)
)>%
т.е. дизель мне вычисляет в поле сумму длин указанных элементов, (специально группировал в несколько сумматоров по 9 штук - так как есть ограничения)
все суммируется, ОК, но
когда смотришь уже во вставленное поле - вместо %<\AcObjProp Object(%<\_ObjId 2128580064>%).Length>%) - подставлены конкретные значения - цифры и соответственно при растягивании какой-нибудь линии из списка - результат не меняется
пробовал с использованием $(eval, .. - не считает... может есть ограничения
kakt00z вне форума  
 
Непрочитано 06.08.2014, 15:43
#16
remoteworker


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


Здравствуйте.
Подскажите есть ли возможность преобразовать значение аттрибута блока с text на decimal для использвания в field.
Заранее спасибо за ответ.
remoteworker вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Diesel. Значения поля не работают внутри diesel

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Вставка в таблицу поля, соотвествующего площади примитива Profan Готовые программы 272 06.06.2021 23:12
RTEXT shnn AutoCAD 3 06.07.2005 17:54