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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Нормализация insunits у всех блоков сразу

Нормализация insunits у всех блоков сразу

Ответ
Поиск в этой теме
Непрочитано 28.06.2008, 09:38 #1
Нормализация insunits у всех блоков сразу
Red Nova
 
ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Торонто
Регистрация: 23.10.2007
Сообщений: 1,980

Было время я еще не знал про insunits, и блоки у меня получались в разных файлах с разным метрическим параметром. Теперь Вот при insert вечно приходиться менять insunits то на 1 то на 4. Могу по очереди поменять insunits блока зайдя в блок эдитор, но это долго, да и файлов таких куча. Нельзя ли как-то сразу у всех блоков поменять этот параметр на 4 скажем? Главная цель в том чтобы они вставлялись в нормальном размере. Если есть другие варианты предлагайте.
Еще есть и вариант insunits=0, зачем он? Думал это что-то типа unitless, и может при insunits=0 блоки с разными мерами измерения будут одинаково вставляться, но этого не происходит. Пробовал на блок поставить unitless, вроде корректно вставляет при любом insunits, но это тоже надо все по очереди менять.
__________________
Блог
Просмотров: 9309
 
Непрочитано 28.06.2008, 23:29
#2
Кулик Алексей aka kpblc
Moderator

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


http://www.arcada.com.ua/forum/viewtopic.php?t=724 видел? Минимум редактирования и обрабатываются все блоки текущего файла
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 29.06.2008, 13:59
#3
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,980
Отправить сообщение для Red Nova с помощью Skype™


Для тебя минимум, для меня максимум . Можно изменить так, чтобы все блоки сделались сразу в миллиметрах?
__________________
Блог
Red Nova вне форума  
 
Непрочитано 29.06.2008, 23:38
#4
Кулик Алексей aka kpblc
Moderator

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


Примерно так (код я не гонял, проверь сам):
Код:
[Выделить все]
(defun block-units (units / *error* fun_get-name doc)
		   ;|
*    Нормализация всех блоков текущего файла.
*    Параметры вызова:
	units	одно из значений перечисления AcInsertUnits:
	 acInsertUnitsUnitless		0
	 acInsertUnitsInches		1
	 acInsertUnitsFeet		2
	 acInsertUnitsMiles		3
	 acInsertUnitsMillimeters	4
	 acInsertUnitsCentimeters	5
	 acInsertUnitsMeters		6
	 acInsertUnitsKilometers	7
	 acInsertUnitsMicroinches	8
	 acInsertUnitsMils		9
	 acInsertUnitsYards 		10
	 acInsertUnitsAngstroms		11
	 acInsertUnitsNanometers	12
	 acInsertUnitsMicrons		13
	 acInsertUnitsDecimeters	14
	 acInsertUnitsDecameters	15
	 acInsertUnitsHectometers	16
	 acInsertUnitsGigameters	17
	 acInsertUnitsAstronomicalUnits	18
	 acInsertUnitsLightYears	19
	 acInsertUnitsParsecs		20
*    Примеры вызова:
(block-units acInsertUnitsMillimeters)	; единицы вставки блоков в миллиметры
(block-units acInsertUnitsUnitless)	; единицы вставки блоков - отсутствуют
|;

  (defun *error* (msg)
    (vla-endundomark doc)
    (princ msg)
    (princ)
    ) ;_ end of defun

  (defun fun_get-name (ent)
    (cond
      ((vlax-property-available-p ent 'effectivename)
       (vla-get-effectivename ent)
       )
      ((vlax-property-available-p ent 'name) (vla-get-name ent))
      (t "")
      ) ;_ end of cond
    ) ;_ end of defun

  (vl-load-com)
  (vla-startundomark (setq doc (vla-get-activedocument (vlax-get-acad-object))))
  (vlax-for blk_def (vla-get-blocks doc)
    (if	(and (equal (vla-get-islayout blk_def) :vlax-false)
	     (equal (vla-get-isxref blk_def) :vlax-false)
	     (not (wcmatch (strcase (fun_get-name blk_def)) "`*D"))
	     ) ;_ end of and
      (vl-catch-all-apply
	'(lambda ()
	   (vla-put-units blk_def units)
	   ) ;_ end of lambda
	) ;_ end of vl-catch-all-apply
      ) ;_ end of if
    ) ;_ end of vlax-for
  (vla-endundomark doc)
  (princ)
  ) ;_ end of defun
P.S. Код из поста не удаляю - мало ли кому лениво качать будет
Вложения
Тип файла: lsp block-units.LSP (1.9 Кб, 476 просмотров)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 01.07.2008, 17:40
#5
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,980
Отправить сообщение для Red Nova с помощью Skype™


Спасибо большое. То что надо. Работает отлично
__________________
Блог
Red Nova вне форума  
 
Непрочитано 24.08.2017, 12:23
#6
Linkshunter

проектирование а/дорог
 
Регистрация: 03.07.2013
СПб
Сообщений: 376


т.к. тема схожа.
собственно ищу способ пакетно (не открывая файл,в автоматическом режиме) переназначить единицы чертежа множеству файлов.
в ручном режиме синхронизирую значения переменных:
-DWGUNITS
-INSUNITS
Linkshunter вне форума  
 
Непрочитано 24.08.2017, 12:25
1 | #7
Boxa

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


Цитата:
Сообщение от Linkshunter Посмотреть сообщение
т.к. тема схожа.
собственно ищу способ пакетно (не открывая файл,в автоматическом режиме) переназначить единицы чертежа множеству файлов.
в ручном режиме синхронизирую значения переменных:
-DWGUNITS
-INSUNITS
accoreconsole.exe + scr файл и все это внутри bat файла.
Boxa вне форума  
 
Непрочитано 24.08.2017, 12:39
#8
Linkshunter

проектирование а/дорог
 
Регистрация: 03.07.2013
СПб
Сообщений: 376


Цитата:
Сообщение от Boxa Посмотреть сообщение
accoreconsole.exe + scr файл и все это внутри bat файла.
...не программист ни разу к сожалению
Linkshunter вне форума  
 
Непрочитано 24.08.2017, 12:43
| 1 #9
Кулик Алексей aka kpblc
Moderator

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


Тогда добро пожаловать в http://forum.dwg.ru/forumdisplay.php?f=33 )))
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 24.08.2017, 12:55
#10
Linkshunter

проектирование а/дорог
 
Регистрация: 03.07.2013
СПб
Сообщений: 376


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Тогда добро пожаловать в http://forum.dwg.ru/forumdisplay.php?f=33 )))
Offtop: ..а сколько это может стоить? и как счет получить чтоб перед начальником отчитаться)))
Linkshunter вне форума  
 
Непрочитано 24.08.2017, 13:51
#11
Кулик Алексей aka kpblc
Moderator

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


Ну а я откуда знаю? Кинь клич, оставь данные - и жди )))
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 24.08.2017, 15:16
1 | #12
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


есть ещё ScriptPro
https://knowledge.autodesk.com/suppo...ion-tools.html
trir вне форума  
 
Непрочитано 25.08.2017, 17:26
#13
Linkshunter

проектирование а/дорог
 
Регистрация: 03.07.2013
СПб
Сообщений: 376


Цитата:
Сообщение от trir Посмотреть сообщение
штука интересная, но капризная и перезапуск акада с каждым файлом не фонтан. Пока пользую рекордер операций+сохранить все+закрыть все
Linkshunter вне форума  
 
Непрочитано 26.08.2017, 23:05
2 | 1 #14
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от Linkshunter Посмотреть сообщение
собственно ищу способ пакетно (не открывая файл,в автоматическом режиме) переназначить единицы чертежа множеству файлов.
в ручном режиме синхронизирую значения переменных:
-DWGUNITS
-INSUNITS
Здесь под №8 ссылка на возможные способы Последовательное применение lisp-функции к множеству файлов DWG

Цитата:
Сообщение от Linkshunter Посмотреть сообщение
не программист ни разу к сожалению
Тогда по ссылке попробуй вариант №8 Программа для пакетной обработки файлов v.1.1
Пример лиспа.
Код:
[Выделить все]
(defun C:MyVar ()
(setvar "INSUNITS" 6)
(command "_-DWGUNITS" 6 2 2 "_No" "_No" "_No")
(princ)
)
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 29.08.2017 в 18:22.
VVA вне форума  
 
Непрочитано 28.08.2017, 17:10
#15
Linkshunter

проектирование а/дорог
 
Регистрация: 03.07.2013
СПб
Сообщений: 376


Цитата:
Сообщение от VVA Посмотреть сообщение
Тогда по ссылке попробуй вариант №8 Программа для пакетной обработки файлов v.1.1
спасибо большое, интересная программа, попробовал, как работает - понимание вроде есть(необходимо правильный шаблон настроить для команды "БСОЗДАТЬ"), добился пакетного "INSUNITS" 6, а с "DWGUNITS" не совсем понял как задать несколько ответов подряд на запрос программы
Код:
[Выделить все]
Команда: -DWGUNITS
Единицы чертежа:
  1. дюймы
  2. футы
  3. миллиметры
  4. сантиметры
  5. дециметры
  6. метры
Единицы длины <1>: 6
Форматы единиц чертежа:
  1. Научный
  2. Десятичный
Формат линейных единиц <2>: 2
Точность линейных единиц <4>: 2
Масштабировать объекты других чертежей при вставке? [Да/Нет] <Да>: Н
Сопоставить INSUNITS с единицами чертежа? [Да/Нет] <Нет>:
 ** ВНИМАНИЕ: были изменены единицы для базы данного чертежа.  **
 ** Все новые объекты будут рисоваться в соответствии с этим, но   **
 ** существующие объекты останутся без изменений, пока  **
 ** не будет явно назначен режим автомасштабирования.                           **
Масштабировать объекты текущего чертежа с учетом измененных единиц? [Да/Нет] <Да>: Н
Linkshunter вне форума  
 
Непрочитано 29.08.2017, 18:22
1 | #16
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от Linkshunter Посмотреть сообщение
"DWGUNITS" не совсем понял как задать несколько ответов подряд на запрос программы
Исправил. См. #14 Это не переменная, это команда
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 29.08.2017, 19:17
#17
Linkshunter

проектирование а/дорог
 
Регистрация: 03.07.2013
СПб
Сообщений: 376


Цитата:
Сообщение от VVA Посмотреть сообщение
Исправил. См. #14 Это не переменная, это команда
спасибо большое за помощь, я так понял что вывод/не вывод запроса последнего (Масштабировать объекты текущего чертежа с учетом измененных единиц? [Да/Нет] <Да>: Н )
зависит от текущих настроек единиц чертежа, т.е. не всегда требуется последнее "_No" Но так как такой команды нет, на результат работы это не влияет,просто в комстроку выходит сообщение:
Код:
[Выделить все]
Команда:
 _No Неизвестная команда "NO".  Для вызова справки нажмите F1.
Команда:
Linkshunter вне форума  
 
Непрочитано 29.08.2017, 19:34
#18
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от Linkshunter Посмотреть сообщение
Но так как такой команды нет, на результат работы это не влияет,просто в комстроку выходит сообщение:
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 06.02.2021, 14:59
#19
fused49


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
P.S. Код из поста не удаляю - мало ли кому лениво качать будет
Спасибо, выручили
fused49 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Нормализация insunits у всех блоков сразу

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена шрифта сразу во всех стилях Georg AutoCAD 29 01.04.2021 07:57
LISP. Нормализация блоков текущего файла. Кулик Алексей aka kpblc Готовые программы 82 06.07.2016 20:38
Изменить параметры у всех объектов внутри блоков 800x600 AutoCAD 5 25.03.2008 14:21
Подскажите способ перевода DWG в PDF сразу для всех лайаутов dextron3 AutoCAD 15 14.10.2007 20:39
Как слой включить сразу во всех видовых экранах ilka_t AutoCAD 4 26.04.2004 11:20