|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Можно ли в поле (Field) использовать условие, вроде как в Excel оператор "IF" ?
Регистрация: 10.06.2005
Сообщений: 31
|
||
Просмотров: 17453
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,594
|
Попробуй использовать там DIESEL-выражения (если, конечно, у тебя версия это позволит).
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,594
|
Попробуй нечто типа
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,594
|
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 10.06.2005
Сообщений: 31
|
получилось по последнему сообщению , но когда в выражение Diesel вставляю поле, срабатывает 1 раз, в следующий раз при редактировании, в выражении Diesel уже вставленно имено значение поля, а не само поле , те воспользоваться функцией получается 1 раз, а при изменении объекта на который ссылается поле ничего не изменяется.
В пример ссылка на текст с содержимым 1001. $(if,$(>,%<\AcObjProp Object(%<\_ObjId 2127781008>%).TextString>%,1000),"+","-") после первого раза всё отработало, после второго ничего , при попытке редактирования Diesel выражение имеет вид : $(if,$(>,1001,1000),"+","-") , а поле в нём уже отсутствует .?! |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,594
|
Там показывается значение поля. Само поле никуда не делось. По крайней мере у меня в 2010 было именно так.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,843
|
if x=>1 (y) else (z)
При условии что x,y,z - числа, для полей решается так: =((abs((-(trunc(X)^0*2-1)*Y))-(-(trunc(X)^0*2-1)*Y))/2)+(abs((((trunc(X)^0*2-1)*Z)-abs((trunc(X)^0*2-1)*Z))/2)) Эту формулу вставить в поле заменив xyz на свои поля.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,594
|
Дима_, это ты используешь формульное поле, да? Я-то по привычке DIESEL-поле ставил...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
кажется была вероятность, что это поле будет работать неправильно?zenon, "формульное поле" это место куда вставляется формула в полях
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,843
|
То wetr - не это было с другим "моим" полем, с контрольной суммой - у ней есть некоторая вероятность (если быть точным равная 1/макимальное простое число в размерности контрольной суммы) - в этой-же без вариантов - функция бесконечная.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Регистрация: 10.06.2005
Сообщений: 31
|
Пробую на работе, Diesel, - исчезает ссылка на поле в самом выражении (и заменяется на число на которое ссылается) !.
Причем если писать в фолмулах (как в примере =((abs((-(trunc(X)^0*2-1)*Y))-(-(trunc(X)^0*2-1)*Y))/2)+(abs((((trunc(X)^0*2-1)*Z)-abs((trunc(X)^0*2-1)*Z))/2))) , то поле нормально работает, и все поля внутри нормально сохраняет. |
|||
![]() |
|
||||
Другие берега Регистрация: 12.09.2009
г. Краснодар
Сообщений: 309
|
Создал динамическую отметку, проблема в наличии знака "+", вернее правильной его постановке по условию. Казалось бы чего проще - поставил условие, задал истину и ложь. Но не выходит - ошибка. Может кто знает как правильно это сделать
В статье 3 solo AutoCAD автор создает динамическую отметку, но там отсутствует знак "+", а он необходим в соответствии с п.5.4.3. ГОСТ Р 21.1101-2009. Как можно поставить условие в поле, по которому при InsertionPoint/1000>0 перед этим выражением ставился бы знак "+", а при InsertionPoint/1000<=0 ничего бы не ставилось? Докапался до такого варианта $(if,$(>,поле,0),"+"," "), но проблема в поле - берется не конкретное значение, а переменная и в итоге ошибка. Если вбить конкретное значение, например 8, то все окей. Как правильно вставить поле в условие? Последний раз редактировалось Genf, 06.04.2010 в 14:46. |
|||
![]() |
|
||||
мостовик Регистрация: 12.03.2011
СПб
Сообщений: 770
|
Не появилась ли в последних версиях автокада возможность реализовать каким-то образом (без программирования и использования надстроек) в формульных полях условие x = if y>0;y;-.
Хочу использовать при заполнении таблиц на арматурных чертежах. |
|||
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Рифмоплетство. | Kryaker | Разное | 554 | 14.11.2023 11:59 |
LISP. Вставка в таблицу поля, соотвествующего площади примитива | Profan | Готовые программы | 272 | 06.06.2021 23:12 |
Как можно использовать проект иностранной фирмы? | Aндрeй | Организация проектирования и оформление документации | 11 | 22.01.2009 12:46 |
Мониторы LCD CRT | Разное | 94 | 17.06.2008 10:51 | |
ЮМОР 2006 =) | Perezz!! | Разное | 1122 | 04.01.2007 00:46 |