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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > масштабирование объектов в AutoLISP

масштабирование объектов в AutoLISP

Ответ
Поиск в этой теме
Непрочитано 08.04.2009, 14:30 #1
масштабирование объектов в AutoLISP
sazone
 
Регистрация: 08.04.2009
Сообщений: 4

мне требуется масштабирование объектов по осям х и y с разными коэффициентами
к примеру я хочу смаштабировать объект с коэффициентом по оси х=0,9
а по оси у оставить коэффициент 1
я так понимаю надо создавать программку в AutoLISP?
или есть стандартная функция в AutoCad'e?
помогите плиз, оч.надо
Просмотров: 4157
 
Непрочитано 08.04.2009, 14:55
#2
Кулик Алексей aka kpblc
Moderator

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


В Download посмотри программу от Дениса Флюстикова (вроде была) - как раз насчет масштабирования по разным осям.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 08.04.2009, 15:02
#3
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


В toolpac`e для этого есть команда DSTP_OBJXYZSCL
zamtmn вне форума  
 
Непрочитано 08.04.2009, 15:07
#4
zenon

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


Создать из объектов блок, задать масштаб по осям, взорвать.
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Автор темы   Непрочитано 08.04.2009, 15:39
#5
sazone


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


согласен блоком можно
а если мне надо много масштабировать и всегда разный коэффициент?
обрисую подробнее ситуацию
у меня есть рисунок в dwg размером 800х2000 мм и надо постоянно менять размер (к примеру на 760х1960, или 760х2050)
постоянно пересчитывать коэф. нудно и если учесть что изображений больше 100
есть ли возможность задать конечный размер, а прога сама уже подберет коэффициент?
sazone вне форума  
 
Непрочитано 08.04.2009, 15:49
#6
Кулик Алексей aka kpblc
Moderator

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


Создавай рисунок размерами 1х1, вставляй как блок и масштабируй потом как вздумается.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 08.04.2009, 16:07
#7
zenon

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


думаю все можно загнать в макрос
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Автор темы   Непрочитано 08.04.2009, 16:10
#8
sazone


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


Цитата:
Сообщение от zenon Посмотреть сообщение
думаю все можно загнать в макрос
как?
sazone вне форума  
 
Непрочитано 08.04.2009, 16:19
#9
zenon

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


sazone, http://dwg.ru/art/2
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 08.04.2009, 16:27
#10
nik_mb

конструктор
 
Регистрация: 23.03.2009
Волгоград
Сообщений: 120


Цитата:
Сообщение от zenon Посмотреть сообщение
думаю все можно загнать в макрос
Задача решается не очень просто, так как за раз надо:
1. Создать блок и его имя.
2. Определить размеры этого блока (не просто, если нет рамки вокруг него).
3. Определить, указанием, новые размеры.
4. Пересчитать коэфициенты.
5. Вставить блок с новыми коэф. и взорвать.

ЗЫ. лучше один раз увидеть задачу (или фрагмент), чем сто раз услышать.
nik_mb вне форума  
 
Непрочитано 08.04.2009, 16:37
#11
zenon

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


nik_mb, больно замудренно
давай разберем
1. Выбрать объекты
2. Создать блок
3. Вставить блок с масштабными коэф.
4. Взорвать блок.
Все.
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 08.04.2009, 16:49
#12
nik_mb

конструктор
 
Регистрация: 23.03.2009
Волгоград
Сообщений: 120


Цитата:
Сообщение от zenon Посмотреть сообщение
nik_mb, больно замудренно
давай разберем
1. Выбрать объекты
2. Создать блок
3. Вставить блок с масштабными коэф.
4. Взорвать блок.
Все.
Но я понял задачу так - много разных фрагментов, которые нужно перемасштабировать по разному. Если коэфициенты масштаба постоянны, то это сильно упрощает задачу. Но тогда это можно сделать один раз для всех объектов в файле. А sazone указывает, что "изображений больше 100", неспроста.
Простейший код такой программы (если предварительно начертить рамки существующего и требуемого изображения)
Код:
[Выделить все]
 
(defun C:р_масш ()
(setq ugol1 (getpoint "Укажи первый угол изображения")) 
(setq ugol2 (getpoint "\nУкажи по диагонали второй угол сущ. изображения" ugol1)) 
(setq ugol3 (getpoint "\nУкажи по диагонали угол нужного размера изображения" ugol1))
(setq delta_x1 (abs (- (car ugol1)(car ugol2))))
(setq delta_y1 (abs (- (cadr ugol1)(cadr ugol2))))
(setq delta_x2 (abs (- (car ugol1)(car ugol3))))
(setq delta_y2 (abs (- (cadr ugol1)(cadr ugol3))))
(setq koef_x (/ delta_x2 delta_x1))
(setq koef_y (/ delta_y2 delta_y1))
(command "_block" "qwerty" ugol1 "_c" ugol1 ugol2 "")
(command "_insert" "qwerty" ugol1 "_x" koef_x koef_y 1 "")
(command "_explode" "_l" "")
(command "purge" "_b" "qwerty" "n")
  )

Последний раз редактировалось nik_mb, 09.04.2009 в 09:59.
nik_mb вне форума  
 
Автор темы   Непрочитано 09.04.2009, 15:52
#13
sazone


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


спасибо
попробуем
sazone вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > масштабирование объектов в AutoLISP



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Набор объектов DEM Программирование 21 26.03.2014 19:11
AutoLISP: Определение количества экземпляров созданных COM объектов Supermax LISP 13 22.11.2008 20:31
FILTER / фильтр BM60 Справочник команд 0 08.07.2008 15:35
Масштабирование объектов Saha AutoCAD 7 11.03.2008 14:54
Масштабирование объектов при печати в разных форматах Yuri AutoCAD 4 13.05.2004 19:27