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

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

Как обрезать название файла в поле атрибута ?

Ответ
Поиск в этой теме
Непрочитано 28.02.2013, 23:20 #1
Как обрезать название файла в поле атрибута ?
maratovich
 
г. Самара
Регистрация: 12.07.2009
Сообщений: 2,437

Есть атрибут, в нем автоматически вставляется имя файла.
Нужно чтобы при отображении была видна только средняя часть из имени файла.
Например файл называется "YNY-EL-UT-01-01-DD-8271-01"
Нужно чтобы в атрибуте отобразилось "UT-01-01"
Возможно ли такое ?

Вложения
Тип файла: dwg
DWG 2007
YNY-EL-UT-01-01-DD-8271-01.dwg (65.0 Кб, 3504 просмотров)

Просмотров: 9501
 
Непрочитано 05.03.2013, 13:50
1 | #2
ытя


 
Регистрация: 23.09.2005
СПб
Сообщений: 428


Возможно
Вложения
Тип файла: dwg
DWG 2004
YNY-EL-UT-01-01-DD-8271-01.dwg (46.0 Кб, 3324 просмотров)
ытя вне форума  
 
Автор темы   Непрочитано 05.03.2013, 13:57
#3
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,437
Отправить сообщение для maratovich с помощью Skype™


В точку ! Спасибо, помогло.
maratovich вне форума  
 
Непрочитано 05.03.2013, 20:21
#4
sasha_lif

Дизайнер-конструктор
 
Регистрация: 29.05.2004
Kiev
Сообщений: 1,179
<phrase 1=


ытя, круто!
Что еще можно делать на Дизеле?
__________________
Kiev, Ukraine
sasha_lif вне форума  
 
Непрочитано 05.03.2013, 22:29
#5
Angel_and


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


всем большое спасибо))
__________________
что такое любовь по сравнению с Автокадом ?
Angel_and вне форума  
 
Непрочитано 06.03.2013, 05:24
#6
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 824


Тоже актуально подобное. Но я чего-то не понял как это сделать.
Можно на моем примере.
В штампе чертежа номер 22.55.20.120 СБ. А в штампе спецификации должен быть тотже номер, но только без "СБ".
Как такого добиться?
Вложения
Тип файла: dwg
DWG 2007
Пример.dwg (128.3 Кб, 2890 просмотров)
__________________
AutoCad 2011 -> AutoCad 2013 -> AutoCad 2016 -> AutoCad 2011 -> AutoCad 2022
Astartes вне форума  
 
Автор темы   Непрочитано 06.03.2013, 09:32
#7
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,437
Отправить сообщение для maratovich с помощью Skype™


Если перевести на русский язык то строка "$(substr,$(getvar, dwgname),8,8)" означает :
Взять имя файла, начиная с лева на право с 8 символа оставить последующие 8 символов и показать.
В твоём случае файл надо назвать - 22.55.20.120 СБ.dwg
И в строке написать "$(substr,$(getvar, dwgname),1,12)" соответственно получится:
Имя слева начиная с первого символа (это 2) последующие 12 символов -"22.55.20.120"
Вложения
Тип файла: dwg
DWG 2007
22.55.20.120 СБ.dwg (180.1 Кб, 2943 просмотров)
maratovich вне форума  
 
Непрочитано 06.03.2013, 10:15
#8
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 824


maratovich, Спасибо за пояснение, но. А не привязывать к имени файла никак не получится. Т.е. нужно что бы ссылка была не на имя файла, а на имя атрибута.
Что то вроде: Атрибут (Имя атрибута - НОМЕР) слева начиная с первого символа (это 2) последующие 12 символов -"22.55.20.120" ???
__________________
AutoCad 2011 -> AutoCad 2013 -> AutoCad 2016 -> AutoCad 2011 -> AutoCad 2022
Astartes вне форума  
 
Непрочитано 06.03.2013, 10:51
#9
ытя


 
Регистрация: 23.09.2005
СПб
Сообщений: 428


Делай наоборот: бери номер в чертёж из спецификации и добавляй "СП".
ытя вне форума  
 
Непрочитано 06.03.2013, 11:09
#10
Alexeipost


 
Регистрация: 07.12.2010
Уфа
Сообщений: 427
<phrase 1=


А где можно узнать больше о командах diesel? Как с ним работать? Какой-нибудь самоучитель есть?
Alexeipost вне форума  
 
Непрочитано 06.03.2013, 11:25
#11
Кулик Алексей aka kpblc
Moderator

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


Попробуй посмотреть http://thecadprogcp.blogspot.ru/2009...utocad-lt.html
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 06.03.2013, 11:30
#12
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,437
Отправить сообщение для maratovich с помощью Skype™


Цитата:
Сообщение от Alexeipost Посмотреть сообщение
А где можно узнать больше о командах diesel?
Для начала это http://dwg.ru/dnl/3480
А по твоему вопросу я пока сам не особо в дизеле понимаю.
maratovich вне форума  
 
Непрочитано 18.04.2013, 08:04
#13
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 824


Дополнительно по обрезке имени файла.
Взято отсюда http://www.cadforum.cz/cadforum_en/m...-field-tip7003



If you want to insert a text in your drawing (e.g. to the title block) which contains a manipulated name of the current drawing file - e.g. the filename left-trimmed or right-trimmed at a number of characters, you can use a combination of Diesel expressions in an automatic text field (e.g. with the FIELD command).

Some examples:

Drawing file name, no path, from the 3rd character (paste as a Diesel expression to a Diesel-type field):


$(substr,$(getvar,DWGNAME),3,99)

Drawing file name, no path, no extension (4 characters), right-trimmed at another 3 characters (paste as a Diesel expression to a Diesel-type field):


$(substr,$(getvar,DWGNAME),1,$(-,$(strlen,$(getvar,DWGNAME)),7))

Beginning of the drawing path (12 characters), ellipsis, first 8 characters of the drawing file name (paste as a Diesel expression to a Diesel-type field):


$(substr,$(getvar,DWGPREFIX),1,12)...$(substr,$(getvar,DWGNAME),1,8)

Path without the disk letter and the drawing file name, all converted to uppercase (paste as a Diesel expression to a Diesel-type field):


$(upper,$(substr,$(getvar,DWGPREFIX),3)$(getvar,DWGNAME))
__________________
AutoCad 2011 -> AutoCad 2013 -> AutoCad 2016 -> AutoCad 2011 -> AutoCad 2022
Astartes вне форума  
 
Непрочитано 01.10.2014, 13:46
#14
Immortal_6666

вольный копейщик
 
Регистрация: 03.11.2010
Сообщений: 132


А как сделать тоже самое, но обрезать данные в поле взятые из свойств файла - я добавил свое свойство "Масса", надо взять первый четыре символа, пишу в поле код $(substr,$(getvar,Масса),1,2) -не работает, в поле выводится $... не могу понять как на свойство сослаться... Еще пробовал писать CustomDP.Масса - думал переменная так называется (если просто вставить значение свойства, там именно такая запись используется в формуле поля)
Immortal_6666 вне форума  
 
Непрочитано 01.10.2014, 14:38
#15
KSI


 
Регистрация: 19.03.2004
Калининград
Сообщений: 1,842


getvar - возвращает значение системной переменной Автокада. Список системных переменных - смотреть в Справке.
__________________
На вопрос объяснить поподробней, отвечаю - идите читать Справку, Help, User Manual и т.д.
KSI вне форума  
 
Непрочитано 01.10.2014, 17:00
#16
Valery Brelovsky

Инженер дорожник
 
Регистрация: 22.10.2007
Израиль
Сообщений: 1,859


Цитата:
Сообщение от Immortal_6666 Посмотреть сообщение
А как сделать тоже самое, но обрезать данные в поле взятые из свойств файла - я добавил свое свойство "Масса", надо взять первый четыре символа, пишу в поле код $(substr,$(getvar,Масса),1,2) -не работает, в поле выводится $... не могу понять как на свойство сослаться... Еще пробовал писать CustomDP.Масса - думал переменная так называется (если просто вставить значение свойства, там именно такая запись используется в формуле поля)
$(substr,$(getvar, dwgname),1,2)Масса
Valery Brelovsky вне форума  
 
Непрочитано 01.10.2014, 18:29
#17
Immortal_6666

вольный копейщик
 
Регистрация: 03.11.2010
Сообщений: 132


KSI, я знаю что делает getvar. вопрос был в том, что за переменная отвечает за конкретное свойство файла.

Valery Brelovsky не работает. пишет Э- а потом слово Масса - оно как бы за формулой получается. Это он просто название файла вставляет - первый два символа. Мне кажется, не dwgmane должно быть..
Изображения
Тип файла: jpg вставить свойство.JPG (107.3 Кб, 242 просмотров)
Immortal_6666 вне форума  
 
Непрочитано 02.10.2014, 08:00
#18
Valery Brelovsky

Инженер дорожник
 
Регистрация: 22.10.2007
Израиль
Сообщений: 1,859


Цитата:
Сообщение от Immortal_6666 Посмотреть сообщение
не работает. пишет Э- а потом слово Масса
$(substr,$(getvar, dwgname),1,2)Масса
ну логически от имени файла начиная с 1 (первой буквы) 2 буквы. если нада четер значит вместо 2 4 поиграйте вторым значением и получите то что хотите. Я сам этого не знал. Вчерва по теме поиграл значениями из поста 13. очень понравилось. Так что смелее. Изменяя зачения цифр можно получить любую часть имени файла. первая цифра указывает от какой буквы считывать а вторая сколько букв считывать. Возможно я в чёмто ещё ошибаюсь.
$(substr,$(getvar, dwgname),1,4)Масса
Цитата:
Сообщение от Immortal_6666 Посмотреть сообщение
обрезать данные в поле взятые из свойств файла - я добавил свое свойство "Масса", надо взять первый четыре символа,
Valery Brelovsky вне форума  
 
Непрочитано 02.10.2014, 12:05
#19
KSI


 
Регистрация: 19.03.2004
Калининград
Сообщений: 1,842


Цитата:
Сообщение от Immortal_6666 Посмотреть сообщение
KSI, я знаю что делает getvar. вопрос был в том, что за переменная отвечает за конкретное свойство файла.
Судя по Вашим действиям, не знаете. Параметры свойств чертежа не являются системными переменными.
__________________
На вопрос объяснить поподробней, отвечаю - идите читать Справку, Help, User Manual и т.д.
KSI вне форума  
 
Непрочитано 02.10.2014, 17:13
#20
Immortal_6666

вольный копейщик
 
Регистрация: 03.11.2010
Сообщений: 132


Valery Brelovsky, а чем поможет имя файла, если нужно обратиться к свойству файла? Не от имени файла кусок-то взять надо...

KSI, Вам за снобизм и высокомерие доплачивают? Не знал я второй части - что свойство не записывается в сист. переменную. Поэтому и спрашиваю как к нему обратиться через поле. Зачем отвечать если нет желания помочь?? Про 3 сита Сократа почитайте на досуге.

Последний раз редактировалось Immortal_6666, 02.10.2014 в 18:31.
Immortal_6666 вне форума  
 
Непрочитано 02.10.2014, 17:31
#21
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Immortal_6666 Посмотреть сообщение
Valery Brelovsky, так а причем имя файла, если нужно обратиться к свойству файла? Не от имени файла кусок-то взять надо...
А почему писал в этой теме, а не создал другую? Название этой темы читал?
По существу вопроса - поле выглядит так:
Код:
[Выделить все]
%<\AcDiesel $(substr,%<\AcVar CustomDP.Масса>%,1,2)>%
Но после изменения значения Масса это поле пересчитываться не будет, т.к. идет явная подстановка значения.

Последний раз редактировалось Александр Ривилис, 02.10.2014 в 17:58.
Александр Ривилис вне форума  
 
Непрочитано 04.10.2014, 21:11
#22
Immortal_6666

вольный копейщик
 
Регистрация: 03.11.2010
Сообщений: 132


Чтобы не плодить кучу одинаковых тем - воспользовался поиском - обсуждение в данной теме соответствовало сути моего вопроса, а названия тут не всегда отображают содержимое.

Именно такое поле я и сделал сам, посмотрев имя переменной в поле "Масса", которое я вставляю без обрезки в другом месте чертежа. Но как поле данный код не работает - пишет #### поэтому и задал вопрос.
Immortal_6666 вне форума  
 
Непрочитано 04.10.2014, 23:09
1 | #23
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Immortal_6666 Посмотреть сообщение
Именно такое поле я и сделал сам, посмотрев имя переменной в поле "Масса", которое я вставляю без обрезки в другом месте чертежа. Но как поле данный код не работает - пишет #### поэтому и задал вопрос.
Речь идет о том поле, код которого я продемонстрировал? Если да, то у меня нормально работает:



Но если подумать, то это тебя никак не спасет. Во-первых, что будет если масса у тебя превысит 100т? А если 1000т? Т.е. простое обрезание символов тебе не поможет.
И, во-вторых, как я уже писал, эта формула вычисляется фактически однократно при создании поля. Разумнее было бы писать в дополнительные свойства файла Массу в виде числа (т.е. без "т"). Тогда всё становится совсем просто.
Александр Ривилис вне форума  
 
Непрочитано 05.10.2014, 17:25
#24
Immortal_6666

вольный копейщик
 
Регистрация: 03.11.2010
Сообщений: 132


Да, я к этому и пришел в итоге - из поля беру массу без "т", и просто текстом добавляю букву после поля.
Просто в проекте было уже примерно на 20 листах с "т" (там это нужно), и всего в одном месте, где оно не нужно.

Поле именно такое. Это первое к чему я пришел, т.к. оно самое логичное.
Масса у меня в каждом проекте разная, поэтому в одноразовом поле смысла конечно нет.

В любом случае, спасибо большое за участие.

С полями и свойствами удалось прилично шаблон оптимизировать, по крайней мере в плане заполнения штампов.
Immortal_6666 вне форума  
 
Непрочитано 05.10.2014, 22:59
#25
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


может, попробовать прикрутить RTEXT из Express Tools?
Сергей812 вне форума  
 
Непрочитано 07.12.2017, 15:02
#26
Matvey Razin


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


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

Код:
[Выделить все]
$(substr,$(getvar, clayer),1,2)
При вставке вхождения блока в чертеж все срабатывает. При переносе блока на другой слой значение атрибута не меняется.
Matvey Razin вне форума  
 
Непрочитано 07.12.2017, 15:20
#27
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,917
<phrase 1=


Matvey Razin, у меня показывает только имя текущего слоя, без учета на каком слое находится блок.
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 07.12.2017, 15:29
#28
Matvey Razin


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


Да, действительно. Не замечал.
Тогда вопрос: возможно ли сделать такой атрибут, как я описал в посте #26?
Просто название слоя вставить возможно (поле/объекты/местозаполнительблока/слой), но мне необходимо считать только первые два символа слоя.
Matvey Razin вне форума  
 
Непрочитано 07.12.2017, 15:52
#29
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611


Цитата:
Сообщение от Matvey Razin Посмотреть сообщение
Тогда вопрос: возможно ли сделать такой атрибут, как я описал в посте #26?
Просто название слоя вставить возможно (поле/объекты/местозаполнительблока/слой), но мне необходимо считать только первые два символа слоя.
У Вас же почти получилось... правда автокад имеет дурацкую способность заменять полезамениели на абсолютные значения...

Последний раз редактировалось Boxa, 07.12.2017 в 15:59.
Boxa вне форума  
 
Непрочитано 09.12.2017, 17:08
#30
Matvey Razin


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


Цитата:
Сообщение от Boxa Посмотреть сообщение
У Вас же почти получилось
можно поподробнее. не совсем понял.у меня получилось вставить название слоя, но мне бы хотелось, что бы отображалось не все название, а только часть, если такое возможно
Matvey Razin вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как обрезать название файла в поле атрибута ?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поле - ссылка на текст другого файла Kosenko Sasha Программирование 7 22.03.2013 19:52
Принтер печатает на чертеже название файла! Как убрать? ТРУП AutoCAD 8 24.10.2008 17:42
У кого не dial-up KorPash Разное 1 10.06.2007 19:21
Привести название файла в читабельный вид Кочетков Андрей Разное 6 08.11.2006 13:20
Название файла Jessika AutoCAD 3 30.01.2004 17:17