Перейти к содержимому

Как переопределить блок в автокаде

  • автор:

Sorry, you have been blocked

This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.

What can I do to resolve this?

You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page.

Cloudflare Ray ID: 7c81b904b97277f7 • Your IP: Click to reveal 138.199.34.31 • Performance & security by Cloudflare

Редактирование блоков в Автокаде

Знать, как в AutoCAD создать блок, мало. Очень часто возникает необходимость внести изменения в блок, при этом не разрушая его целостность. Способов сделать это существует несколько.

Несколько способов, как редактировать блок в Автокаде:

1-й способ ( самый быстрый): если блок присутствует на чертеже, то нужно щелкнуть по нему дважды ЛКМ.

Как редактировать блок в Автокаде

Рис. 1. Один из способов вызова редактора блоков в AutoCAD.

2-й способ — воспользоваться командой «Редактор блоков», которая находится на вкладке «Вставка» → панель «Определение блока» (см. рис. 2).

Вызов редактора блоков в Автокаде

Рис. 2. Команда AutoCAD «Редактор блоков».

3-й способ , который так же считается рациональным – это воспользоваться командной строкой или динамическим вводом. Команда, отвечающая за редактирование, носит название БЛОКРЕД (см. рис. 3).

Команда AutoCAD БЛОКРЕД

Рис. 3. Вызов Редактора блоков через динамический ввод.

Какой бы способ вы ни выбрали, результат будет один и тот же: откроется диалоговое окно, в котором необходимо выбрать блок для изменения. При этом предварительный просмотр помогает осуществить выбор быстрее (см. рис. 4).

Рис. 4. Диалоговое окно «Редактирование определения блока».

После этого откроется редактор блоков Автокад.

Редактор блоков в Автокаде

В AutoCAD редактор блоков – это дополнительная вкладка, которая появляется на ленте. Она предназначена непосредственно для изменения геометрии ранее созданного блока, присвоения ему параметров и операций, определяющих свойства и функции динамического изменения.

Редактор блоков в Автокаде

Рис. 5. Редактор блоков AutoCAD.

В редакторе блоков можно применять как команды рисования, так и редактирования. К примеру, команда «Масштаб» позволит изменить размер нашего объекта. Но для большей наглядности давайте добавим некоторые элементы к этому блоку, тем самым преобразуем конденсатор постоянной емкости в конденсатор электролитический поляризованный (ГОСТ 2.728-74). Для этого перейдем на вкладку «Главная» и воспользуемся стандартными примитивами.

Когда все изменения внесены, следует закрыть редактор блоков, как показано на рис. 6.

Закрыть редактор блоков AutoCAD

Рис. 6. Команда «Закрыть редактор блоков» AutoCAD.

Появится диалоговое окно, в котором следует подтвердить внесенные изменения.

Блок – изменения не сохранены

Рис. 7. Сохранение внесенных изменений в блок AutoCAD.

Как видите, в названии блока допущена ошибка. Самое время рассмотреть, как переименовать блок AutoCAD.

Как переименовать в Автокаде блок?

Имя блока не только должно быть уникальным, но и отображать суть создаваемого элемента чертежа. Если вы хотите работать быстро и извлекать максимальную пользу из AutoCAD, то возьмите это на заметку.

Если вы изначально будете создавать блоки с нечитабельными именами (к примеру, «123»), то в дальнейшем будут возникать определенные сложности. Ведь количество блоков постоянно увеличивается, и в результате просто возникнет путаница.

Чтобы изменить имя блока в Автокаде, нужно в командной строке прописать «_rename».

Переименовать блок в Автокаде команда _rename

Рис. 8. Диалоговое окно «Переименование».

Откроется диалоговое окно для переименования объектов AutoCAD (см. рис. 9). Так как нас интересует такой тип объектов, как блок, то в левой стороне выбираем соответствующий раздел.

При этом справа отобразятся все блоки, которые присутствуют на чертеже. Выделим нужный элемент и укажем новое имя для него (см. рис. 9). Для сохранения настроек нужно нажать Ок.

Как переименовать блок в Автокаде

Рис. 9. Изменение имени объектов AutoCAD.

Таким образом мы рассмотрели основные принципы редактирования блоков в Автокаде. Ознакомились с Редактором блоков, а также узнали, как переименовывать объекты.

ПРИМЕЧАНИЕ: Существует способ быстрого переименования целого набора блоков. Как это можно сделать, читайте в статье про создание собственной коллекции блоков в AutoCAD.

Вставка блока с переопределением.

Добрый день!
Очень нужна помощь.
Есть блоки в чертеже А и в чертеже В с одними и теми же названиями. как вставить блок из чертежа А в четреж В с переопределением или просто переопределить его в четреже В.
Заранее спасибо!

#2 Ответ от Modis 5 апреля 2011г. 14:12:39

  • Откуда: Липецк
  • На форуме с 17 февраля 2008г.
  • Сообщений: 892
  • Спасибо: 14
Re: Вставка блока с переопределением.

вы имеете ввиду, чтобы в чертеже В блок был такой-же как в чертеже А? Тогда только так — в чертеже удалить все блоки и удалить описание блока, а затем вставить новый блок из чертежа А. Короче — никак 🙂

#3 Ответ от Garik 5 апреля 2011г. 14:31:48

  • На форуме с 4 июля 2008г.
  • Сообщений: 27
  • Спасибо: 0
Re: Вставка блока с переопределением.

Спасибо за внимание!
Я имею ввиду сделать то что ручками делается через "Центр проектирования" в AutoCAD, путем выбора блока из другого открытого чертежа или по ссылке на чертеж, выделив блок в списке блоков затем вызвав контекстное меню выбрав один из пунктов "Вставить с переопределением" или "Переопределить". Вот все тоже самое только на языке VBA

#4 Ответ от Vildar 5 апреля 2011г. 14:52:07

  • Откуда: Саратов
  • На форуме с 15 августа 2008г.
  • Сообщений: 574
  • Спасибо: 11
Re: Вставка блока с переопределением.

Если нет апи метода для этого (я тоже не нашел), тогда можно врукопашную это сделать. Например, переименовать старый блок, вставить новый во все вхождения старого (учесть масштаб, угол, атрибуты), потом удалить все вхождения старого блока и удалить его.

#5 Ответ от Garik 5 апреля 2011г. 15:22:49

  • На форуме с 4 июля 2008г.
  • Сообщений: 27
  • Спасибо: 0
Re: Вставка блока с переопределением.

Дело в том, что имя блока должно остатся прежним т.к. оно подвязано к БД.

#6 Ответ от Vildar 5 апреля 2011г. 16:17:54

  • Откуда: Саратов
  • На форуме с 15 августа 2008г.
  • Сообщений: 574
  • Спасибо: 11
Re: Вставка блока с переопределением.

Имя блока и останется прежним. Поменяется ID и Handle.
Как он к базе привязан? Если только по имени, то без проблем.

#7 Ответ от Vildar 5 апреля 2011г. 16:33:22

  • Откуда: Саратов
  • На форуме с 15 августа 2008г.
  • Сообщений: 574
  • Спасибо: 11
Re: Вставка блока с переопределением.

А может быть проще все объекты в блоке копировать. Тогда точно не поменяется ни имя, ни ID, ни Handle.

#8 Ответ от Garik 5 апреля 2011г. 16:49:48

  • На форуме с 4 июля 2008г.
  • Сообщений: 27
  • Спасибо: 0
Re: Вставка блока с переопределением.

Если нет апи метода для этого (я тоже не нашел), тогда можно врукопашную это сделать. Например, переименовать старый блок, вставить новый во все вхождения старого (учесть масштаб, угол, атрибуты), потом удалить все вхождения старого блока и удалить его.

спасибо! это интересная идея .

#9 Ответ от Vildar 5 апреля 2011г. 18:21:08 (изменено: Вильдар, 5 апреля 2011г. 18:26:22)

  • Откуда: Саратов
  • На форуме с 15 августа 2008г.
  • Сообщений: 574
  • Спасибо: 11
Re: Вставка блока с переопределением.

Мне кажется, что скопировать объекты из блока в блок, проще будет.
Т.е.
1. Удалить все объекты из блока в чертеже В.
2. Записать все объекты из блока в чертеже А в массив.
3. Скопировать объекты в блок в чертеже В. Код примерно такой:

где, blockB это AcadBlock в чертеже B.

Добавлено.
Вот, только, с атрибутами может косяк получится, и с дин. параметрами.
Если они есть, то нужно думать дальше.
И наверно искать функцию переопределения блока в ObjectARX.

#10 Ответ от Garik 7 апреля 2011г. 14:26:07

  • На форуме с 4 июля 2008г.
  • Сообщений: 27
  • Спасибо: 0
Re: Вставка блока с переопределением.

Спасибо за совет.

#11 Ответ от Vildar 12 апреля 2011г. 11:35:12

  • Откуда: Саратов
  • На форуме с 15 августа 2008г.
  • Сообщений: 574
  • Спасибо: 11
Re: Вставка блока с переопределением.

Вот я дурень то, все же проще.
Нужно вставить чертеж А, как блок, потом его удалить. При этом все блоки, которые определены в чертеже А появятся в чертеже В, причем с переопределением.
Сто мельёнов раз об этом уже говорили, и я сам так делаю, как же я мог забыть. Посыпаю голову пеплом. 😳

#12 Ответ от timak 17 апреля 2011г. 09:05:22

  • Откуда: Санкт-Петербург
  • На форуме с 24 октября 2008г.
  • Сообщений: 19
  • Спасибо: 0
Re: Вставка блока с переопределением.

У меня сделано кое-что по этой теме. Посмотрите, что Вам подойдет

Загрузка блока из одного файла в другой
Пользователь определяет файл-донор и блок
см. макрос "C:\ACADadd\ACADmacros\LoadBlock D21\LoadBlock.dvb"

Программист определяет файл-донор и блок
Sub loadBlock4(fileName$, blockName$)
'Разработал В.Г. Тимаков 26.08.2008
'Цель: Загрузка блока в активный файл из другого файла
'Дано:
'fileName$ — имя файла, содержащего требуемый блок
'blockName$ — имя требуемого блока
'Результат: Требуемый блок загружен в активный файл
'Пример:
'Sub t()
' Dim fileName$, blockName$
' fileName = "C:\ACADadd\LibraryRail\Стандарты ЛЖДП.dwg"
' blockName = "боковой штамп"
' Call loadBlock4(fileName$, blockName$)
'End Sub

'чтение содержимого текущего файла. Нижеследующую конструкцию сделал, т.к.
'при каких-то изменениях в меню Window, теряется свойство Active у видимого файла
Dim targetDoc As AcadDocument 'имя файла, в который надо загрузить блок
Dim i%, n%: n = Documents.Count 'общее количество файлов в приложении
For i = 0 To n — 1
If Documents(i).Active Then Set targetDoc = Documents.Item(i) 'комплект-набор текущего файла
Next i
'работа с файлом-донором
'открытие файла
On Error GoTo myExit1 'если нет файла в данном компьютере
ThisDrawing.Application.Documents.Open (fileName)
myExit1:
If Err <> 0 Then
Err.Clear
Dim Res1: Res1 = "В этом компьютере нет файла " & fileName & "."
Res1 = MsgBox(Res1, vbOKOnly, "MyLibrary4, modACAD, Sub loadBlock")
End
End If
'чтение содержимого файла
Dim sourceDoc As AcadDocument
n = Documents.Count
For i = 0 To n — 1
If Documents(i).FullName = fileName Then Set sourceDoc = Documents.Item(i)
Next i
'проверка наличия требуемого блока
Dim oBlocks As AcadBlocks: Set oBlocks = ThisDrawing.Blocks 'коллекция блоков
n = ThisDrawing.Blocks.Count 'общее количество блоков в файле
Dim isBlock As Boolean: isBlock = False
Set oBlocks = sourceDoc.Blocks 'коллекция блоков в файле-доноре
Dim oBlock As AcadBlock: Set oBlock = oBlocks.Item(blockName) 'искомый блок
For i = 0 To n — 1
If oBlocks(i).Name = blockName$ Then isBlock = True
Next i
If Not isBlock Then
Res1 = "В файле " & fileName & Chr(10)
Res1 = Res1 & "нет блока " & blockName
Res1 = MsgBox(Res1, vbOKOnly, "MyLibrary4, modACAD, Sub loadBlock")
End
End If
'загрузка блока в текущий файл
Dim objCopy(0) As AcadObject: Set objCopy(0) = oBlock 'копия блока
Dim RetVal 'Variant (array of objects). Массив вновь созданных дубликатов объектов.
'Only primary objects are returned in this array
Dim IDPairs 'Variant (array of IDPair objects); input-output; optional
'Information on what happened during the copy and translation process.
'Input: an empty variant.
'Output: an array of IDPair objects
RetVal = sourceDoc.CopyObjects(objCopy, targetDoc.Blocks, IDPairs)
'заключительные работы
sourceDoc.Close False: Set sourceDoc = Nothing 'закрытие файла-донора
End Sub

Вставка блока программно (InsertBlock3)

Function InsertBlock3(blName$, pBase() As Double, _
Optional Sc# = 1, Optional xs# = 1, Optional ys# = 1, Optional zs# = 1, _
Optional Layer$ = "активный", Optional blExplode As Boolean = False)
'Разработал В.Г. Тимаков 24.06.2007
'Цель: Вставка блока
'пример обращения к процедуре:
'Call InsertBlock3(blName, pBase()) ' без свойств
'given:
'blName — имя вставляемого блока
'pBase() — координаты вставки и угол поворота блокав радианах или формулой: градусы / 180 * Pi.
'Если угол > 0, блок поворачивается против часовой стрелки
'Sc# = 1 — масштаб для координат точки вставки блока
'xs# = 1 — масштаб блока по оси X. При xs < 0 блок отображается зеркально относительно оси X
'ys# = 1 — масштаб блока по оси Y. При ys < 0 блок отображается зеркально относительно оси Y
'zs# = 1 — масштаб блока по оси Z. При zs < 0 блок отображается зеркально относительно оси Z
'Layer$ = "активный". AcadBlockReference вставляется в текущий слой
'blEx — признак необходимости разрушить блок

'установка слоя текущим
If Layer$ <> "активный" Then Call ChangeLayerCur3(Layer$)
'определение координат точки вставки с учетом масштаба
Dim BlockRotation#, insertionPnt(0 To 2) As Double
insertionPnt(0) = pBase(0) * Sc: insertionPnt(1) = pBase(1) * Sc: insertionPnt(2) = pBase(2) * Sc
'чтение угла поворота блока
BlockRotation = pBase(3)
'вставка блока
Dim CurBlockRefObj As AcadBlockReference
Set CurBlockRefObj = ThisDrawing.ModelSpace.InsertBlock(insertionPnt, blName, xs, ys, zs, BlockRotation)
'разрушение блока
If blExplode Then CurBlockRefObj.Explode
End Function

Примечание:
К блокам NUS (non-uniform scaled — не одинаковый
по масштабу) нельзя применить метод Explode
Где-то видел в справке

Вставка блока из другого файла (без загрузки?)
[Re:] Vildar (2008-10-28 10:19:54)

Привет.
В файле заготовок хранится набор нужных блоков, путь к нему в строке strDwgFileFullPath допустим. Вставляю его в текущий чертеж:
'вставка блока из файла
ThisDrawing.ModelSpace.InsertBlock(InsertPoint, strDwgFileFullPath, 1, 1, 1, 0)
Потом удаляю. Остаются только определения блоков которые были в файле заготовок.
Вроде все нормуль. Но если это новый созданный чертеж, то выскакивает ошибка файлера. А немного погодя может и сработать.
Не пойму в чем причины этой ошибки, почему и когда она появляется и вдруг потом пропадает куда-то.
Спасибо.
[Re:] AlexV (2008-10-28 11:10:28)

Я обычно использую для аналогичных целей процедуру типа такой:
Private Sub Perenos_opisaniy_Bl(strDwgFileFullPath)
Dim I_Point(0 To 2) As Double
Dim Block_R As AcadExternalReference
I_Point(0) = 0: I_Point(1) = 0: I_Point(2) = 0
If Dir(strDwgFileFullPath) = "" Then Exit Sub
If ThisDrawing.FullName <> strDwgFileFullPath Then
Set Block_R = ThisDrawing.ModelSpace.AttachExternalReference(strDwgFileFullPath, "Name_", I_Point, 1, 1, 1, 0, False)
ThisDrawing.Blocks.Item(Block_R.Name).Bind True
Block_P.Delete
ThisDrawing.Blocks.Item("Name_").Delete
End If
End Sub
Вроде работает и в только созданных чертежах. Только имя "Name_" должно быть таким, что бы блоков с ним не попадалось в базе данных чертежей (или предварительно надо организовать проверку)

[Re:] AlexV (2008-10-28 11:12:29)

[Re:] Vildar (2008-10-28 13:18:28)

Благодарствую, то что нужно.
Тока Bind непойму что такое. Превращает Xref в блок?
[Re:] AlexV (2008-10-28 13:47:26)

> Vildar
« Тока Bind непойму что такое. Превращает Xref в блок? »

Типа того. Внедряет в.с. в чертеж. В противном случае в чертеже будут присутствовать слои, размерные и т.д. стили внешних ссылок (с именами типа "Name_|0"). Если же ссылку внедрить (причем именно ". Bind True", что соответствует внедрению в.с. способом вставки стандартными средствами), то префиксы все "отпадут". Конечно, слои,стили вставляемого чертежа перенесутся в чертеж текущий, но если в нем только блоки (с примитивами на "0" слое), а все лишнее вычищено, то ничего страшного.

[Re:] Vildar (2008-10-28 14:08:51)

Слов нет.
Thank you very much!

Вставка блока с атрибутами, пропустить ввод атрибутов

[Re:] Mbus (2008-10-28 13:00:50)

Здравствуйте!
я вот так вставляю блок
str_act = "(command ""_insert"" """ & Name & "=" & Path & """ """ & strPt & """ ""1"" ""1"" ""0"" ) "
ThisDrawing.SendCommand (str_act)
где Name — имя блока
Path — путь к файлу
strPT — т. вставки
все вставляется, но сразу в командной строке далее появляется запрос для ввода значения каждого атрибута данного блока, а мне надо чтобы либо вылезло окно сразу как по команде АТРЕД или просто пропустился ввод атрибутов всех махом.
Как это сделать?
[Re:] fixo (2008-10-28 13:09:31)

> Mbus
Вставь вначале
Thisdrawing.setvariable "ATTREQ", 0
Точно не помню, но вроде эта переменная

[Re:] Mbus (2008-10-28 13:18:03)

СПАСИБО БОЛЬШОЕ.
ATTREQ и ATTDIA то что нужно

Имя блока = имени файла
Узнал из Интернета.
Dim insPnt(0 To 2) As Double
insPnt(0) = 0
insPnt(1) = 0
insPnt(2) = 0

Вот так не работает: Call ThisDrawing.ModelSpace.InsertBlock(insPnt, "D:\test.dwg", 1, 1, 1, 0) после purge
А вот так работает: Dim mStr As String
mStr = "D:\test.dwg"
Call ThisDrawing.ModelSpace.InsertBlock(insPnt, mStr, 1, 1, 1, 0)

При вставки блока в чертеж:
Код
Dim insPnt(0 To 2) As Double
insPnt(0) = 0
insPnt(1) = 0
insPnt(2) = 0
Call ThisDrawing.ModelSpace.InsertBlock(insPnt, "D:\test.dwg", 1, 1, 1, 0)
Call ThisDrawing.ModelSpace.InsertBlock(insPnt, mStr, 1, 1, 1, 0)

получаю следующее сообщение:

Run-time error '-2145386445 (80200033)'
Ошибка файлера

(В англ. автокаде — Filer error)

Причем в новом файле этот код успешно выполняется (хоть несколько раз). Но если выполнить _purge — после этого этот Filer error и появляется

Урок 05. Управление блоками в AutoCAD

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

Работа со слоями

При вставке блока в чертёж он определяется в текущий слой, после чего его можно переопределить в соответствующий слой. Параметры слоя в котором находится блок стандартны и представляют собой цвет линий, тип линий и их толщину. Ниже приведена таблица методов применения слоев при вставке блока с описанием результатов, хотя некоторые различия таковых незначительны.

Свойства компонентов блока и вставка объектов результаты

Графические параметры компонентов

На любом слое (кроме слоя 0 ) , с цветом, весом линий и типом линий ПОСЛОЮ Блок сохраняет свойства этого слоя. Если вставить блок в другой чертеж без этого слоя, будет автоматически создан соответствующий слой. Если вставить блок в другой чертеж с этим слоем, но слой имеет свой цвет, вес и тип линий, блок использует свойства слоя чертежа отличные от свойств блока. При вставке блока на другом слое, блок сохраняет свои свойства слоя, на котором он был создан, но в палитре свойств отображается как слой , на котором он был вставлен, потому что отображение слоя определяется объектом, а не вставленным в него компонентами. На любом слое (включая слой 0 ) , в случае если цвет, вес и тип линий установлены в слое Блок сохраняет цвет, тип линий и веса линий со свойствами, которые были установлены. Если вставить блок в другой чертеж, автоматически создается слой, на котором исходные объекты были созданы. На любом слое (кроме слоя 0 ) , с цветом, весом линий и типом линий ПОБЛОКУ Блок использует цвет текущей настройки цвета ( Если текущий цвет ПОСЛОЮ , блок использует н текущий цвет слоя). Если вставить блок в другой чертеж, создается слой на котором исходные объекты были созданы. Примечание: Если цвет, тип линий и веса линий установлены ПОБЛОКУ при создании объектов для блока, объекты всегда отображаются с черными/белый цвет, устанавливая непрерывный тип и толщину линий по умолчанию. На слое 0 (с цветом, типом линий и весом линий установлено ПОБЛОКУ или слою) Блок использует свойства слоя на котором он установлен, при вставки блока в другой чертеж никакие слои не создаются.

Как видно из таблицы, тщательный подбор свойств слоя, который используется при создании блока имеет важное значение. Два метода установки параметров объектов ПОБЛОКУ и их создание на 0 слое, создает блок-хамелеон, который принимает свойства слоя в котором он вставляется. Использование двух других методов, сохраняет свойства блока не зависимо от того в какой он слой вставляется.

Расчленение блоков

В предыдущих лекциях мы уже рассказывали о переопределении блоков. Для того что бы расчленить блок используйте команду:

Способы ввода команды:

  • Выполнить команду: Редактировать > Расчленить.
  • Ввести в командной строке РАСЧ

Расчленение блока с вложенными блоками расчленяет только верхний, вложенные блоки расчленяются в последующем.

При расчленении блоков созданных в слое 0 или с графическими параметрами ПОБЛОКУ , графические свойства объектов: толщина, цвет и тип линий, приводятся к параметру по умолчанию – черный/белый цвет линий, сплошная линия и толщина линий по умолчанию.

При изменении масштаба блока по осям, объекты сохраняют свои формы и размеры при разрушении. Например в блоке была вставлена окружность при масштабе Х,Y-1,2 окружность отображается эллипсом, после применение команды РАСЧ исходный объект останется эллипсом.

Редактирование блоков

Существует несколько способов внесения изменений в блок, не разрушая его.

Редактор блоков

Способ ввода команды:

  1. Двойной щелчок по любому вставленному в чертеж блоку
  2. Нажать пиктограмму на панели
  3. Выполнить команду Сервис > Редактор блоков
  4. Ввести в командной строке БЛОКРЕД

После вызова команды будет открыто окно Редактирование определения блока , содержащие список блоков включенных в чертеж. Для редактирования выберите необходимый блок и нажмите ОК, после чего откроется Редактор блоков . Более подробно о редакторе блоков мы расскажем в следующем уроке.

Обновление блоков

Как уже было рассказано в предыдущих уроках при изменении блока, все его копии автоматически обновляются. Но если вы вставили файл в чертеж, что бы использовать в качестве блока, а затем изменили этот файл, в текущим чертеже он не обновится. Для того что бы файл автоматически изменялся необходимо использовать внешние ссылки , о которых мы расскажем в следующей главе.

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

В процессе вставки файла, необходимо повторно указать путь к нему (стоит обратить внимание, что заменять нужно сам файл, а не блок который в нем находится), после чего появится сообщение с вопросом о пересмотре файла, нажмите ДА . После чего необходимо нажать ESC , что бы избежать вставки новой копии блока.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *