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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Динамические блоки > Дублируются полилинии, блоки, атрибуты в динамических блоках. Как избежать?

Дублируются полилинии, блоки, атрибуты в динамических блоках. Как избежать?

Ответ
Поиск в этой теме
Непрочитано 26.12.2018, 09:05 #1
Дублируются полилинии, блоки, атрибуты в динамических блоках. Как избежать?
Nemyheim
 
Регистрация: 21.11.2018
Сообщений: 14

Здравствуйте!
Думаю, что проблема не нова и может быть есть какое-то решение:
Много работаю с построением сложных динамических блоков и иногда сталкиваюсь с казусом:
Объекты в блоке полностью дублируются. Иногда х2, иногда х3, но бывало и х4 однажды.
Дублируются полилинии, отрезки, атрибуты. Приходится чистить вручную, т.к. с коммандой подч. удаляется много нужного. А именно: могут удалиться линии, занятые в растяжении, перемещении, а дубли остаться. Кроме того в самом блоке предусмотрены одинаковые объекты, расположенные в разных слоях друг под другом. Копии тоже иногда удаляются.

Собственно сам вопрос: каких действий следует избегать, чтобы не сталкиваться с такой проблемой?
Для себя решение нашел пока только одно: пблок на диск после каждого редактирования.
Просмотров: 4988
 
Непрочитано 26.12.2018, 09:09
#2
Boxa

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


Может быть стоит написать в какой версии автокада Вы работаете и приложить файл с примером? На словах, мало что понятно.
__________________
_бложиг
Boxa вне форума  
 
Автор темы   Непрочитано 26.12.2018, 09:23
#3
Nemyheim


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


Работаю в 19й версии. Файл с примером на данный момент не могу. Т.к. все исправлены. Но как появится, с удовольствием поделюсь.
Но, дума, что стоит прочитать текст по горизонтали, а не по диагонали и сразу станет все ясно
Nemyheim вне форума  
 
Автор темы   Непрочитано 26.12.2018, 09:30
#4
Nemyheim


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


В общем! Проблема появляется при сохранении чертежа.
Т.е. работаю я над созданием блоков. В чертеже у меня их, допустим 15. Все ок. Я их редактирую по 10-15 раз, подправляю, полирую.
Далее закрываю чертеж с сохранением и отправляюсь спать.
Сажусь с утра за комп, открываю чертеж, а у меня по 3-4 дубля полилиний в чертеже.
Нате вам пример.
И такой фигни во всех блоках вставленных в пространство чертежа.
Вложения
Тип файла: dwg
DWG 2013
Чертеж1.dwg (64.6 Кб, 38 просмотров)
Nemyheim вне форума  
 
Непрочитано 26.12.2018, 09:40
#5
trir


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


Цитата:
Работаю в 19й версии
а сохраняешь в dwg-2013
trir вне форума  
 
Непрочитано 26.12.2018, 09:42
#6
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 8,734


такое было с многострочными атрибутами до фикса в 2019 акаде, в 2018 не увидел дубляжа. Может, надстройки какие-нибудь?
Сергей812 вне форума  
 
Автор темы   Непрочитано 26.12.2018, 10:01
#7
Nemyheim


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


Цитата:
Сообщение от trir Посмотреть сообщение
а сохраняешь в dwg-2013
Сохраняю тоже в 19. В 13 сохранил по совету одного местного форумчанина, чтоб любой смог открыть при желании

----- добавлено через ~5 мин. -----
Вот прямо описываю условия появления:
- Блок вставлен в пространство
- Блок редактировался в момент последнего открытия чертежа
- Объекты в блоке не дублируются, если блок перед сохранением был удален из ПМ. (не из чертежа, только из ПМ)
- Чертеж закрывался с сохранением
- Дублирущиеся объекты находятся в состоянии видимости по умолчанию. В других состояниях видимости объекты не дублируются. (т.е. верхняя строка состояния видимости)
- Дубли появляются после следующего открытия чертежа
Если еще что вспомню, напишу.
Nemyheim вне форума  
 
Непрочитано 26.12.2018, 10:12
#8
AMDen

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


https://forum.dwg.ru/showthread.php?t=145624
Проблема не новая, но решения видимо пока никто не нашел.
AMDen вне форума  
 
Непрочитано 26.04.2019, 07:30
#9
Erre


 
Регистрация: 15.01.2012
Алматы, Казахстан
Сообщений: 3


Короче, я понял причину появления этой проблемы: в моём случае, объекты начинали дублироваться, если я масштабировал вхождение блока autocad'овским _scale. Сколько раз масштабировал, столько раз и дублировались объекты внутри блока. Понял я это по динамическому атрибуту ширины, значение которого изменилось в 10 раз, и после дублирования таким и осталось.

Я думаю, что если вращать и зеркалить динамический блок, может происходить то же самое (возможно, происходит конфликт с операциями зеркало/вращение/масштаб внутри самого блока).

Нарисовал неаннотативный блок двери в масштабе 1:1, наложил все те же операции и зависимости, и если не масштабировать блок стандартными средствами autocad'а, объекты внутри не дублируются.

Я эту вонючую дверь перенастраивал 5 раз, пока понял, почему блок портачится. Зато теперь дверь просто ЗБС, с нее формируются автоматические ведомости, и все прочие плюшечки динамики
Erre вне форума  
 
Непрочитано 16.05.2019, 12:18
#10
AlisAmano4ka


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


Здравствуйте, уважаемые!
у меня аналогичная проблема.
динамических блоков порядка 30шт.
заметила дублирующиеся полилинии, размеры, отрезки и пр.
пока проверяю и подчищаю такие корявые блоки

Последний раз редактировалось AlisAmano4ka, 16.05.2019 в 13:12.
AlisAmano4ka вне форума  
 
Непрочитано 22.05.2019, 10:12
#11
AlisAmano4ka


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


Дополнение:
Блоки почистила. через некоторое время проблема вернулась. внезапно обнаружились продублированные отрезки, атрибуты и пр. - в одном блоке насчитала 7(!) копий.

Предположение
Цитата:
Сообщение от Erre Посмотреть сообщение
Я думаю, что если вращать и зеркалить динамический блок, может происходить то же самое (возможно, происходит конфликт с операциями зеркало/вращение/масштаб внутри самого блока).
логично, и буду переделывать все блоки, добавляя динамики.
но это требует времени! как же так((( грустно

файл с корявыми блоками прилагаю
(AC2019)
Вложения
Тип файла: dwg пример корявых и нормальных блоков.dwg (523.2 Кб, 16 просмотров)
AlisAmano4ka вне форума  
 
Непрочитано 24.05.2019, 09:22
#12
AlisAmano4ka


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


Прошу помощи!
продолжение истории с корявыми блоками:
по порядку начала переносить блоки в новый файл. почистила блоки, пересохранила их, пересохранила файл. утром открыла - все повторяется: в блоках дублируются отрезки, размеры, атрибуты.
я очень расстроена и не могу найти ответ

заметила, такое поведение блоков начинается после "сброс блока". по открытии файла - сначала все кажется нормальным.

предположение, что это происходит из-за конфликта "динамических движений" (с помощью ручек поворота, зеркала и пр.) и редактирования средствами автокада(отразить, повернуть и подобных) - не подтвердилось, т.к.к в новом файле с новыми подчищенными блоками подобных действий не производила.
(прикрепляю сегодняшний файл с багами)
Вложения
Тип файла: dwg пример корявых и нормальных блоков 2.dwg (338.9 Кб, 15 просмотров)

Последний раз редактировалось AlisAmano4ka, 24.05.2019 в 09:32.
AlisAmano4ka вне форума  
 
Непрочитано 27.06.2019, 12:22 В динамическом блоке спонтанно дублируются элементы(полилинии, атрибуты). Как избежать?
#13
AlisAmano4ka


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


Здравствуйте, уважаемые.
Прошу помощи!

Порядок моих действий был следующий:
  1. Создала динамический блок(во вложении) с 2 состояниями видимости и простенькой динамикой(отражение, поворот, растяжение, перемещение).
  2. Сохранила, вставила сей блок в чертеж (при этом НЕ использовала инструменты редактирования самого автокада, как например "зеркало", "поворот"; но использовала операции динамики блока(п.1).
  3. Сохранила, закрыла, затем открыла файл с вхождениями блока.
  4. В редакторе блоков обнаружилось 14(!) копий всех элементов:отрезков, полилиний, маскировок, вхождений другого блока и пр., к которым естественно не были применены операции динамики (т.о. контур поворачивается/зеркалится, но оставшиеся 13 копий остаются)

"чистка" (посредством команд OVERKILL и PURGE) блока не помогает
создание подобного блока с нуля - тоже не помогает
сохранение в новом отдельном файле тоже не помогает.
(начало истории с корявыми блоками - см. https://forum.dwg.ru/showthread.php?t=1802345)
Вот так стараешься, чертишь, а в итоге - всё насмарку.
(AC 2019 с SPDSом)

п.с. может ли помочь вынесение отдельных блоков в "обособленные" чертежи, с последующим использованием их через палитры?
(может быть файл, в котором было собрано несколько разных по наполнению блоков, слишком перегружен и нужно менять мой подход к проблеме кардинально?)
Вложения
Тип файла: dwg корявый блок(14 копий).dwg (367.0 Кб, 19 просмотров)
AlisAmano4ka вне форума  
 
Непрочитано 27.06.2019, 12:39
1 | 1 #14
Кулик Алексей aka kpblc
Moderator

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


А что будет, если исключить SPDS Extension? В смысле - вообще его деинсталлировать?
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 27.06.2019, 12:47
#15
AlisAmano4ka


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


Спасибо за быстрый ответ!
Ради того, чтобы все заработало, как задумывалось, деинсталлирую.

Последний раз редактировалось AlisAmano4ka, 27.06.2019 в 14:17.
AlisAmano4ka вне форума  
 
Непрочитано 27.06.2019, 13:36
#16
AlisAmano4ka


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


Спасибо за такой быстрый ответ!
Безжалостно выгрузила СПДС.
Пока предварительно можно сказать, что копии не появляются. И это прекраснейшая новость, лучшая с момента моего знакомства с динамическими блоками!!! спасибо большое,Кулик Алексей aka kpblc

Надо будет проверить на предыдущих проблемных файлах.

В этом, действительно, могла быть проблема? ведь средства СПДС я не использовала в этом блоке.
просто интересна внутренняя механика, как одно могло повлиять на другое?
AlisAmano4ka вне форума  
 
Непрочитано 25.05.2020, 08:20
#17
Mira13


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


Такая же проблема и у меня с 3D блоком. Создан динамический блок с параметрами(без атрибутов). Как только добавляешь еще одну строчку параметров в блок то после сохранения блок двоится. Autocad 2019. Не могу пока что этот вопрос решить
Mira13 вне форума  
 
Непрочитано 01.06.2020, 15:40
#18
kilovad


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


в первые заметил проблему на блоках с 3d-объектами весной 2019 года. Не придал особого значения, быстро удалил лишние атрибуты и жил спокойно.
Месяц назад проблема появилась снова в сложном трехмерном блоке в несколькими видимостями и некоторым перемещениями, пришлось убить пол дня на переделку.
Но сейчас у меня плоский динамический блок в нем порядка 60 атрибутов, 30 видимостей и 30 динамических параметров.
Как выявить те атрибуты которые удвоились?
Да, СПДС включен по умолчанию. Надеюсь его можно без труда отключить.
Вложения
Тип файла: dwg маркировка кабелей_v0.2.dwg (124.8 Кб, 10 просмотров)
kilovad вне форума  
 
Непрочитано 01.06.2020, 16:30
#19
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 8,734


Цитата:
Сообщение от kilovad Посмотреть сообщение
Как выявить те атрибуты которые удвоились?
имхо, пройти по определению блока, найти определения атрибутов с одинаковым тэгом, прибить те - которые с большим хэндлом (т.е. созданные позднее).
Сергей812 вне форума  
 
Непрочитано 01.06.2020, 17:35
#20
kilovad


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


В догонку. Заметил что в чертежах постоянно присутствует около 80 типов линий, шрифты "гост", которые я не использовал. При очистке удаляются, но после сохранения файла и открытия снова появляются.
После удаления СПДС при открытии чистого файла лишних шрифтов нет.
А вот после открытия чистого файла без шрифтов в автокаде с СПДС от Адтодеск, шрифты появились.
Выходит, СПДС действует не при сохранении а при открытии файла.

----- добавлено через ~51 мин. -----
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
пройти по определению блока
подскажите, чем пройти? где посмотреть это хэндл?
kilovad вне форума  
 
Непрочитано 01.06.2020, 18:57
#21
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 8,734


Цитата:
Сообщение от kilovad Посмотреть сообщение
подскажите, чем пройти? где посмотреть это хэндл?
программно, 5 группа DXF, если не ошибаюсь.
Сергей812 вне форума  
 
Непрочитано 01.06.2020, 19:00
#22
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от kilovad Посмотреть сообщение
Да, СПДС включен по умолчанию. Надеюсь его можно без труда отключить.
Чей СПДС-то?
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 01.06.2020, 19:16
#23
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 8,734


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Чей СПДС-то?
Цитата:
Сообщение от kilovad Посмотреть сообщение
А вот после открытия чистого файла без шрифтов в автокаде с СПДС от Адтодеск,
все он...)
Сергей812 вне форума  
 
Непрочитано 01.06.2020, 22:31
#24
skkkk


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


Цитата:
Сообщение от kilovad Посмотреть сообщение
подскажите, чем пройти? где посмотреть это хэндл?
В редакторе блоков запустить из командной строки код:
Код:
[Выделить все]
(vlax-dump-object (vlax-ename->vla-object (car (entsel))))
На запрос объекта указать атрибут. В командную строку вывалится перечень свойств указанного объекта. Среди них есть Handle
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
прибить те - которые с большим хэндлом
Осталось понять, какие из них с большим, а какие - с меньшим
Этот "хэндл" - что-то вроде уникального номера объекта, представленный в шестнадцатеричной (HEX) системе. Чтобы сравнить, нужно перевести в десятичную (DEC), например, тут.
Хотя, может, есть и более простой способ, но я его не знаю. Вот например, что больше: 70FB2A или 70FB31
skkkk на форуме  
 
Непрочитано 01.06.2020, 22:57
#25
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 8,734


Цитата:
Сообщение от skkkk Посмотреть сообщение
Осталось понять, какие из них с большим, а какие - с меньшим
Этот "хэндл" - что-то вроде уникального номера объекта, представленный в шестнадцатеричной (HEX) системе. Чтобы сравнить, нужно перевести в десятичную (DEC), например, тут.
Хотя, может, есть и более простой способ, но я его не знаю. Вот например, что больше: 70FB2A или 70FB31
вообще то разве в строковом представлении нельзя сразу сравнивать, как выдает хэндл акад в лиспе/vba?) Функция сравнения дойдет до 5 символа, и там отработает. Буквенные коды больше числовых, поэтому и там должно корректно отработать.
Сергей812 вне форума  
 
Непрочитано 02.06.2020, 00:55
#26
skkkk


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
вообще то разве в строковом представлении нельзя сразу сравнивать, как выдает хэндл акад в лиспе/vba?
Посмотрел описание функций сравнения - действительно, сравнивают строки, и судя по всему, именно так, как нужно в данном случае. Тогда можно вот так:
Код:
[Выделить все]
 пока удалил с учетом замечания Сергея ниже

Последний раз редактировалось skkkk, 02.06.2020 в 02:01.
skkkk на форуме  
 
Непрочитано 02.06.2020, 01:43
#27
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 8,734


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
вообще то разве в строковом представлении нельзя сразу сравнивать, как выдает хэндл акад в лиспе/vba?) Функция сравнения дойдет до 5 символа, и там отработает. Буквенные коды больше числовых, поэтому и там должно корректно отработать.
только это можно делать при одинаковой длине строки-числа, тогда как в DXF 5-группа - до 16 символов. Т.е. сначала сравнивать по длине строки

strlen(h1) < strlen(h2) -> h1 был создан ранее
strlen(h1) > strlen(h2) -> h2 был создан ранее
strlen(h1) = strlen(h2) -> тогда уже переходить к сравнению строк
Сергей812 вне форума  
 
Непрочитано 02.06.2020, 19:34
#28
skkkk


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
strlen(h1) < strlen(h2) -> h1 был создан ранее
strlen(h1) > strlen(h2) -> h2 был создан ранее
strlen(h1) = strlen(h2) -> тогда уже переходить к сравнению строк
Вот написал код по данному алгоритму. Добавил предварительное сравнение длины хэндлов. В командной строке должен показать, какой из двух выбранных примитивов новее.

Код:
[Выделить все]
 ;;; Функция сравнения "возраста" двух объектов.
;;; "Моложе" тот объект, хэндл которого длиннее (больше символов),
;;; а при одинаковом количестве символов "моложе" тот, чей хэндл больше по абсолютному значению
(defun C:HC () (handles_compare))
(defun handles_compare ( / entlist1 entlist2 h1 h2)
	(setq entlist1 (entsel "\nПервый объект:"))
	(if entlist1 (setq entlist2 (entsel "\nВторой объект:")))
	(if entlist2
		(setq h1 (cdr (assoc 5 (entget (car entlist1))))
			  h2 (cdr (assoc 5 (entget (car entlist2))))
		)
	)
	(princ "\n---------------")(princ)
	(if	(and h1 h2)
		(cond 
		  (	(> (strlen h1) (strlen h2))
			(princ "\nПервый новее.")
		  )
		  (	(< (strlen h1) (strlen h2))
			(princ "\nВторой новее.")
		  )
		  (	(and (= (strlen h1) (strlen h2)) (> h1 h2))
			(princ "\nПервый новее.")
		  )
		  (	(and (= (strlen h1) (strlen h2)) (< h1 h2))
			(princ "\nВторой новее.")
		  )
		  (	(= h1 h2)
			(princ "\nОдин объект выбран два раза.")
		  )
		)
	)
	(princ)
)
(princ "\nC:HC")
(princ)
skkkk на форуме  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Динамические блоки > Дублируются полилинии, блоки, атрибуты в динамических блоках. Как избежать?

CAD БИБЛИОТЕКА
Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прошу помощи с зависимостями в динамических блоках zenija2007 Динамические блоки 9 26.09.2018 09:10
Сбрасываются атрибуты блока при копировании valerik88 AutoCAD 4 31.01.2017 07:28
Потеря связи "полей" ("field") в динамических блоках. zenon Динамические блоки 19 07.12.2015 13:06
Динамические блоки при копировании перестают быть динамическими. *Voland* Динамические блоки 11 04.07.2012 10:51
Как добавить атрибуты в динамический блок? Archeo Динамические блоки 20 17.11.2006 11:30