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

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

Как добится автоматического появления знака минус в размере (Dimension) при растягивании

Ответ
Поиск в этой теме
Непрочитано 26.04.2016, 16:34 #1
Как добится автоматического появления знака минус в размере (Dimension) при растягивании
SlavaLu
 
Регистрация: 30.03.2016
Сообщений: 55

Всем доброго времени суток.
В сложном дин. блоке поперечного сечения отображающем абсолютные отметки есть необходимость добавлять знак минус в значение размера при растягивании за ручку, когда размер пересекает "сам себя" т.е. "вывёртывается". На рисунке нижняя размерная линия пересекает красную линию. Размер должен быть тот же. Автокад 2013. Файл с блоком-Rail Structure, файл Dim-пример размера с пояснением.
Заранее благодарен.

Миниатюры
Нажмите на изображение для увеличения
Название: Dim.png
Просмотров: 204
Размер:	8.0 Кб
ID:	169491  

Вложения
Тип файла: dwg
DWG 2010
Dim.dwg (90.7 Кб, 40 просмотров)
Тип файла: dwg
DWG 2010
Rail Structure.dwg (329.0 Кб, 37 просмотров)


Последний раз редактировалось SlavaLu, 27.04.2016 в 18:27.
Просмотров: 8247
 
Непрочитано 26.04.2016, 17:44
#2
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,171


Цитата:
Сообщение от SlavaLu Посмотреть сообщение
Файл с блоком выложу если интересно
А что тогда выложено под именем dim.dwg? В этом файле динамический блок не наблюдается - хоть если открыть dim.dwg и запустить редактор блоков, хоть если вставить dim.dwg в другой чертеж как блок. Или dim.dwg - это просто картинка, а файл с блоком засекречен?
kp+ вне форума  
 
Автор темы   Непрочитано 26.04.2016, 17:49
#3
SlavaLu


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


Это не блок а DWG приложенной картинки. Блок не секретный скорей головоломный. Работаю над ним ещё. Если будет решение включу в блок. Если интересно могу выложть как есть...

Последний раз редактировалось SlavaLu, 26.04.2016 в 17:54.
SlavaLu вне форума  
 
Непрочитано 27.04.2016, 05:51
#4
Jonas

конструктор машиностроитель
 
Регистрация: 14.05.2007
Новосибирск
Сообщений: 893


Блок dim.dwg в 2013 открывается и работает. Может версия акада не совпадает?
__________________
Из честолюбия или чувства долга не может родиться ни чего ценного. А. Эйнштейн
Jonas вне форума  
 
Непрочитано 27.04.2016, 09:11
#5
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,171


Цитата:
Сообщение от SlavaLu Посмотреть сообщение
Это не блок а DWG приложенной картинки. Блок не секретный скорей головоломный. Работаю над ним ещё. Если будет решение включу в блок. Если интересно могу выложть как есть...
Как Вам угодно...если хотите получить ответ на свой вопрос - выкладывайте...хотя не факт, что ответ будет
kp+ вне форума  
 
Автор темы   Непрочитано 27.04.2016, 11:48
#6
SlavaLu


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


Файл с блоком добавил. См. Rail Structure в шапке. Минусы к отметкам дописанны в ручную, а хотелось бы автоматом . Нулевой уровень добавлен для наглядности
SlavaLu вне форума  
 
Непрочитано 27.04.2016, 17:36
#7
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,171


В данном случае, когда все отметки могут быть только отрицательными, а их выноски сделаны с помощью размеров, проще всего добавить в поле размера "текстовая строка" такую конструкцию:
-<>
Здесь <> - это указание на подстановку реального значения размера с учетом принятых единиц измерения, а префиксы/суффиксы можно добавлять по вкусу.
В более сложном случае можно добавить служебный параметр точки и атрибут. Атрибуту с помощью поля типа "местозаполнитель блока" присвоить значение ординаты указанного параметра. Потом скопипастить полученный код поля в поле типа "формула" и пересчитывать по вкусу.
короче, см. dwg.
Вложения
Тип файла: dwg
DWG 2007
Rail Structure.dwg (574.3 Кб, 48 просмотров)

Последний раз редактировалось kp+, 27.04.2016 в 17:43.
kp+ вне форума  
 
Автор темы   Непрочитано 27.04.2016, 18:22
#8
SlavaLu


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


kp+,
Цитата:
Сообщение от kp+ Посмотреть сообщение
В данном случае, когда все отметки могут быть только отрицательными...
Восе нет. Как раз имеет место частично отрицательные отметки частично положительные!!! См. картинку. Поставить минус в префикс ручками не пойдёт задача заставить это сделать автокад иначе теряется универсальность блока. В каждом сечении ситуация меняется. Нет смысла создавать новый блок для каждого сечения их могут быть сотни!!!
Миниатюры
Нажмите на изображение для увеличения
Название: Rail Structure-01.png
Просмотров: 98
Размер:	16.2 Кб
ID:	169571  
SlavaLu вне форума  
 
Непрочитано 27.04.2016, 18:54
#9
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,171


Цитата:
Сообщение от SlavaLu Посмотреть сообщение
Как раз имеет место частично отрицательные отметки частично положительные!!! См. картинку.
Тогда вариант с параметром точки, атрибутом и полем, т.к. расстояние по определению не может быть отрицательным, а Y-координата - может. Главное, определится с базовой точкой и формулой пересчета. Я не железнодорожник, поэтому мог не понять смысл проставленных отметок и задать неправильный пересчет. Но мое решение сделано для розовой отметки, которая на приведенном чертеже равна -3,00, вроде бы работает адекватно, причем в обе стороны. Знак минус ставится и убирается тогда, когда надо.
kp+ вне форума  
 
Автор темы   Непрочитано 28.04.2016, 11:53
#10
SlavaLu


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


Цитата:
Сообщение от kp+ Посмотреть сообщение
Главное, определится с базовой точкой и формулой пересчета
Определился. См. файл.
С полем есть 3 основные проблемы :
1. Постоянно нужно регенерировать изображение для отображения реального значения. В размерах значения отображаются сразу.
2. Пропала возможность изменить формат текста поля. Немогу вернуть съеденные нули. См. рисунок.
3. Поле присвоенно атрибуту. Пользователь может его стереть и вписать любой текст!!!


А как из формулы получить только знак минус и вставить эту формулу в префикс размера? Это решило бы задачу
Миниатюры
Нажмите на изображение для увеличения
Название: Format.png
Просмотров: 64
Размер:	18.3 Кб
ID:	169601  
Вложения
Тип файла: dwg
DWG 2010
Rail Structure.dwg (142.8 Кб, 28 просмотров)
SlavaLu вне форума  
 
Непрочитано 28.04.2016, 12:43
#11
Кулик Алексей aka kpblc
Moderator

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


Можешь попробовать DIESEL-выражение, но я не уверен, что оно сработает.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 28.04.2016, 12:59
#12
SlavaLu


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Можешь попробовать DIESEL-выражение, но я не уверен, что оно сработает.
Я, к сожалению, в этом не разбираюсь поэтому сюда и пишу
Знатоки предлагайте варианты
SlavaLu вне форума  
 
Непрочитано 28.04.2016, 14:04
#13
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,171


Цитата:
Сообщение от SlavaLu Посмотреть сообщение
1. Постоянно нужно регенерировать изображение для отображения реального значения. В размерах значения отображаются сразу.
ну....ниче не поделаешь...
Цитата:
Сообщение от SlavaLu Посмотреть сообщение
2. Пропала возможность изменить формат текста поля. Немогу вернуть съеденные нули. См. рисунок.
копируйте код поля и поколдуйте с цифрами после zs (zero supression)

Цитата:
Сообщение от SlavaLu Посмотреть сообщение
3. Поле присвоенно атрибуту. Пользователь может его стереть и вписать любой текст!!!
По-моему, такие блоки нельзя давать совсем уж неподготовленным пользователям - себе дороже выйдет. Но если охота, поколдуйте с постоянными атрибутами. Лично у меня не получилось

Цитата:
Сообщение от SlavaLu Посмотреть сообщение
А как из формулы получить только знак минус и вставить эту формулу в префикс размера?
От поля в атрибуте никуда не денетесь Кнопки или строки меню "вставить поле" для текстовой строки размера нет, но если туда скопипастить код поля - работает, проверено. Однако внутри блока не работает
Добавлено
Видимо потому, что дин. параметры задаются как бы "извне" и неизвестны заранее в редакторе блоков. Похоже, что фокус с постоянными атрибутами не удался по той же причине

Offtop:
Цитата:
Я, к сожалению, в этом не разбираюсь поэтому сюда и пишу
Учите матчасть! (С)

Последний раз редактировалось kp+, 28.04.2016 в 14:30.
kp+ вне форума  
 
Автор темы   Непрочитано 28.04.2016, 14:31
#14
SlavaLu


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


Цитата:
Сообщение от kp+ Посмотреть сообщение
fieldeval -> 31
С нулями разобрался 31 не помогает да и в остальном довольно уныло
SlavaLu вне форума  
 
Непрочитано 28.04.2016, 15:00
#15
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,171


Цитата:
Сообщение от SlavaLu Посмотреть сообщение
31 не помогает
да, это я ерунду написал, уже исправил
Цитата:
Сообщение от SlavaLu Посмотреть сообщение
да и в остальном довольно уныло
учите ObjectARX, пишите собственные объекты по своему вкусу, и будет Вам счастье
kp+ вне форума  
 
Непрочитано 28.04.2016, 16:17
#16
Boxa

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


Цитата:
Сообщение от kp+ Посмотреть сообщение
учите ObjectARX, пишите собственные объекты по своему вкусу, и будет Вам счастье
multicad + C# на порядок проще ... там не сложнее чем дин блоки
Boxa вне форума  
 
Непрочитано 04.05.2016, 10:17
#17
Boxa

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


Так как праздники, побаловался с этим маркером и вот что получилось:
https://youtu.be/fRj0cWydNmg

Последний раз редактировалось Boxa, 04.05.2016 в 10:32. Причина: ссылку не на тот ролик вставил...
Boxa вне форума  
 
Автор темы   Непрочитано 11.05.2016, 13:33
#18
SlavaLu


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


Boxa
Выглядит хорошо но по сути не решает вопроса. Подбные манипуляции можно делать с парой обычных размеров см. файл dim.dwg приложенный к вопросу. Задача в том что бы этот размер самостоятельно менял знак с + на минус и наоборот при пересечении услоного горизонта "нуля".

Последний раз редактировалось SlavaLu, 16.05.2016 в 11:41. Причина: Дополнение
SlavaLu вне форума  
 
Непрочитано 11.05.2016, 15:24
#19
Boxa

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


Цитата:
Сообщение от SlavaLu Посмотреть сообщение
Выглядит хорошо но как это в Автокаде сделать?
Оно и в автокаде работает. С некоторыми ньансами, но работает.
Boxa вне форума  
 
Автор темы   Непрочитано 16.05.2016, 11:48
#20
SlavaLu


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


kp+
В текст тоже можно вставить поле, но почему-то нет доступа к свойствам параметров?
SlavaLu вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как добится автоматического появления знака минус в размере (Dimension) при растягивании