Перейти к публикации

Макросы в Power Mill


Рекомендованные сообщения

9 минут назад, syncomp сказал:

В руководстве я видел еще "input " "output"

Это идентификаторы файлов. Имя идентификатору можно дать любое.

Изменено пользователем eksodus
Ссылка на сообщение
Поделиться на других сайтах


51 минуту назад, eksodus сказал:

то идентификаторы файлов. Имя идентификатору можно дать любое

Понятно. Идентификатор это то, что в В вашем макросе Zagotovka?

Ссылка на сообщение
Поделиться на других сайтах
44 минуты назад, syncomp сказал:

Идентификатор это то, что в В вашем макросе Zagotovka?

да,  я ж вроде так и написал:

2 часа назад, eksodus сказал:

// Файлу присваивается идентификатор Zagotovka (можно любой)

 

Изменено пользователем eksodus
Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...
В 03.08.2017 в 11:44, syncomp сказал:

Да, макрос работает.Только не понятно зачем расширение файла и 9 символов после точки? Как я понимаю проект РМ создается в отдельной папке. о каком файле Вы говорите? Во всяком случае макрос работает.

Большое спасибо.

Вот более универсальный макрос (нет ограничений):

- Определяет путь к модели

- Определяет название модели (без формата)

- Находит совпадение по названию модели в строке пути (находит позицию начала совпадения)

- Отбрасывает всё, что находится после данной позиции в строке

- Добавляет к полученной строке название модели без формата

- сохраняет проект.

 IF project_pathname(0) == '' {
   STRING ModelPath = folder('Model')[0].Path    //путь к модели
   STRING ModelName = FOLDER('model')[0].Name   //название модели (без формата)
   real Pos = position($ModelPath, $ModelName) // поиск позиции $ModelName в строке $ModelPath (0-начало)
   STRING $Dir = substring($ModelPath, 0, $Pos) //отображает строчку с позиции 0 до $Pos
   
   STRING $DirProject = $Dir + '/' + $ModelName
   PROJECT SAVE AS $DirProject
   
 } ELSE {
 
   PROJECT SAVE   
  
 }

 

Ссылка на сообщение
Поделиться на других сайтах
В 05.09.2017 в 23:30, Konstantin_VP сказал:

Вот более универсальный макрос (нет ограничений):

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

Отредактировал свой макрос для открытия папки с проектом и теперь он выполняет три действия:

1. Если открыт проект, то соответственно открывает папку где он находится.

2. Если проект не открыт или его ещё не существует, но открыта модель, то сохраняет  проект по тому же пути и с тем же названием что и модель.

3. Если открыт просто экземпляр PowerMill, то появляется окно открытия проекта.

 

 STRING Dirbase = project_pathname(0)  //полный путь до проекта (включая сам проект)
 STRING filebase = project_pathname(1) //название папки проекта
 real length = length($Dirbase) - length($filebase) //количество символов в переменной $Dirbase без учёта $filebase

 STRING $Dir = substring($Dirbase, 0, $length) //отображает строчку с позиции 0 до $length

//Если путь к проекту существует
If $Dir !='' {

 OLE FILEACTION "OPEN" $Dir //открывает папку где лежит проект

//Если путь к проекту не существует
} else {

 
BOOL $err = 0
$err = ERROR(folder('Model')[0].Path)
//Если путь к модели не существует
IF $err {
 
 PROJECT OPEN PROJSELECTOR //окно открытия проекта

//Если путь к модели существует  
} else {

   STRING ModelPath = folder('Model')[0].Path    //путь к модели
   STRING ModelName = FOLDER('model')[0].Name   //название модели (без формата)
   int length_step = length($ModelName)        //количество символов в переменной $ModelName
   int Start = 0                              //Начало поиска в строке
 
 //Пока есть совпадения в строке $ModelPath
 While  position($ModelPath, $ModelName,$start)  >= 0 {
 
   //Позиция начала совпадения $ModelName в строке $ModelPath
   int POS = position($ModelPath, $ModelName, $start)
   $start = $POS + length_step
   
 }
 
   STRING $Dir = substring($ModelPath, 0, $start) //отображает строчку с позиции 0 до $start
   PROJECT SAVE AS $Dir
   
}

 

Ссылка на сообщение
Поделиться на других сайтах
В 09.09.2017 в 17:59, Konstantin_VP сказал:

Вот более универсальный макрос (нет ограничений):

Полезный макрос благодарствуем

Ссылка на сообщение
Поделиться на других сайтах
В 05.09.2017 в 23:30, Konstantin_VP сказал:

от более универсальный макрос (нет ограничений):

вообще и в моём макросе по сути ограничений нет - я поставил 9 символов с точкой отрезать

а расширение файла на 9 симоволов я не встречал

да и если даже найти такое расширение - цифру 9 всегда можно изменить на 20  )

 

---------------------------------------------------------------------------------------------------------------------------------

 

Предлагаю макрос для быстрого выделения всех радиусов

// Скрываем ненужные элементы
	DIALOGS MESSAGE OFF
	DIALOGS ERROR OFF
	GRAPHICS LOCK
	DEACTIVATE TOOLPATH

BOOL option1 = FALSE
$option1 = QUERY "Выбрать только ВОГНУТЫЕ радиуса?"
IF $option1 {
	EDIT SELECTIONTOOLS MODEL ALL 
	FORM SELECTMINRAD
	VIEW MODEL ; 
	MINTOOLRAD "7"
	EDIT SELECTIONTOOLS INCLUDE_PARTIALS YES
	FORM APPLY SELECTMINRAD
	FORM ACCEPT SELECTMINRAD
}    ELSE    {

// Создаём обратную СК
	STRING activename = Workplane.name
	CREATE WORKPLANE "RAD"
	ACTIVATE Workplane "RAD"
	MODE NOGUI WORKPLANE_EDIT START ;
	MODE NOGUI WORKPLANE_EDIT TWIST Y
	MODE NOGUI WORKPLANE_EDIT TWIST "180"
	WPETWIST ACCEPT
	MODE NOGUI WORKPLANE_EDIT FINISH ACCEPT

// Задание заготовки
	ACTIVATE Workplane "RAD"
	EDIT MODEL ALL DESELECT ALL
	EDIT BLOCK COORDINATE WORKPLANE
	EDIT BLOCKTYPE BOX
	EDIT BLOCK ALL UNLOCK
	EDIT BLOCK TOLERANCE ".001"
	EDIT BLOCK RESETLIMIT "0"
	EDIT BLOCK LIMITTYPE MODEL
	EDIT BLOCK RESET
	UNDRAW BLOCK

// Перемещение Z0 на верхнюю плоскость, XY -  центр
	REAL $x0 = ($block.limits.xmax+$block.limits.xmin)/2
	REAL $y0 = ($block.limits.ymax+$block.limits.ymin)/2
	REAL $z0 = $block.limits.zmax
	MODE WORKPLANE_EDIT START ;
	MODE WORKPLANE_EDIT POSITION
	MODE POSITION CARTESIAN X $x0
	MODE POSITION CARTESIAN Y $y0
	MODE POSITION CARTESIAN Z $z0
	POSITION APPLY
	MODE WORKPLANE_EDIT FINISH ACCEPT

// Выбираем радиуса
	EDIT SELECTIONTOOLS MODEL ALL 
	FORM SELECTMINRAD
	VIEW MODEL ; 
	MINTOOLRAD "7"
	EDIT SELECTIONTOOLS INCLUDE_PARTIALS YES
	FORM APPLY SELECTMINRAD
	FORM ACCEPT SELECTMINRAD

// Удаляем созданную СК и активируем первоначально активную СК
	DELETE WORKPLANE "RAD"
	ACTIVATE Workplane $activename
}

//  Включаем отображение диалогов 
	DIALOGS MESSAGE ON
	DIALOGS ERROR ON
	GRAPHICS UNLOCK
	REFRESH VIEWMILL RESIZEVIEW

 

Например, есть такая модель:

 

R1.png.5c5816ab0a667e914f784face4e9de59.png

 

Запускаем макрос, который спрашивает: Выбрать только вогнутые радиуса ?

 

Если нажимаем ДА - результат такой:

R2.png.6c91940dd6557dd4b2b86f9147764180.png

 

Если нажать НЕТ - результат такой:

 

R3.png.e143a3f3540ab1a63c8ea0f7fa41ddf7.png

 

 

 

 

Изменено пользователем eksodus
Ссылка на сообщение
Поделиться на других сайтах
В 15.09.2017 в 17:08, eksodus сказал:

вообще и в моём макросе по сути ограничений нет

Вы считаете, что название модели не может содержать точки?А как же децимальный номер?

Ссылка на сообщение
Поделиться на других сайтах
31 минуту назад, Konstantin_VP сказал:

Вы считаете, что название модели не может содержать точки?А как же децимальный номер?

конечно может

но мой макрос делает отсечение от самой крайней справа точки вместе с точкой

только что проверил - сделал модель Model00.01.02.sldprt

проект сохранился по моему макросу как Model00.01.02

 

цифра 9  - это сколько символов отрезается вместе с точкой, то есть точка и 8 символов расширения

а если вдруг и найдётся расширение больше чем на 8 символов (хоть я такого и не встречал) -

то цифру 9 всегда можно исправить на 15 или 20, или любое другое число

 

PS: А Вы можете помочь улучшить макрос для выбора радиусов ?

у меня задано напрямую -

MINTOOLRAD "7"

хотелось бы чтоб спрашивало.

Изменено пользователем eksodus
Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, eksodus сказал:

PS: А Вы можете помочь улучшить макрос для выбора радиусов ?

у меня задано напрямую -


MINTOOLRAD "7"

хотелось бы чтоб спрашивало.

Показать содержимое  
// Скрываем ненужные элементы
	DIALOGS MESSAGE OFF
	DIALOGS ERROR OFF
	GRAPHICS LOCK
	DEACTIVATE TOOLPATH

BOOL option1 = FALSE
$option1 = QUERY "Выбрать только ВОГНУТЫЕ радиуса?"
real selectrad = 7
$selectrad = input "Select radius"
IF $option1 {
	EDIT SELECTIONTOOLS MODEL ALL 
	FORM SELECTMINRAD
	VIEW MODEL ; 
	MINTOOLRAD $selectrad
	EDIT SELECTIONTOOLS INCLUDE_PARTIALS YES
	FORM APPLY SELECTMINRAD
	FORM ACCEPT SELECTMINRAD
}    ELSE    {

// Создаём обратную СК
	STRING activename = Workplane.name
	CREATE WORKPLANE "RAD"
	ACTIVATE Workplane "RAD"
	MODE NOGUI WORKPLANE_EDIT START ;
	MODE NOGUI WORKPLANE_EDIT TWIST Y
	MODE NOGUI WORKPLANE_EDIT TWIST "180"
	WPETWIST ACCEPT
	MODE NOGUI WORKPLANE_EDIT FINISH ACCEPT

// Задание заготовки
	ACTIVATE Workplane "RAD"
	EDIT MODEL ALL DESELECT ALL
	EDIT BLOCK COORDINATE WORKPLANE
	EDIT BLOCKTYPE BOX
	EDIT BLOCK ALL UNLOCK
	EDIT BLOCK TOLERANCE ".001"
	EDIT BLOCK RESETLIMIT "0"
	EDIT BLOCK LIMITTYPE MODEL
	EDIT BLOCK RESET
	UNDRAW BLOCK

// Перемещение Z0 на верхнюю плоскость, XY -  центр
	REAL $x0 = ($block.limits.xmax+$block.limits.xmin)/2
	REAL $y0 = ($block.limits.ymax+$block.limits.ymin)/2
	REAL $z0 = $block.limits.zmax
	MODE WORKPLANE_EDIT START ;
	MODE WORKPLANE_EDIT POSITION
	MODE POSITION CARTESIAN X $x0
	MODE POSITION CARTESIAN Y $y0
	MODE POSITION CARTESIAN Z $z0
	POSITION APPLY
	MODE WORKPLANE_EDIT FINISH ACCEPT

// Выбираем радиуса
	EDIT SELECTIONTOOLS MODEL ALL 
	FORM SELECTMINRAD
	VIEW MODEL ; 
	MINTOOLRAD $selectrad
	EDIT SELECTIONTOOLS INCLUDE_PARTIALS YES
	FORM APPLY SELECTMINRAD
	FORM ACCEPT SELECTMINRAD

// Удаляем созданную СК и активируем первоначально активную СК
	DELETE WORKPLANE "RAD"
	ACTIVATE Workplane $activename
}

//  Включаем отображение диалогов 
	DIALOGS MESSAGE ON
	DIALOGS ERROR ON
	GRAPHICS UNLOCK
	REFRESH VIEWMILL RESIZEVIEW

 

Hide  
Ссылка на сообщение
Поделиться на других сайтах
В 24.04.2016 в 12:28, Konstantin_VP сказал:

Макрос для нумерации траекторий.

Теперь данный макрос нумерует траектории в активной папке и в подпапках, кроме папки "temp". В процессе нумерации траектории не становятся активными, что значительно ускоряет процесс. Также сворачиваются директории "StockModel" и "NCPROGRAM" для предотвращения постоянного обновления списков. Шаблон нумерации: Q + порядковый номер + . + название траектории.

Показать содержимое  
DIALOGS ERROR Off
DIALOGS MESSAGE Off

FUNCTION MAIN { 

//Свернуть модель материала
DoCommand 'EXPLORER SELECT StockModel ROOT'
DoCommand 'DEBUG EXPLORER KEY LEFT'

//Свернуть NC
DoCommand 'EXPLORER SELECT NCPROGRAM ROOT'
DoCommand 'DEBUG EXPLORER KEY LEFT'

STRING $nmb = '1' //счётчик

STRING $FolderName = ACTIVE_FOLDER() //определяет путь по активной папке

STRING $FolderNameToolpath = substring($FolderName, 0, 8) //отображает строчку с позиции 0 до 8

//Если нет активной папки в "Toolpath"
If $FolderNameToolpath !='Toolpath' {
$FolderName = 'Toolpath'
}

FOREACH t IN folder ($FolderName) {

ENTITY CurrentTP = t
STRING $OneName = $CurrentTP.Name              //имя активной траектории
STRING $ToolpathFolder = dirname(pathname(t)) // путь по активной траектории


string $temp = position(lcase($ToolpathFolder), 'temp',0)  //фильтр папки "temp"

//Если путь не содержит папку "temp"
If $temp  == -1 {

//Вызов функции
CALL TolpathCount($FolderName, $OneName, $nmb)

} else {

//

}

}


//FUNCTION MAIN
}


FUNCTION TolpathCount (STRING FolderName, STRING OneName, output STRING nmb) {

//проверка наличия Q
IF position(ucase(substring(OneName, 0, 1)), "Q") == -1 {

//Если Q нет

string $N=$nmb
string $newname='q'+$N+'.'+$OneName

//проверка наличия дубликатов
IF entity_exists('Toolpath',$newname) {
string $newname2= $newname+'_'
RENAME TOOLPATH $OneName $newname2
} else {
RENAME TOOLPATH $OneName $newname
}

$nmb = int (nmb) + 1 //счётчик траекторий

} else {

//Если Q есть

STRING $pointName = substring($OneName, 0, (position($OneName, "."))+1 ) //колличество символов до первой точки (отсчёт от 0) от начала строки

STRING $Name = replace($OneName, pointName, "") //убирает со строки $Name указанные символы в переменной $pointName

string $N=$nmb
string $newname='q'+$N+'.'+$Name

//проверка наличия дубликатов
IF entity_exists('Toolpath',$Name) {
string $newname2= $newname+'_'
RENAME TOOLPATH $OneName $newname2
} else {
RENAME TOOLPATH $OneName $newname
}

$nmb =  int (nmb) + 1 //счётчик траекторий

}

//FUNCTION TolpathCount
}


RESET LOCALVARS // очистить временные переменные

DIALOGS ERROR On
DIALOGS MESSAGE On

 

Hide  

 

 

Ссылка на сообщение
Поделиться на других сайтах

Всем привет. Стоит задача суммировать все статистическое время проекта.Задачу выполнил. Информацию беру из Статистики траектории путем накопления данных по каждой траектории через цикл FOREACH. Но что интересно - накопленная сумма исчезает. Такое чувство, что область действия объявленных переменных в цикле действуют только в самом цикле. Как только цикл отработан, переменные уничтожаются.Что делать?Может неправильно использую цикл?Я уже и в начале макроса объявлял переменную(строка 1) и перед непосредственно расчетом(строка5). В комментариях указываю, какой результат выводится...Чтобы это обойти есть мысль просто использовать цикл WHILE DO, но для этого нужно знать количество траекторий. А как узнать количество элементов в списке, папке, folder?

 

//int total=0
FOREACH tp in folder ('Toolpath') {
int arcs= $tp.Statistics.CuttingMoves.Times.Arcs
int lin=$tp.Statistics.CuttingMoves.Times.Linear
int total=0
int pos_arcs=position(arcs,",")
$arcs= substring($arcs,0,$pos_arcs)
int pos_lin= position(lin,",")
$lin=substring($lin,0,$pos_lin)

int time_lin=string($lin)
int time_arcs=string($arcs)
$total=time_lin+time_arcs+2
//Message info total(сообщение выводится при каждой итерации)
}
Message info total(ошибка :Неправильное имя)

Изменено пользователем syncomp
Ссылка на сообщение
Поделиться на других сайтах
1 час назад, syncomp сказал:

Стоит задача суммировать все статистическое время проекта.

я чуть изменил свой макрос с предыдущей страницы

получилось вот так:

CREATE NCPROGRAM "Статистика"
EDIT NCPROGRAM ; APPEND TOOLPATH ALL

IF (ENTITY_EXISTS('ncprogram','')) {
ENTITY tpath = entity('ncprogram','')
REAL $total_time = $tpath.statistics.leadsandlinks.times.rapid
$total_time = total_time + $tpath.statistics.leadsandlinks.times.plunge
$total_time = total_time + $tpath.statistics.leadsandlinks.times.ramp
$total_time = total_time + $tpath.statistics.leadsandlinks.times.others
$total_time = total_time + $tpath.statistics.cuttingmoves.times.linear
$total_time = total_time + $tpath.statistics.cuttingmoves.times.arcs
STRING $msg = string(round($total_time,2))
$total_time = INPUT "Общее время проекта, минут:"
}

DELETE NCPROGRAM "Статистика"

 

кстати, вопрос у меня есть - Вы как-то писали

В 06.02.2017 в 22:56, syncomp сказал:

У меня возникла такая проблема. Часто приходится переименовывать траектории. Помогите создать макрос, который бы переименовывал имена траекторий.

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

какой у вас шаблон для траекторий  ?

можете написать штук 5 траекторий, как нужно ? или скриншот дать ?

или вопрос уже решён ?

Ссылка на сообщение
Поделиться на других сайтах

для с#

 

 pm11.GetEntityList(PowerSolutionDOTNetOLE.clsPowerMILLOLE.enumPowerMILLEntityType.pmToolpath, ref ii17, ref ss26, ref ii16);

 

где ii17 - число траекторий, ss26 - массив имен траекторий, ii16 - активная траектория

 

 

может  пора переходить на vb или c# ? и проще, и отладчик ошибок есть .....

 

 

 

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, eksodus сказал:

я чуть изменил свой макрос с предыдущей страницы

получилось вот так:


CREATE NCPROGRAM "Статистика"
EDIT NCPROGRAM ; APPEND TOOLPATH ALL

IF (ENTITY_EXISTS('ncprogram','')) {
ENTITY tpath = entity('ncprogram','')
REAL $total_time = $tpath.statistics.leadsandlinks.times.rapid
$total_time = total_time + $tpath.statistics.leadsandlinks.times.plunge
$total_time = total_time + $tpath.statistics.leadsandlinks.times.ramp
$total_time = total_time + $tpath.statistics.leadsandlinks.times.others
$total_time = total_time + $tpath.statistics.cuttingmoves.times.linear
$total_time = total_time + $tpath.statistics.cuttingmoves.times.arcs
STRING $msg = string(round($total_time,2))
$total_time = INPUT "Общее время проекта, минут:"
}

DELETE NCPROGRAM "Статистика"

 

кстати, вопрос у меня есть - Вы как-то писали

какой у вас шаблон для траекторий  ?

можете написать штук 5 траекторий, как нужно ? или скриншот дать ?

или вопрос уже решён ?

Макрос на переименование траекторий я написал давно и активно им пользуюсь. Шаблона как такового нет. Оставляю нумерованный список. При переименовании просто прибавляю 100(из соображения, что больше 100 траекторий не будет), к старому имени. Когда все переименованы с+100, то переименовываю по-новой, но уже по порядку.

int i=100
FOREACH tp IN folder('Toolpath') {
STRING NewName =tp.Name+string(i)
RENAME TOOLPATH $tp.Name $NewName
$i=i+1
}

int j=1
FOREACH tp IN folder('Toolpath') {
STRING NewName =string(j)
RENAME TOOLPATH $tp.Name $NewName
$j=j+1
}

 

И спасибо за помощь.  создавать NC-файл в данном случае обязательно? Ведь статистику можно получить из траекторий? А потом его удалять. Во всяком случае попробую сам без создания NC.

Изменено пользователем syncomp
Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, syncomp сказал:

И спасибо за помощь.  создавать NC-файл в данном случае обязательно? Ведь статистику можно получить из траекторий? А потом его удалять. Во всяком случае попробую сам без создания NC.

ну - этот NC-файл и удаляется же макросом, вроде ничего сложного

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

а если в сумме нужно всех траекторий - то из NC-файла, в котором есть все траектории

как их сложить без NC-файла может и есть решение - я без понятия

 

2 часа назад, syncomp сказал:

Макрос на переименование траекторий я написал давно и активно им пользуюсь. Шаблона как такового нет. Оставляю нумерованный список. При переименовании просто прибавляю 100(из соображения, что больше 100 траекторий не будет), к старому имени. Когда все переименованы с+100, то переименовываю по-новой, но уже по порядку.

а я не 100 прибавляю - а подчёркивание

траекторий 1_ или 2_ у меня точно не бывает

 

а удобно просто номера порядковые траекторий и всё ?

ошибок нет  ?

я пользуюсь макросом - он переименовывает траектории, добавляя к порядковому номеру через пробел имя инструмента

результат примерно такой -

1 D10

2 D4

3 D2

 

3 часа назад, dd22 сказал:

pm11.GetEntityList(PowerSolutionDOTNetOLE.clsPowerMILLOLE.enumPowerMILLEntityType.pmToolpath, ref ii17, ref ss26, ref ii16);

а как этим пользоваться, можно краткую инструкцию ?

 

Изменено пользователем eksodus
Ссылка на сообщение
Поделиться на других сайтах
14 часа назад, eksodus сказал:

а как этим пользоваться, можно краткую инструкцию ?

https://forums.autodesk.com/t5/powershape-and-powermill-api/getting-started-with-powershape-and-powermill-api/td-p/6868839

здесь документация "свежая",

можно на форумах поискать аналогичную  (не Autodesk, а еще Делкамовскую для версий Powermill до 2016 года).

 

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

 

 

Ссылка на сообщение
Поделиться на других сайтах
В 03.10.2017 в 07:51, dd22 сказал:

здесь документация "свежая"

спасибо, почитаю

Ссылка на сообщение
Поделиться на других сайтах

Всем привет! Вынужден опять вернуться к разговору о  файлах. Запись и чтение в файлы. Как пользоваться командами FILE OPEN я разобрался. Но вот в чем проблема. При открытии файла указывается путь к нему. Ну а если мне заранее не известен путь или нужный мне файл при выполнении макроса должен находится в другом месте, не в том, что записано в тексте макроса или имя файла должно быть другим... Т.е.

Записано так:

FILE OPEN "D:\ My_file.txt" ...

Откроется файл My_file.txt в корне диска D.

Мне же надо будет когда-то, чтобы этот макрос открыл файл "D:\Project1\Your_file.txt"

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

Ссылка на сообщение
Поделиться на других сайтах
  • MFS закрепил это тему

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...