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

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

При простановке размеров dimscale всегда меняется на 100

Ответ
Поиск в этой теме
Непрочитано 25.07.2007, 12:04 #1
При простановке размеров dimscale всегда меняется на 100
Witalij
 
AL-остекление, фасадка, оконка
 
Москва
Регистрация: 25.07.2007
Сообщений: 113

День добрый.

Зараза какаято прикрепилась к некоторым чертежам - при простановке размеров dimscale всегда подскакивает до велечины 100, при открытии чертежа CELTSCALE тоже всегда выставляется на 100.
Визуально это выражается в том, что все осевые и скрытые линии надо править, и размеры скачут - парит сильно.

Файл прикладываю - попробуйте размер поставить - сразу видно будет.

Подобная проблема была в http://dwg.ru/forum/viewtopic.php?t=11339... DIMLFAC=1

[ATTACH]1185350598.dwg[/ATTACH]
Просмотров: 6766
 
Непрочитано 25.07.2007, 12:10
#2
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825


Сноси SPDS.
Krieger вне форума  
 
Автор темы   Непрочитано 25.07.2007, 12:17
#3
Witalij

AL-остекление, фасадка, оконка
 
Регистрация: 25.07.2007
Москва
Сообщений: 113
<phrase 1=


Цитата:
Сообщение от Krieger
Сноси SPDS.
Ну, это черезчур кардинально... Он таки иногда нужен. Файл не мой
У меня СПДС-а нету - сосед с ним работает, а в результате его файл у меня глючит...

Может есть варианты без сноса СПДС?
Witalij вне форума  
 
Непрочитано 25.07.2007, 12:26
#4
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825


Переменные dimscale и celtscale хранятся в файле чертежа и если сосед сохранил файл с такими переменными, то тебе один раз надо их поменять на требуемые и пользовать соответсвующий размерный стиль.
Krieger вне форума  
 
Непрочитано 25.07.2007, 12:38
#5
Кулик Алексей aka kpblc
Moderator

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


СПДС при простановке размеров "в масштабе" еще меняет также hpscale и hpspace - тоже может оказаться нужным
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 25.07.2007, 13:54
#6
Witalij

AL-остекление, фасадка, оконка
 
Регистрация: 25.07.2007
Москва
Сообщений: 113
<phrase 1=


Цитата:
Сообщение от Krieger
Переменные dimscale и celtscale хранятся в файле чертежа и если сосед сохранил файл с такими переменными, то тебе один раз надо их поменять на требуемые и пользовать соответсвующий размерный стиль.
Проверил:
открыл файл, celtscale=100, выставил в 1, сохранил, открыл заново - опять равно 100.

dimscale не изменялся.
самый фокус в том, что dimscale=5, а при постановке размера - у размера всегда dimscale=100. значение переменной при этом не меняется...
Witalij вне форума  
 
Непрочитано 25.07.2007, 14:00
#7
Кулик Алексей aka kpblc
Moderator

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


Хм... Может, Object Enabler хозяйничает? Если так, то, наверное, непобедимо. Кроме как разбивать все объекты СПДС
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 25.07.2007, 14:02
#8
Witalij

AL-остекление, фасадка, оконка
 
Регистрация: 25.07.2007
Москва
Сообщений: 113
<phrase 1=


Цитата:
Сообщение от Кулик Алексей aka kpblc
СПДС при простановке размеров "в масштабе" еще меняет также hpscale и hpspace - тоже может оказаться нужным
обе переменные=1.
такое ощущение, что после постановке размера какой-то "лиспик" меняет dimscale на 100...

Прям вирус какойто - может, потрудился ктонибудь вредитель у нас - гадость какую-то накалякал? Я вот пользуюсь твоим лиспом - он совершенно незаметно переносит размеры и штриховку по своим слоям - штука класная.
Можно какнибудь проверить наличие лисп-приложений в загруженном акаде?
Witalij вне форума  
 
Автор темы   Непрочитано 25.07.2007, 14:14
#9
Witalij

AL-остекление, фасадка, оконка
 
Регистрация: 25.07.2007
Москва
Сообщений: 113
<phrase 1=


Уточнение ситуации - у хозяина чертежа СПДС стоит, но нерабочий - админы когдато ставили.
Если его запустить - то не запускается, ошибку пишет...
Сам он в акаде англ. 2006 работает.
Я но в русском 2006 без СПДС.
Т. е. - файл создан не на компе где СПДС не работает...

А что есть Object Enabler и как его "воспитать"? :?:

пысы - вроде спдс-объектов нету в рисунке...
Witalij вне форума  
 
Непрочитано 25.07.2007, 14:28
#10
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Witalij
такое ощущение, что после постановке размера какой-то "лиспик" меняет dimscale на 100...

Прям вирус какойто - может, потрудился ктонибудь вредитель у нас - гадость какую-то накалякал?
Попробуй найти acaddoc.lsp, acad.lsp, acaddoc2000.lsp, acad2000.lsp и посмотри, что в них - может, кто и постарался поковыряться с dimscale / celtscale.
Цитата:
Я вот пользуюсь твоим лиспом - он совершенно незаметно переносит размеры и штриховку по своим слоям - штука класная.
Спасибо
Цитата:
Можно какнибудь проверить наличие лисп-приложений в загруженном акаде?
Теоретически - можно. Практически - вряд ли. Особенно если код "внефункциональный" и запускается сразу после загрузки lsp / vlx / fas файла.
Цитата:
А что есть Object Enabler и как его "воспитать"?
Об Object Enabler'ах для СПДС посмотри http://www.consistent.ru/download/SPDS/
P.S. Во, идея! Попробуй выставить demandload -> 2, вдруг поможет... Хотя вряд ли
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 25.07.2007, 14:42
#11
Witalij

AL-остекление, фасадка, оконка
 
Регистрация: 25.07.2007
Москва
Сообщений: 113
<phrase 1=


Цитата:
Сообщение от Кулик Алексей aka kpblc
P.S. Во, идея! Попробуй выставить demandload -> 2, вдруг поможет... Хотя вряд ли
А вот помогло вроде...
при demandload=2 размеры не увеличиваются, а при =3 - вырастают!

Биг СЕНКС! :P

А, кстати, этот параметр не отключает загрузку чегонить полезного???
Witalij вне форума  
 
Непрочитано 25.07.2007, 14:45
#12
Кулик Алексей aka kpblc
Moderator

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


demandload регулирует загрузку arx-приложений, прописанных в автозагрузку (извини за тафтологию). При 3 они грузятся сразу, при 2 - при первом вызове зарегистрированных функций.
Когда ты выставляешь в 2, СПДС-ка не грузится (она, похоже, у тебя установлена, только криво до невозможности) пока ты не вызовешь любую ее функцию. А ты этим не занимаешься
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.07.2007, 15:24
#13
tokhot

Проектирование
 
Регистрация: 17.11.2004
г. Москва
Сообщений: 328


Не стал создавать новой темы...

Нужен макрос или ЛИСП на изменение DIMSCALE для всех размеров чертежа
и чтоб другие переменные для каждого размера (например DIMLFAC) не изменялись

Помогите пожалуйста, очень надо...
tokhot вне форума  
 
Непрочитано 25.07.2007, 15:38
#14
Кулик Алексей aka kpblc
Moderator

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


Код:
[Выделить все]
(defun setscale (scale / adoc selset)
  (vl-load-com)
  (vla-startundomark (setq adoc (vla-get-activedocument (vlax-get-acad-object))))
  (if (setq selset (ssget "_X" '((0 . "DIMENSION"))))
    (foreach dim (mapcar 'vlax-ename->vla-object
                         (vl-remove-if 'listp (mapcar 'cadr (ssnamex selset)))
                         ) ;_ end of mapcar
      (vl-catch-all-apply '(lambda () (vla-put-scalefactor dim scale)))
      ) ;_ end of foreach
    ) ;_ end of if
  (vla-endundomark adoc)
  (princ)
  ) ;_ end of defun
Не обрабатывает размеры, сидящие в блоках и внешних ссылках; не трогает размеры на заблокированных и замороженных слоях.
---
Отредактировал немного код - поставил метки начала и конца отмены.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.07.2007, 16:31
#15
tokhot

Проектирование
 
Регистрация: 17.11.2004
г. Москва
Сообщений: 328


2 Кулик Алексей aka kpblc
Что-то не получается...

Код:
[Выделить все]
Command: (setscale)
; error: too few arguments
а можно тоже, только через макрос?

Хотя бы идею как можно поменять ДИМСКАЛЕ?
Как выбрать размеры разобрался, а вот назначить ДИМСКАЛЕ получается только через -dimstyle -> Аpply , но тогда слетают остальные переменные(устанавливает текущие).
tokhot вне форума  
 
Непрочитано 25.07.2007, 16:48
#16
Кулик Алексей aka kpblc
Moderator

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


Вызов:
Код:
[Выделить все]
(setscale 100)
Число - устанавливаемое значение dimscale для размеров.
P.S. Сама dimscale не меняется!
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.07.2007, 17:15
#17
tokhot

Проектирование
 
Регистрация: 17.11.2004
г. Москва
Сообщений: 328


А как посадить ЛИСП на кнопку без подгрузки ЛИСП-файла?

ТАК...
Код:
[Выделить все]
^C^C(defun myfunc() (defun setscale (scale / adoc selset) (vl-load-com) (if (setq selset (ssget "_X" '((0 . "DIMENSION")))) (foreach dim (mapcar 'vlax-ename->vla-object(vl-remove-if 'listp (mapcar 'cadr (ssnamex selset)))) ;_ end of mapcar(vl-catch-all-apply '(lambda () (vla-put-scalefactor dim scale)))) ;_ end of foreach) ;_ end of if) ;_ end of defun);(myfunc);
Ну типа того...
Блин я в ЛИСП не волоку совсем!!!

Главное чтобы ЛИСП-файла не было совсем, поэтому и нужен МАКРОС.
tokhot вне форума  
 
Непрочитано 25.07.2007, 17:24
#18
Кулик Алексей aka kpblc
Moderator

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


Наверное, нечто типа такого получится:
Код:
[Выделить все]
^C^C^P(defun c:func( / adoc selset scale) (vl-load-com) (vla-startundomark (setq adoc (vla-get-activedocument (vlax-get-acad-object)))) (setq scale 100) (if (setq selset (ssget "_X" '((0 . "DIMENSION")))) (foreach dim (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex selset)))) (vl-catch-all-apply '(lambda () (vla-put-scalefactor dim scale))))) (vla-endundomark adoc) (princ));func;
В корректности кода не уверен, пишу без када.
Интересно, а чем лисп-то не нравится? Засунь его в автозагрузку и всех делов...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.07.2007, 17:40
#19
tokhot

Проектирование
 
Регистрация: 17.11.2004
г. Москва
Сообщений: 328


Пока не получается...
Код:
[Выделить все]
Command:
(((((_>
(((((_> *Cancel*
; error: Function cancelled
Буду пытать может чего получится...

Цитата:
Интересно, а чем лисп-то не нравится? Засунь его в автозагрузку и всех делов...
На счет автозагрузки я знаю, но надо чтобы ВСЁ (разные команды,панели) хранилось в отдельном CUI. Так повелось...

PS
СПАСИБО ОГРОМНОЕ!!!
tokhot вне форума  
 
Непрочитано 25.07.2007, 17:42
#20
Кулик Алексей aka kpblc
Moderator

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


Да и бог с ним, пускай и хранится. А лиспы отдельно.
P.S. То, что выдал кад, показывает, что я со скобками чего-то перемудрил. Вечером (если никто раньше не исправит) посмотрю.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > При простановке размеров dimscale всегда меняется на 100

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

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