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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Решение проблемы с единицами блоков в Автокад

Решение проблемы с единицами блоков в Автокад

Ответ
Поиск в этой теме
Непрочитано 28.10.2019, 05:46 #1
Решение проблемы с единицами блоков в Автокад
Nikilin
 
Регистрация: 28.10.2019
Сообщений: 57

Здравствуйте товарищи, столкнулся с проблемой в единицах блоков и чертежа.
В общем суть проблемы в следующем допустим есть чертеж куда необходимо вставить блоки. Параметры у данного чертежа следующие:
INSUNITS = 4 (мм)
INSUNITSDEFSOURCE = 4 (мм)
INSUNITSDEFTARGET = 4 (мм)
DIMLFAC = 1
DIMALTF = 0.0394 (метрические единицы)
настройки единиц у блоков аналогичные.
При вставки блоков в чертеж одни вставляют с масштабом в 25.4 раза больше, другие в нормальном размере.
Через свойства блок определен в мм.
Вопрос с чем это связано? если еще переменные влияющие на вставку блока в чертеж.
Блоки делал безразмерными, не помогло.
Для большей простоты понимания сути проблемы прикрепляю два блока.

Прогонял блоки и чертеж через _dwgunits везде идентичные настройки.

Вложения
Тип файла: dwg
DWG 2010
Blok_Gl.dwg (270.7 Кб, 36 просмотров)
Тип файла: dwg
DWG 2010
Возраст слоя.dwg (149.2 Кб, 26 просмотров)


Последний раз редактировалось Nikilin, 30.10.2019 в 05:26. Причина: Дополнение
Просмотров: 8447
 
Непрочитано 28.10.2019, 11:52
#2
zenon

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


Цитата:
Сообщение от Nikilin Посмотреть сообщение
DIMALTF = 0.0394 (метрические единицы)
сам и написал

Цитата:
DIMALTF
Тип: Вещественный
Сохранен в: Чертеж
Начальное значение: 25,4000 (британские единицы) или 0,0394 (метрические единицы)

Задает множитель для альтернативных единиц.

Если переменная DIMALT включена, переменная DIMALTF умножает линейные размеры на коэффициент для получения значения в альтернативной системе измерений. Начальное значение переменной равно числу миллиметров в одном дюйме.
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Автор темы   Непрочитано 28.10.2019, 11:59
#3
Nikilin


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


Цитата:
Сообщение от zenon Посмотреть сообщение
Сообщение от Nikilin
DIMALTF = 0.0394 (метрические единицы)
сам и написал

Цитата:
DIMALTF
Тип: Вещественный
Сохранен в: Чертеж
Начальное значение: 25,4000 (британские единицы) или 0,0394 (метрические единицы)

Задает множитель для альтернативных единиц.

Если переменная DIMALT включена, переменная DIMALTF умножает линейные размеры на коэффициент для получения значения в альтернативной системе измерений. Начальное значение переменной равно числу миллиметров в одном дюйме.
Не совсем понимаю .
У меня в двух блоках значение DIMALTF=0,0394 в чертеже куда вставляется данные блоки этот же параметр равен 0,0394, но вставка блоков происходит по разному, в одном случае нормально, в другом в 25 раз больше.
Nikilin вне форума  
 
Непрочитано 28.10.2019, 14:11
#4
zenon

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


Что-то даже открыть не смог
Нажмите на изображение для увеличения
Название: Glukkk.png
Просмотров: 177
Размер:	16.1 Кб
ID:	219435

а по факту скорее всего есть разница в единицах блока и единицах чертежа, надо везде одинаково ставить без дюймов
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 28.10.2019, 14:14
#5
Кулик Алексей aka kpblc
Moderator

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


Nikilin, _dwgunits?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 30.10.2019, 05:19
#6
Nikilin


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


Цитата:
Сообщение от zenon Посмотреть сообщение
Что-то даже открыть не смог
Все правильно, если нажать "да" то блок откроется. Просто блок с элементами видимости.

Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Nikilin, _dwgunits?
Забыл добавить данную команду в шапку.
Проверял через данную команду и блоки и чертеж, все идентично, однако блоки как вставлялись в разных масштаба так и вставляются. (приложил бы скрины, но их было бы много и не информативно)
Думал вообще отрубать масштабирование блоков, или задать через панель масштаб. Это бы конечно решило бы проблему со вставкой блоков в будущую отчетную документацию, но опять же хотелось бы понять причину почему происходит подобная ситуевина. Да и выглядело бы это как костыли, а не нормально отработанная форма.
Nikilin вне форума  
 
Непрочитано 30.10.2019, 09:01
| 1 #7
zenon

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


Цитата:
Сообщение от Nikilin Посмотреть сообщение
Все правильно, если нажать "да" то блок откроется. Просто блок с элементами видимости.
Хотелось бы видеть просто чертеж с проблемными блоками, а не если нажать "да" то блок откроется. Просто блок с элементами видимости.
При закрытии редактора блока автокад закрывает файл.
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Автор темы   Непрочитано 05.11.2019, 11:47
#8
Nikilin


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


Долго не было времени сбросить файл с блоками.
Вложения
Тип файла: dwg
DWG 2010
ПРИМЕР.dwg (284.1 Кб, 18 просмотров)
Nikilin вне форума  
 
Непрочитано 05.11.2019, 12:08
#9
AMDen

Инженер-проектировщик
 
Регистрация: 07.07.2016
Санкт-Петербург
Сообщений: 759


Цитата:
Сообщение от Nikilin Посмотреть сообщение
При вставки блоков в чертеж одни вставляют с масштабом в 25.4 раза больше, другие в нормальном размере.
Через свойства блок определен в мм.
Вставляется все правильно. Просто блок Blok_Gl в редакторе блока в 25,4 раза больше чем надо.
AMDen вне форума  
 
Непрочитано 05.11.2019, 12:14
#10
engngr

сети
 
Регистрация: 03.11.2008
Московия*
Сообщений: 5,915


Цитата:
Сообщение от Nikilin Посмотреть сообщение
Долго не было времени сбросить файл с блоками.
У меня масштаб по осям 1, умножения нет. Какие размеры внутри блока, такие и у вхождения.
engngr вне форума  
 
Непрочитано 05.11.2019, 12:17
#11
AlexCondor

инженер
 
Регистрация: 03.08.2007
Сообщений: 1,401


А почему вы решили что блоки масштабируются. Например, размеры Blok_Gl полностью соответствуют приведенным ранее.
Я бы советовал вам полностью отключить DIMALT, и не заморачиваться альтернативными единицами, а работать только в мм.
И помнить что, элемент начерченный в одних единицах чертежа, после изменения этих самых единиц, автоматически сам не отмасштабируеся.
AlexCondor вне форума  
 
Автор темы   Непрочитано 05.11.2019, 12:47
#12
Nikilin


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


Цитата:
Сообщение от AMDen Посмотреть сообщение
Сообщение от Nikilin
При вставки блоков в чертеж одни вставляют с масштабом в 25.4 раза больше, другие в нормальном размере.
Через свойства блок определен в мм.
Вставляется все правильно. Просто блок Blok_Gl в редакторе блока в 25,4 раза больше чем надо..
Ну вот в том то и дело, сделал панельку себе с этим блоками, а они вставляются все по разному, причем созданы были в одном документе.
Я сам могу потратить пару секунд на масштабирование, а некоторых моих коллег которые пользуются этими блоками это выбивает. Все потом копируют от куда не надо, и что не надо, или бегут ко мне. Хотелось бы отладить все до ума и забыть.
Цитата:
Сообщение от AlexCondor Посмотреть сообщение
А почему вы решили что блоки масштабируются. Например, размеры Blok_Gl полностью соответствуют приведенным ранее.
Я бы советовал вам полностью отключить DIMALT, и не заморачиваться альтернативными единицами, а работать только в мм.
И помнить что, элемент начерченный в одних единицах чертежа, после изменения этих самых единиц, автоматически сам не отмасштабируеся.
Ну отключение DIMALT не решало проблему, вообще если честно не пойму от куда корни растут, если созданы блоки в одном чертеже практически. Единицы изначально были в мм, и сейчас у блоков либо безразмер, либо мм.
Пока даже не знаю если создам блоки по новой, появится ли подобный сбой или нет. Времени на это уходит не мало, блоков много.
Nikilin вне форума  
 
Автор темы   Непрочитано 06.11.2019, 12:24
#13
Nikilin


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


Цитата:
Сообщение от Nikilin Посмотреть сообщение
Долго не было времени сбросить файл с блоками.
Вложения

DWG 2010 ПРИМЕР.dwg (284.1 Кб, 5 просмотров)
Еще один пример обратной связи. Теперь при тех же настройках все наоборот. Те блоки что вставлялись нормального размера стали мелкими.
Может все же есть другая переменная которая и составила разницу в файлах.
Вложения
Тип файла: dwg
DWG 2010
ПРИМЕР 2.dwg (214.9 Кб, 8 просмотров)
Nikilin вне форума  
 
Непрочитано 06.11.2019, 12:28
1 | #14
Кулик Алексей aka kpblc
Moderator

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


_.dwgunits запусти для начала:
Код:
[Выделить все]
Command: -DWGUNITS Loading AEC Base...
Loading AEC Base Extended...
Loading AEC Core...

Drawing units:
  1. Inches
  2. Feet
  3. Millimeters
  4. Centimeters
  5. Decimeters
  6. Meters
Unit for length <1>:
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.11.2019, 15:51
#15
engngr

сети
 
Регистрация: 03.11.2008
Московия*
Сообщений: 5,915


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
_.dwgunits
._dwgunits
engngr вне форума  
 
Автор темы   Непрочитано 06.11.2019, 16:22
#16
Nikilin


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
_.dwgunits запусти для начала:
Цитата:
Сообщение от engngr Посмотреть сообщение
._dwgunits
Спасибо. Я что то даже не задумывался, что единицы заданные через INSUNITS могут отличатся от ._dwgunits. Сказывается недостаточная изученность данного вопроса.
Однако с блоками это не помогло. Как вставлялись по разному, так и вставляются.
Но это поправимо. Теперь хотя бы один вариант вставки блоков, а не 2. Забил в панельку масштаб для некоторых блоков 0,0393700787401575 и теперь они все нормального размера.
И добавил на панельку команду для простаки всех единиц в мм. Открыл непонятно как созданный чертеж, запустил, и привел к стандарту.
Nikilin вне форума  
 
Непрочитано 06.11.2019, 16:24
#17
AlexCondor

инженер
 
Регистрация: 03.08.2007
Сообщений: 1,401


А если еще точнее тогда: _-dwgunits

Цитата:
Сообщение от Nikilin Посмотреть сообщение
Забил в панельку масштаб для некоторых блоков 0,0393700787401575 и теперь...
Чтобы потом спотыкататься о что-нибудь другое. См. файл "Пример 2", разные масштабы по осям для блока
AlexCondor вне форума  
 
Автор темы   Непрочитано 06.11.2019, 16:30
#18
Nikilin


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


Ранее когда писали про данную команду, я проверил пару чертежей, везде стояли мм, однако сейчас при проверки других (выведенные из различных программ, или присланные заказчиком) выяснялось, что везде настройки _dwgunits отличаются, где то при INSUNITS в мм, _dwgunits стоит в дюймовой.
Теперь возьму на заметку проверять все чертежи на единицы измерений.
Еще раз СПАСИБО.

----- добавлено через ~10 мин. -----
Цитата:
Сообщение от AlexCondor Посмотреть сообщение
Цитата:
Сообщение от Nikilin
Забил в панельку масштаб для некоторых блоков 0,0393700787401575 и теперь...
Чтобы потом спотыкататься о что-нибудь другое. См. файл "Пример 2", разные масштабы по осям для блока
Пожалуй полностью соглашусь,хотелось бы отладить все до конца и найти причину разной вставки одинаково созданных блоков.
Заметил только разницу масштаба по оси Z в блоке Blok_Gl от X и Y. Это механическая ошибка при вставки блока, удалил блок, очистил чертеж, добавил по новой, проверил масштабы по осям, везде масштаб равен 1. Скорей всего случайно сам изменил и не заметил.
Nikilin вне форума  
 
Непрочитано 07.11.2019, 07:47
#19
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Выставь INSUNITSDEFSOURCE = 0 (не заданы) и INSUNITSDEFTARGET = 0 (не заданы) и блоки (ссылки) не будут масштабироваться при вставке в зависимости от значения переменной INSUNITS
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 13.11.2019, 06:45
#20
Nikilin


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


В общем нашел причину проблемы. Связана она с командой _dwgunits. Не зря многие ссылались на нее. В общем проставив в блоках _dwgunits в мм я особо ее больше не проверял. Оказалось у меня сбоит на рабочем месте автокад. Ставлю _dwgunits, 3, она делает вид что выставилась, но зайдя повторно оказалось, что настройки не выставились. На другом компьютере все нормально работает. В общем теперь блоки все нормального размера вставляются.
Nikilin вне форума  
 
Автор темы   Непрочитано 20.11.2019, 08:23
#21
Nikilin


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


Товарищи необходима помощь.
Как изменить DWGUNITS в блоках в чертеже пакетно.
Есть ли такой способ??? В общем мне не хватает знаний и понимание для решения следующие ситуации с блоками.
Суть ситуации такова: Есть чертеж, там собрано около 698 блоков различной направленность, в основном геодезических. Блоки безразмерные. Вынес пару блоков на палитру и в результате тестов оказалось что блоки вставляется в 25.4 раза больше чем надо. Думаю что в настройках блоков DWGUNITS дюймовый, но как изменить не соображу. Возможно я не прав в своих суждениях и все не так.
Есть конечно вариант выгрузить все блоки, и поменять в каждом через программки пакетно, но это слишком геморно, особенно отсортировать все это.
Настройки самого чертежа следующие:
Код:
[Выделить все]
 
Команда: _-DWGUNITS
Единицы чертежа:
  1. дюймы
  2. футы
  3. миллиметры
  4. сантиметры
  5. дециметры
  6. метры
Единицы длины <3>: 3
Форматы единиц чертежа:
  1. Научный
  2. Десятичный
Формат линейных единиц <2>: 2
Точность линейных единиц <3>: 3
Масштабировать объекты других чертежей при вставке? [Да/Нет] <Да>: да
Сопоставить INSUNITS с единицами чертежа? [Да/Нет] <Нет>: да
Команда: _INSUNITS
Новое значение INSUNITS <4>: 4
Команда: _INSUNITSDEFSOURCE
Новое значение INSUNITSDEFSOURCE <4>: 4
Команда: _INSUNITSDEFTARGET
Новое значение INSUNITSDEFTARGET <4>: 4
Команда: _DIMLFAC
Новое значение DIMLFAC <1.0000>: 1
Команда: _DIMALTF
Новое значение DIMALTF <0.0394>: 0.0394
Команда: _MEASUREMENT
Новое значение MEASUREMENT <1>: 1
Команда: _DIMALT
Новое значение DIMALT <Откл>: Откл
Команда:  DIMALT

Последний раз редактировалось Nikilin, 20.11.2019 в 08:51. Причина: Уточнение
Nikilin вне форума  
 
Непрочитано 29.11.2019, 16:19
1 | #22
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Могу только программное решение предложить (используется функция get-block-name от Lee Mac):
Код:
[Выделить все]
 (defun C:CHANGEBLOCKSUNIT ( / *error* adoc oldDYNMODE ss blck_units)
	(defun *error* (msg) 
		(if oldDYNMODE (setvar "DYNMODE" oldDYNMODE))
	)
	(setq adoc (vla-get-ActiveDocument (vlax-get-acad-object))
		  oldDYNMODE (getvar "DYNMODE")
		  ss (ssget '((0 . "INSERT")))
	)
	(setvar "DYNMODE" 3)
	(initget 128)
	(setq blck_units 
		(getkword 
			(strcat 
				"["
				"0 Безразмерный/"
				"1 Дюймы/"
				"2 Футы/"
				"3 Мили/"
				"4 Миллиметры/"
				"5 Сантиметры/"
				"6 Метры/"
				"7 Километры/"
				"8 Микродюймы/"
				"9 Милы/"
				"10 Ярды/"
				"11 Ангстремы/"
				"12 Нанометры/"
				"13 Микроны/"
				"14 Дециметры/"
				"15 Декаметры/"
				"16 Гектометры/"
				"17 Гигаметры/"
				"18 Астрономические единицы/"
				"19 Световые годы/"
				"20 Парсеки"
				"]"
			)
		)
	)
	(setvar "DYNMODE" oldDYNMODE)
	(cond 
	  (	(and 
			blck_units 
			(= (type (atoi blck_units)) 'INT)
			(>= (atoi blck_units) 0)
			(<= (atoi blck_units) 20)
		)
		(repeat (setq i (sslength ss))
			(vla-put-Units 
				(vla-Item (vla-get-Blocks adoc) (get-block-name (ssname ss (setq i (1- i)))))
				(atoi blck_units)
			)
		)
		
	  )
	)
)
(defun get-block-name ( blockentity / name repbtag )
;;; (C) Lee Mac LM:EffectiveName
;;; http://www.theswamp.org/index.php?topic=37493.0
;;; http://forum.dwg.ru/showthread.php?t=65082
;;; blockname EffectiveName динамические блоки
  (if (= (type blockentity) 'VLA-OBJECT)
	(setq blockentity (vlax-vla-object->ename blockentity))
  )
  (if (wcmatch (setq name (cdr (assoc 2 (entget blockentity)))) "`**")
    (if
      (and
        (setq repbtag
          (cdadr
            (assoc -3
              (entget
                (cdr
                  (assoc 330
                    (entget (tblobjname "BLOCK" name))
                  )
                )
               '("AcDbBlockRepBTag")
              )
            )
          )
        )
        (setq repbtag (handent (cdr (assoc 1005 repbtag))))
      )
      (setq name (cdr (assoc 2 (entget repbtag))))
    )
  )
  name
)
(princ "\nC:CHANGEBLOCKSUNIT")
(princ)
При вызове команды последует запрос выбора объектов, затем запрос выбора нужных единиц. Среди всех выбранных рамкой объектов выберутся только блоки, и при нажатии Enter/правой кнопки мыши их единицы преобразуются в выбранные.

Если нужно во всем чертеже без выбора рамкой, то строку
Код:
[Выделить все]
		  ss (ssget '((0 . "INSERT")))
нужно заменить на строку
Код:
[Выделить все]
		  ss (ssget "_X" '((0 . "INSERT")))
Ненужные единицы (парсеки там всякие) можно удалить из кода, но номера менять нельзя - они соответствуют номеру переменной, которая отвечает за единицы.
skkkk вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Решение проблемы с единицами блоков в Автокад



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Lira. помогите решить проблему с нереалными единицами измерения в результатах расчета. перемещения более 500м radik pgs Лира / Лира-САПР 5 14.06.2017 13:36
Странный выбор блоков рамкой в Автокад 2014 VAV AutoCAD 9 04.06.2015 10:14
Влияет ли разрядность операционной системы и АвтоКАДа на допустимые имена блоков и на их редактирование? Archeo AutoCAD 38 14.08.2013 15:29
автокад 2004 проблемы с тонированием гореавтокадчик AutoCAD 2 11.01.2007 18:59