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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Получить масштаб ВЭ средствами ActveX

Получить масштаб ВЭ средствами ActveX

Ответ
Поиск в этой теме
Непрочитано 19.01.2009, 10:53 #1
Получить масштаб ВЭ средствами ActveX
Makswell
 
Инженер-строитель
 
Киров
Регистрация: 15.08.2007
Сообщений: 2,204

Всем привет!

Сразу скажу, что масштаб ВЭ я могу получить с помощью такого:
Код:
[Выделить все]
(defun test (/ ent ent_lst)
  (setq	ent	(car (entsel))
	ent_lst	(entget ent)
  )
  (/ (cdr (assoc 41 (entget ent))) (cdr (assoc 45 (entget ent))))
)
Вопрос не в этом. Мне непонятно поведение лиспа, когда я пытаюсь определить значение свойства StandardScale объекта ВЭ.

Я приложил файл, к которому применил следущие дествия. См. лог работы.
Цитата:
_$ (vla-get-StandardScale (vlax-ename->vla-object (car (entsel))))
9
_$ (vla-get-StandardScale (vlax-ename->vla-object (car (entsel))))
9
Здесь я сначала выбрал ВЭ с масштабом 1:50, а потом ВЭ с масштабом 1:100. Результат одинаковый - 9.
Согласно документации 9 соответствует масштабу 1:30 и хранится в зарезервированной переменной acVp1_30.
Проверил:
Цитата:
$ acVp1_30
9
Так и есть.

Объяснить это пока совершенно невозможно, потому что, на мой взляд, если бы лисп не понял, что ВЭ соответствует масштаб 1:50, то он хотя бы присвоил свойству StandardScale значение 1 (что соответсвует переменной acVpCustomScale, и обзначает, что масштаб пользовательский). Но здесь получается 9, что однозначно должно интерпретироваться как 1:30. Мало того, у разных (в смыле масштабов) ВЭ значения StandardScale получаются равными.

Или я не так понимаю смысл свойства StandardScale?

Добалено:
Сейчас сам скачал файл и попробовал на нем лисп.
Цитата:
_$ (vla-get-StandardScale (vlax-ename->vla-object (car (entsel))))
12
_$ (vla-get-StandardScale (vlax-ename->vla-object (car (entsel))))
13
Опять непонятно. Свойство StandardScale вообще изменилось, значения уже не одинаковые, но опять не соответсвуют масштабам.

Вложения
Тип файла: dwg
DWG 2007
VP.dwg (73.5 Кб, 386 просмотров)


Последний раз редактировалось Makswell, 19.01.2009 в 11:02.
Просмотров: 3257
 
Непрочитано 19.01.2009, 23:15
#2
Кулик Алексей aka kpblc
Moderator

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


Ну а почему бы и не использовать преобразования в ename? С другой стороны, действительно странно: к стандартному значению масштаба прибавляется acVpCustomScale. Масштаб печати вообще не учитывается...
В общем, я бы не заморачивался и оставил получение масштаба через ename-представление.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 20.01.2009, 08:18
#3
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


В общем-то я так и сделал. Просто была интересна причина несоответствия документации. У меня была мысль, что может быть это зависит от версии или может это от того, что я постоянно применяю чистку спика масштабов? Хотя действительно - это совсем не важно. Просто для себя поставлю галочку, что данный способ не рекомендуется к применению.

ЗЫ Кстати, насчет того, что вначале результатом являлось 9, так я это вообще не смог опять повторить. Как так получилось, сам не понимаю. Всё же реально получается значение равное нужному плюс один.
Makswell вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Получить масштаб ВЭ средствами ActveX

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дополнительные команды для Аннотативных масштабов. Удаление лишних масштабов, копирование масштабов между объектами и т.п. Red Nova Программирование 62 24.06.2023 15:09
как получить параметры бумаги принтеров? ASLYS Программирование 1 21.04.2008 19:04
Масштаб размерной надписи yuriram AutoCAD 6 11.03.2008 11:06
Развертка средствами AutoCADa Mercury_jr AutoCAD 2 24.10.2007 20:49
Масштаб штриховки меняется, как исправить? Pave1 AutoCAD 5 05.05.2006 13:29