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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Fields, как взять только часть текста?

Fields, как взять только часть текста?

Ответ
Поиск в этой теме
Непрочитано 06.02.2008, 22:50 #1
Fields, как взять только часть текста?
Red Nova
 
ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Торонто
Регистрация: 23.10.2007
Сообщений: 1,980

Хотел создать спецификации зим текстов, при помощи fields.
К примеру есть данные по позицие в мтекстах, в другом мтексте вставляешь формулу, одно помножить на другое, ну или по сложнее, связанное с вычислением массы арматуры, в зависимости от диаметра. Вот только вместе с диаметром в том же мтекте и другая информация есть, в частности, спереди символ диаметра, а в конце марка арматуры. Возможно ли сделать так, чтоб поле видело только диаметр?
Просмотров: 4152
 
Непрочитано 06.02.2008, 22:58
#2
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Вариант попробуй использовать таблицы
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 07.02.2008, 00:40
#3
master_vlad


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


F1 - поиск по словам diesel; substr; strlen
например поле
Код:
[Выделить все]
%<$(substr, $(getvar, ctab), 3, $(-, $(strlen, $(getvar, ctab)), 3))>%
- читает значение имени текущего листа, снимая скобки в начале и конце.
master_vlad вне форума  
 
Непрочитано 07.02.2008, 02:06
#4
wetr

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


Цитата:
Сообщение от Red Nova Посмотреть сообщение
Хотел создать спецификации зим текстов, при помощи fields.
К примеру есть данные по позицие в мтекстах, в другом мтексте вставляешь формулу, одно помножить на другое, ну или по сложнее, связанное с вычислением массы арматуры, в зависимости от диаметра. Вот только вместе с диаметром в том же мтекте и другая информация есть, в частности, спереди символ диаметра, а в конце марка арматуры. Возможно ли сделать так, чтоб поле видело только диаметр?
Мой тебе совет: забудь о полях для подсчета спецификаций. Лучший вариант - это VetCAD! Поля это оченно трудоемко
ИМХО
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Автор темы   Непрочитано 07.02.2008, 10:50
#5
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,980
Отправить сообщение для Red Nova с помощью Skype™


DEM Как–то не но сложилось у меня с таблицами.
wetr Это только у активированного VetCAD-а или в свободно распространяемой версии тоже есть?
master_vlad Не понял ничего , я в программировании ноль. Прошу применительно к примеру объяснить. Есть мтекст в котором записано скажем:
Цитата:
d12 AIII
Как заставить поле видеть только число 12.
Red Nova вне форума  
 
Непрочитано 07.02.2008, 14:40
#6
master_vlad


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


Цитата:
Как заставить поле видеть только число 12.
Меню Insert - field - field category=object. Мышом указываете объект (текст с интересующим содержанием), среди доступных свойств объекта выбираете Contents. Ниже, в сером окне "Field expression" появится значение вида %<\AcObjProp Object(%<\_ObjId 2125926488>%).TextString>% , причем для каждого объекта _ObjId разный.

Далее создаете односторчный текст с содержанием %<$(substr, %<\AcObjProp Object(%<\_ObjId 2125926488>%).TextString>% , 3, $(-, $(strlen, %<\AcObjProp Object(%<\_ObjId 2125926488>%).TextString>% ), 6))>% и ваша арматура станет из d12 AIII просто 12

Способ кривой и многодельный, не проще ли выделить группу _find, найти и заменить?
master_vlad вне форума  
 
Автор темы   Непрочитано 07.02.2008, 18:01
#7
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,980
Отправить сообщение для Red Nova с помощью Skype™


По-моему либо мы про разные вещи говорим, либо я неверно понимаю. Мне не надо заменять d12 AIII на 12. Вот что мне нужно.
Есть к примеру спецификация, в которой строчки со следующим содержанием.

Марка – d12 AIII
Длина – 400
Количество – 2
Вес одного элемента – ?
Вес всех элементов – ?

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

(3,14*(12/2)^2)*400*0.00000785
(3,14*(12/2)^2)*400*0.00000785*2

Цифра 12 тут берется из мтекста d12 AIII.
Вот файл в котором исходные данные, прошу показать решение на примере.
Вложения
Тип файла: dwg
DWG 2004
Спецификация.dwg (41.6 Кб, 572 просмотров)

Последний раз редактировалось Red Nova, 07.02.2008 в 18:27.
Red Nova вне форума  
 
Непрочитано 07.02.2008, 23:17
#8
master_vlad


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


Ну почему же о разных? Вам нужно было из текста d12 AIII убрать символы d AIII , я вам показал, как это сделать, но вручную каждый раз (т.е. для каждого текста) прийдется выделять, копировать, вставлять.... долго это. Да и незачем ексель на дизеле писать, сами же в синтаксисе команд запутаетесь.

P.S. кстати говоря text в отличии от mtext можно группово редактировать через панель свойств (_mo), что удобнее для больших массивов данных.
Вложения
Тип файла: dwg
DWG 2007
Спецификация.dwg (82.3 Кб, 590 просмотров)
master_vlad вне форума  
 
Непрочитано 08.02.2008, 03:12
#9
wetr

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


$(substr, (d12 А500с), 4, $(-, $(strlen, (d12 А500с)), 9))
master_vlad, а что через дизель связь с исходным текстом теряется??? А то я попробовал изменить диаметр, обновил поля - и нифига. Если так, то смысл совсем пропадает...

Red Nova, посмотри файл. Создано бесплатной версией VetCAD. Но она работает только под 2006 кад и больше не поддерживается и не развивается. Лежит здесь http://vetcad.mgp.by/news0505.htm
Новая версия VetCAD++ (сам знаешь где лежит) постоянно улучшается
Вложения
Тип файла: dwg
DWG 2004
Рисунок1.dwg (33.6 Кб, 578 просмотров)
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)

Последний раз редактировалось wetr, 08.02.2008 в 03:18.
wetr вне форума  
 
Непрочитано 08.02.2008, 04:12
#10
master_vlad


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


Вообще говоря поля сами должны обновлятся (FIELDEVAL=31), иначе какой в них смысл. Встроенным текствым редактором их не открыть, а внешние чудят:
изначально поле имеет вид %<\AcObjProp Object(%<\_ObjId 2125685968>%).TextString>%
а после правки (любой) при повторном открытии %<\AcObjProp Object(2125685968).TextString>% (этим отличаются и MtmdEdit и веткадовский) вообщем нужно разбиратся + к этому поля очень чуствительны к наличию пробелов в выражениях.

ps а еще оказывается, что если поле в mtext-е то редактируется оно нормально (почти), то в односторочном, внешние редакторы могут сами по себе убрать %<$ в начале строки.

Последний раз редактировалось master_vlad, 08.02.2008 в 04:51. Причина: добавил PS
master_vlad вне форума  
 
Автор темы   Непрочитано 08.02.2008, 09:59
#11
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,980
Отправить сообщение для Red Nova с помощью Skype™


master_vlad Что-то не то, вся цель была в том, чтоб меняя значение 12, в мтексте d12 AIII, формула автоматически подсчитывала массу. В выложенном тобой файле это не работает (поля не обновляются при regen all). И это надо сделать без использования вспомогательного мтекста (если это вообще возможно).

P.S. Что хорошо в полях, когда имеешь строчку с мтекстами зависящими друг от друга, если ее копировать, то в новой строчке зависимости связанны с мтекстами новой строчки, так что можно создать одну строчку с зависимостью, скопировать ее много раз и не опасаться за то что данные перемешаются.
Red Nova вне форума  
 
Непрочитано 09.02.2008, 13:14
#12
master_vlad


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


Призабавнейшая ерунда получается, есть три поля
%<$(strlen,$(getvar, USERI1))>%
%<\AcObjProp Object(2130481224).TextString>%
%<$(strlen,%<\AcObjProp Object(2130481224).TextString>%)>%

первое поле обновляется в соответствии с FIELDEVAL при том что USERI1 - являтся переменной, значение %<\AcObjProp Object(2130481224).TextString>% - тоже обновляется, хотя переменной не является, а вот значение третьего поля - не желает обновлятся никаким способом, кроме как открытием поля в тесктовом редакторе, и установкой/удалением пробела в самом конце выражения. Более того, поскольку SETVAR в дизеле недоступен, присвоить значение какой нибудь переменной также невозможно. Помогите заставить обновлятся поле!
master_vlad вне форума  
 
Автор темы   Непрочитано 10.02.2008, 14:36
#13
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,980
Отправить сообщение для Red Nova с помощью Skype™


Товарищи программисты, неужели это простое на первый взгляд действие невозможно выполнить при помощи поля?
Red Nova вне форума  
 
Непрочитано 07.10.2008, 05:28
#14
wetr

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


товарищи програмисты безмолствуют...
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Автор темы   Непрочитано 07.10.2008, 19:27
#15
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,980
Отправить сообщение для Red Nova с помощью Skype™


Дых с февраля месяца уже безмолвствуют.
__________________
Блог
Red Nova вне форума  
 
Непрочитано 08.10.2008, 05:05
#16
wetr

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


master_vlad, мои эксперименты тоже не увенчались успехом. Я так понял поля внутри Diesel выражений не обновляются... Хоть ты тресни.
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Fields, как взять только часть текста?

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мониторы LCD CRT Разное 94 17.06.2008 10:51
Как программно удалить Стиль Текста Led AutoCAD 2 12.01.2004 14:35