+4

Выбрать точки с помощью стринга

Всем здравствуйте!


Быть может, кому-то будет полезен скрипт, о котором пойдет речь в этом посте.


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

Пусть у вас имеются набор точек, и вы желаете оставить те точки, которые попадают внутрь полигона:


Запускаете скрипт, выбираете файл точек и файл стринга и нажимаете ОК.




В результате будет создан (имя созданного файла образуется из старого с добавлением в конце _cut) и загружен в Vizex файл точек, которые находятся внутри полигона:



Если вы хотите оставить точки вне полигона, то надо поставить галочку Вне полигона и проделать те же самые операции. Скрипт находится по ссылке Выбрать точки стрингом.py, для его работы необходим также файл mmfiles.py, который должен находиться в той же папке, что и скрипт Выбрать точки стрингом (в папке проекта).


Примечание: данный скрипт работает только в плане

+4

Скрипт для разбиения файла по полю

Добрый день.

Я решил добавить на форум скрипт, являющийся по сути своей утилитой по работе с файлами данных (DAT, STR, RPT). Он позволяет разбить исходный файл по какому-то уникальному значению, поместив каждый получивший набор данных в отдельный файл.

Так выглядит окно скрипта:



На ввод надо указать исходный файл, который вы желаете разделить и указать столбец в Поле, в котором хранятся те самые уникальные значения.
На вывод выбирается директория, в которую будут записаны получившиеся файлы. В поле Префикс нужно указать имя файла, которое будет стоять в названии файла перед порядковым номером. Пример: Префикс = Блок_, в результате получатся файлы Блок_1, Блок_2 и т.д.

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

Желаю всем успехов!

Сам скрипт находится тут: GUI - Разделить файл по полю.py

Для запуска скрипта необходимо установить Python на компьютер, на котором вы пытаетесь запустить скрипт, так как он использует графическую оболочку Tkinter, не встроенную в Micromine. Ниже выберите нужную для вас ссылку:
  • Micromine 2013 – скачайте Python по ссылке
  • Micromine 2014 32bit – скачайте Python по ссылке.
  • Micromine 2014 64bit – скачайте Python по ссылке.
Важно:
  • Нежелательно устанавливать несколько из представленных выше версий Python на один компьютер.
  • После установки Python нужно перезапустить Micromine, если он был запущен.
Если возникнут какие-то проблемы с запуском или работой скрипта, обращайтесь.

+3

Экспорт набора каркасов из TDB в MDB

Pavel Yakovlev (Moderator (RUS)) 9 years ago in Micromine / Scripting updated by byury 7 years ago 1

Всем доброго времени суток!


Вашему вниманию предлагается скрипт в двух вариациях для экспорта набора каркасов из TDB в MDB. Для работы скрипта необходимо иметь установленный модуль для работы с базами данных: pyodbc-3.0.6.win32-py3.3.exe (устанавливать в директорию, где установлен Python).

1. Export TDB-MDB GUI.py - с графических интерфейсом.

После запуска появится окно следующее окно:




Далее вы выбираете файл TDB (можно двойным кликом по полю ввода), и вводите или выбираете файл MDB. Нажимаете ОК, и все каркасы, находящиеся в TDB, будут экспортированы. В случае незаполненных полей скрипт выдаст сообщение об ошибке:




2. Export TDB-MDB.py

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




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

Если будут возникать какие-то вопросы, спрашивайте. Совсем скоро на форуме будут появляться и другие скрипты.
+3

Скрипт для загрузки цветных точек

Pavel Yakovlev (Moderator (RUS)) 8 years ago in Micromine / Scripting updated 5 years ago 4
Всем скриптовый привет.

Начинаю пополнять наш форум готовыми скриптами. Первый скрипт на сегодня - это возможность Micromine загружать в визекс цветные точки.

Входные данные: файл данных, в которых хранятся координаты точек и поля с красным (R), зеленым (П) и синим (B) цветами. Пример файла представлен ниже:



Если у вас есть похожий по структуре файл, и вам нужно его отобразить в Визексе, то ниже вы найдете описание окна скрипта, которое поможет разобраться с этим инструментом.



Пойдем по порядку.
  1. Ввод:
    1. В поле Файл двойным щелчком выбираете файл данных
    2. Выбираете из выпадающего списка нужные поля координат X, Y, Z и цветов R, G, B.
  2. Вывод:
    1. Обязательно надо указать Поле цвета - это должно быть символьное поле, в которое скрипт проставит метку для дальнейшеного создания палитры цветов (просто номер строки)
  3. Дополнительные опции:
    1. Поле Разбить файл можно использовать для того, чтобы ускорить процесс загрузки вашего файла. Так как файлы сканирования обычно содержат большое число точек, то процесс загрузки может занять много времени. Для примера скажу, что 362000 цветных точек может загружать более часа. Поэтому введя какое-либо число, вы тем самым указываете количество файлов, на которое разобьется исходный файл. Каждый из этих файл по отдельности загружается быстрее, и время загрузки для тех же 362000 точек может уменьшиться до 15-25 минут. Естественно, у каждого компьютера свои возможности, поэтому не могу обещать, что на вашем компьютере скорость загрузки будет такая же или быстре. Может быть все!
    2. Функция Группировать палитру цветов позволит вам (прошу прощения за масло масляное) сгруппировать цвета, что в результате уменьшит количество значений в палитре. Эту функцию удобно использовать, когда у вас небольшой разбор цветов. Для файлов, с полным набором цветовой гаммы эта функция никаким образом не ускорит загрузку точек. В случае, когда у вас тысячи точек и три цвета - да, разница будет ощутима.
    3. Вы так же можете сохранить получившуюся палитру цветов, указав номер и имя формы. Тут важно помнить два момента:
      1. В случае, если вы вводите существующий номер набора форм, скрипт не спросит у вас разрешения заменить или перезаписать этот набор.
      2. В этом скрипте нет возможности получить список имеющихся наборов форм, поэтому перед сохранением, убедитесь, что вы вводите верный номер набора, чтобы потом ваши старые данные не потерялись
Сам скрипт находится тут: GUI - Загрузка цветных точек.py
Пример точек для загрузки: Coloured_Points.DAT

Для запуска скрипта необходимо установить Python на компьютер, на котором вы пытаетесь запустить скрипт, так как он использует графическую оболочку Tkinter, не встроенную в Micromine. Ниже выберите нужную для вас ссылку:
  • Micromine 2013 – скачайте Python по ссылке
  • Micromine 2014 32bit – скачайте Python по ссылке.
  • Micromine 2014 64bit – скачайте Python по ссылке.
Важно:
  • Нежелательно устанавливать несколько из представленных выше версий Python на один компьютер.
  • После установки Python нужно перезапустить Micromine, если он был запущен.
Если возникнут какие-то проблемы с запуском или работой скрипта, обращайтесь.
+2

Пособие по написанию скриптов в Micromine 2021.5

Владимир Марков 4 months ago in Micromine / Scripting updated by Stepan (Moderator (RUS)) 4 months ago 1

Здравствуйте. С Новым годом! Скажите, существует ли пособие по написанию скриптов?

+2

Пересечение стрингов

Pavel Yakovlev (Moderator (RUS)) 9 years ago in Micromine / Scripting updated by Артём Дёмин 9 years ago 11

Приветствую!


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


Я нарисовал от руки небольшой пример:



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



Вы указываете файл файлы стригов и задаете имя файла точек (вводите имя или выбираете уже существующий файл), в который будут сохранены точки пересечения выбранных вами стрингов. Скрипт запустить встроенную в Micromine функцию Создать точку на пересечении, то есть надо надо проделать знакомую для всех операцию: выбрать "основные" и пересекающиеся стринги. В результате работы скрипта в Vizex загрузится файл точек:



Скрипт: Пересечение стрингов.py

Необходимые файлы: mmfiles.py


Примечание:

  1. Прошу заметить, что файлы стрингов не обязательно сохранять, если они еще не были сохранены, так как Micromine по умолчанию их сохраняет в файл Без имени.str.
  2. Функция Создать точку на пересечении по умолчанию добавляет точки пересечения в файл стринга, однако скрипт удаляет эти точки оттуда. Так как этот файл так или иначе подвергся изменениям, он будет в окне просмотра помечен звездочкой, но это все тот же файл, поэтому если Micromine спросит: "Сохранить ли изменения в файле Без имени.STR?", то можно смело жать на любой ответ.

+2

Скрипт для расчета среднего значения по пробам

И снова здравствуйте!

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


Окно скрипта выглядит следующим образом:



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

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

Желаю всем хорошего дня!

Сам скрипт можно скачать тут: GUI - Расчет среднего значения по пробам.py

Для запуска скрипта необходимо установить Python на компьютер, на котором вы пытаетесь запустить скрипт, так как он использует графическую оболочку Tkinter, не встроенную в Micromine. Ниже выберите нужную для вас ссылку:
  • Micromine 2013 – скачайте Python по ссылке
  • Micromine 2014 32bit – скачайте Python по ссылке.
  • Micromine 2014 64bit – скачайте Python по ссылке.
Важно:
  • Нежелательно устанавливать несколько из представленных выше версий Python на один компьютер.
  • После установки Python нужно перезапустить Micromine, если он был запущен.
Если возникнут какие-то проблемы с запуском или работой скрипта, обращайтесь.
+2
Under review

Загрузка растров

Pavel Yakovlev (Moderator (RUS)) 9 years ago in Micromine / Scripting updated 8 years ago 7

Здравствуйте, коллеги!


В этом посте представлен скрипт, который позволяет загружать все растры, находящиеся в выбранной вами директории. Для корректной работы скрипта, нужно установить модуль easygui.py (скопируйте этот файл в директорию, в которую у вас установлен Python, например, C:\Python33\).

После запуска скрипта появится окно для выбора папки с растрами:



Выбираете папку, нажимаете кнопку ОК, и начнется загрузка изображений в Micromine. Изображение будет загружено лишь в том случае, если имеется файл привязки (grf или tab). Если его нет, то скрипт выдаст сообщение о его отсутствии в окне Результат скрипта:



Примечание: скрипт определяет изображения по их разрешениям, которых по умолчанию 16 (bmp, png, j2k, jp2, .jpg, jpx, jpg, jpeg, tif, tiff, bil, bip, gif, jfi, jti, tga). Если вдруг вы пытаетесь загрузить изображение с разрешением, которого нет в приведенном списке, то нужно прописать вручную это разрешение файла в одиннадцатой строке скрипта по аналогии с тем, как прописаны уже существующие:




Скачивайте, тестируйте, пользуйтесь: Загрузка растров.py

+2

РЕЦЕПТ: русские символы в скриптах

Александр Неумоин 9 years ago in Micromine / Scripting updated by Daria Lvova 9 years ago 2

Добрый день, коллеги.


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


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


Вот в этом файле Translation.py содержатся две функции:


detranslate(исходная строка)  - преобразовывает в русские символы всю строку ('Korova' -> 'Корова')

dt_stroke(исходная строка) - преобразовывает в русские символы, заключенные в фигурные скобки ({}) ('{Korova} says Moo, {deti!shki}' -> 'Корова says Moo, детишки')


Этот файл надо поместить в папку библиотек Micromine (у меня это "C:\Program Files (x86)\Micromine 2013\Python\lib\")


Правила транслитерации немного отличаются от обычных:

А-A  а-a

Б-B  б-b

В-V  в-v

Г-G  г-G

Д-D  д-d

Е-E  е-e

Ё-!YO  ё-!yo

Ж-!ZH  ж-!zh

З-Z  з-z

И-I  и-i

Й-Y  й-y

К-K  к-k

Л-L  л-l

М-M  м-m

Н-N  н-n

О-O  о-o

П-P  п-p

Р-R  р-r

С-S  с-s

Т-T  т-t

У-U  у-u

Ф-F  ф-f

Х-H  х-h

Ц-!TS  ц-!ts

Ч-!CH  ч-!ch

Ш-!SH  ш-!sh

Щ-!SCH  щ-!sch

Ь-!`(обратный апостроф)  ь-`

Ы-!YY  ы-!yy

Ъ-!~  ъ-~

Э-!YE  э-!ye

Ю-!YU  ю-!yu

Я-!YA  я-!ya


Использование: 

1. Импортируйте модуль Transaltion

2. Используйте одну из функций преобразования


Пример 1 (теоритический):

print ('Hello World! Прощай, жестокий мир')

Запускается только в редакторе скриптов.


import Translation

print (Translation.dt_string('Hello World! {Pro!schay, !zhestokiy mir!}'))

Запускается в редакторе скриптов, из файла или слота.


Пример 2 (кусок из рабочего скрипта):

...

WsLoadStrings_FormSet1.set_field("Z_VARB","ВЫСОТА")

...

Запускается только в редакторе скриптов.


import Translation

...

WsLoadStrings_FormSet1.set_field("Z_VARB",Translation.dt_string("{V!YYSOTA}"))

...

Запускается в редакторе скриптов, из файла или слота.


Буду рад, если рецепт кому-то пригодится.

+1

Скрипт для расчета условного металла

Pavel Yakovlev (Moderator (RUS)) 8 years ago in Micromine / Scripting updated by Yusupova Raisa 7 months ago 4
Доброго времени суток всем заглянувшим в раздел скриптов на нашем форуме!

В этом посте я расскажу про скрипт для расчета условного метала. Окно скрипта ниже:



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

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

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

Скрипт можно скачать тут: GUI - Расчет условного металла.py

Для запуска скрипта необходимо установить Python на компьютер, на котором вы пытаетесь запустить скрипт, так как он использует графическую оболочку Tkinter, не встроенную в Micromine. Ниже выберите нужную для вас ссылку:
  • Micromine 2013 – скачайте Python по ссылке
  • Micromine 2014 32bit – скачайте Python по ссылке.
  • Micromine 2014 64bit – скачайте Python по ссылке.
Важно:
  • Нежелательно устанавливать несколько из представленных выше версий Python на один компьютер.
  • После установки Python нужно перезапустить Micromine, если он был запущен.
Если возникнут какие-то проблемы с запуском или работой скрипта, обращайтесь.