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

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

Почему слетает UNIFORM SCALE? (вставка блока с зумированием по 1 или 2 координатам)

Ответ
Поиск в этой теме
Непрочитано 19.02.2015, 17:21 #1
Почему слетает UNIFORM SCALE? (вставка блока с зумированием по 1 или 2 координатам)
Xara
 
Помидорка
 
Регистрация: 03.02.2012
Сообщений: 135

Уважаемые коллеги и друзья!

Не могу уже на протяжении N-ного времени найти решение проблемы, суть которой заключается в следующем:
При вставке готового блока "block" в чертеж при помощи лиспа в некоторых средах он его нормально скейлит по одному SCALE-параметру, а в некоторых случаях требует ввести отдельно SCALE-факторы по осям X и Y!
При отработке нижеприведенной конструкции не удается получить нужный результат, поскольку угол поворота принимается за параметр увеличения по оси Y, а если добавить второй параметр масштабирования (по оси Y) - тогда в первом случае произойдет поворот на угол 1 градус, что печально.
Код:
[Выделить все]
 (vl-cmdf "_insert" "block" <Insert_Point> <Scale_Factor> <Rotate_Angle>)
Подскажите пожалуйста советом, как этого избежать.

PS: Просьба сильно валенками не бить, я не про-лиспер.
__________________
Боишься - не делай. Делаешь - не бойся.
Просмотров: 2003
 
Непрочитано 19.02.2015, 17:38
#2
Кулик Алексей aka kpblc
Moderator

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


Есть масса вариантов:
1. Использовать entmake(x)
2. Использовать vla-InsertBlock
3. Использовать полный вариант вызова команды _.-insert, с указанием всех параметров, не оставляя ничего на авось
4. Проанализировать описание блока, проверить - можно ли его масштабировать по разным осям, и в зависимости от этого уже выполнять разные варианты команд.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 19.02.2015, 17:47
#3
Xara

Помидорка
 
Регистрация: 03.02.2012
Сообщений: 135


Алексей, спасибо за оперативность!
1 вариант отпадает - блок динамический и очень сложный;
4 вариант - он в одном автокаде может по одной оси масштабироваться, а в другом - по двум (я сначала думал, что какая-то системная переменная, но перекопал все, ничего не нашел);

2 и 3 варианты попробую, спасибо!

АП: с vla-InsertBlock не стал заморачиваться, провернул все через _.-insert, проблему обошел, но хотелось бы все-таки узнать, из-за чего это происходит?
Точнее, сам факт, почему иногда вставка регламентируется масштабированием по одной оси, а иногда - по двум!? Буду очень благодарен любому намеку, где искать!
__________________
Боишься - не делай. Делаешь - не бойся.

Последний раз редактировалось Xara, 19.02.2015 в 18:36.
Xara вне форума  
 
Непрочитано 19.02.2015, 21:13
#4
Кулик Алексей aka kpblc
Moderator

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


Возможно, определение блока уже было в файле. И старое определение блока не было указано "равное масштабирование" - вот AutoCAD его и "подхватывает"
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 24.02.2015, 10:33
#5
Xara

Помидорка
 
Регистрация: 03.02.2012
Сообщений: 135


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Возможно, определение блока уже было в файле. И старое определение блока не было указано "равное масштабирование" - вот AutoCAD его и "подхватывает"
Такое возможно с одним и тем же блоком в одном и том же файле в разных версиях автокада?
__________________
Боишься - не делай. Делаешь - не бойся.
Xara вне форума  
 
Непрочитано 24.02.2015, 10:53
1 | #6
Кулик Алексей aka kpblc
Moderator

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


По идее нет. Но, с другой стороны, чудес-то не бывает...
Попробуй в абсолютно новом и пустом файле вставить такой блок, сохранить файл в текущей версии. А потом вскрыть его в более новой версии ACAD.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 05.02.2016, 12:37
#7
Xara

Помидорка
 
Регистрация: 03.02.2012
Сообщений: 135


Прошу прощения за некропостинг, забыл в свое время ответить))
Да, вариант с vla-InsertBlock помог. Алексей, спасибо!
__________________
Боишься - не делай. Делаешь - не бойся.
Xara вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Почему слетает UNIFORM SCALE? (вставка блока с зумированием по 1 или 2 координатам)



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Восстановление *.DWG Солидворкер AutoCAD 5302 02.09.2025 12:21
Дополнительные команды для Аннотативных масштабов. Удаление лишних масштабов, копирование масштабов между объектами и т.п. Red Nova Программирование 62 24.06.2023 15:09
lisp из autocad 2004 некорректно выполняется в autocad 2008 sid_geo LISP 13 11.10.2012 11:20
ЛИСП слои цвета преобразование Gotch LISP 97 08.11.2011 10:22
Эмуляция нажатия клавиш из под AutoLisp-a Supermax LISP 89 19.11.2007 14:40