Разделителями полей в файле формата mps могут быть символы

Обновлено: 03.07.2024

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

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

Для создания спецификации или отчета

  • Создать и отредактировать определение атрибута.
  • Ввести значения атрибутов в процессе выполнения вставки блоков.
  • Создать файл шаблона и затем извлечь данные из атрибутов в текстовый файл.

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

Примечание Необходимо убедиться в том, что имена файла вывода атрибутов и файла шаблона атрибутов не совпадают.

Создание файла шаблона вывода атрибутов

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

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

В следующем файле шаблона перечислено 15 возможных полей. N означает числовой тип, C символьный тип, www общая длина поля в виде трехзначного числа, ddd число выводимых знаков после десятичной точки в виде трехзначного числа.

BL:LEVELNwww000 (Уровень вложенности блокаl)

BL:X Nwwwddd(Координата X точки вставки)

BL:NUMBERNwww000 (Счетчик блоков; один и тот же для блоков, вставленных по МВСТАВИТЬ)

BL:HANDLECwww000 (Метка блоков; одна и та же для блоков, вставленных по МВСТАВИТЬ)

BL:LAYERCwww000 (Имя слоя вставки блока)

BL:ORIENT Nwwwddd(Угол поворота блока)

BL:XSCALE Nwwwddd(Масштаб по X)

BL:YSCALE Nwwwddd(Масштаб по Y)

BL:ZSCALE Nwwwddd(Масштаб по Z)

BL:XEXTRUDE Nwwwddd(Составляющая X вектора выдавливания)

BL:YEXTRUDE Nwwwddd(Составляющая Y вектора выдавливания)

BL:ZEXTRUDE Nwwwddd(Составляющая Z вектора выдавливания)

numericNwwwddd (Числовой атрибут)

characterCwww000 (Символьный атрибут)

Шаблон может включать в себя все или некоторые из полей типа BL:xxxxxxx, перечисленных выше. Включенные в шаблон имена атрибутов задают, данные каких атрибутов (и, следовательно, каких блоков) включаются в файл вывода. Значения заданных в шаблоне, но не содержащихся в блоке атрибутов, заменяются пробелами (для символьных) или нулями (для числовых).

Пояснения о назначении стандартных полей приведены здесь исключительно в качестве комментария; включаться в шаблон они не должны.

В шаблоне вывода атрибутов задаются сведения об атрибутах; например, о наименовании детали, номере модели, стоимости и поставщике, как показано на чертеже блока с атрибутами и в таблице.


Символьные (C) или числовые (N) данные

Максимальная длина поля

Число десятичных знаков

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

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

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

Ниже приведен пример простого файла шаблона для извлечения информации из атрибутов.

BL:NAME C008000 (Имя блока, 8 символов)

BL:X N007001 (Координата X, в формате nnnnnn.d)

BL:Y N007001 (Координата Y, в формате nnnnnn.d)

SUPPLIER C016000 (Фирма-изготовитель, 16 символов)

MODEL C009000 (Номер модели, 9 символов)

PRICE N009002 (Стоимость единицы, в формате nnnnnnnn.dd)

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

Создание файла вывода атрибутов

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

  • Формат файла с разделителями-запятыми (CDF)
  • Формат файла с разделителями-пробелами (SDF)
  • Формат файла обмена графическими данными (DXF)

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

Файл формата SDF также содержит по одной записи для каждого вхождения блока в чертеж. Поля каждой записи имеют фиксированную длину и не требуют ни разделителей, ни ограничителей символьных полей. Операция dBASE III Copy . . . SDF также формирует файлы в формате SDI. Операция Append From. SDF позволяет читать файлы в формате dBASE IV, которые легко обрабатываются пользовательскими программами, написанными на языке FORTRAN.

При выводе в формате DXF образуется подмножество файла обмена чертежами, содержащее только вхождения блоков, атрибуты и символы конца последовательности. В данном случае файл шаблона вывода атрибутов не требуется. К имени файла будет автоматически добавлено расширение. dxx ).

Использование файла вывода атрибутов

Файл вывода атрибутов содержит список значений и других сведений всех атрибутов, вывод которых описан в шаблоне.

Если при выводе с помощью шаблона применяется формат CDF, то файл вывода может иметь следующий вид:

'DESK', 120.0, 49.5, 'ACME INDUST.', '51-793W', 379.95

'CHAIR', 122.0, 47.0, 'ACME INDUST.', '34-902A', 199.95

'DESK', -77.2, 40.0, 'TOP DRAWER INC.', 'X-52-44',249.95

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

C:QUOTE c (Разделитель символьных строк)

C:DELIM c (Разделитель полей)

Символ, следующий сразу (без пробела) за именем поля C:QUOTE или C:DELIM определяет соответственно ограничитель символьных строк или разделитель полей. Например, для того чтобы символьные строки заключались в кавычки, необходимо вписать в шаблон следующую строку:

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

Если при выводе с помощью шаблона применяется формат SDF, то файл вывода может иметь следующий вид:

MPS (Programming System) - файловый формат для представления и проблем линейного программирования (LP) и смешанного целочисленного программирования.

Обзор

Статистические данные по вводу в систему NEOS за январь 2011 года.

Формат был назван в честь раннего продукта IBM LP и появился в качестве стандартной среды ASCI de facto среди большинства коммерческих LP sol . По существу, все коммерческие решения LP принимают этот формат, а также принимаются системой COIN-OR с открытым исходным кодом. Однако с принятием Алраических языков моделирования использование MPS сократилось. Например, согласно статистике сервера NEOS в январе 2011 года менее 1% субмиссий были в форме MPS по сравнению с 59,4% субмиссий AMPL и 29,7% субмиссий GAMS.

Формат MPS

Вот небольшой образец модели, написанной в формате MPS (подробнее объясняется ниже):

НАЗВАНИЕ TESTPROB ROWS N COST L LIM1 G LIM2 E MYEQN КОЛОНКИ XONE COST 1 LIM1 1 XONE LIM2 1 YTWO 1 YTWO MYEQN -1 ZTHREE E E E O 1 LIMOEQ2 Q2 1 M1 ML1 MEELEE2 1 ME1 1 ME1 1 1 1 MEEEEEEEE2 1 1 1 1 MEEEEEEEEEEEEE2 1 1 1 1 1 1 1 1 1 1 1 LEEEEEEEEEEEEEEN1 1 1 1 1 1 1 1 1

Для сравнения, вот та же модель, выписанная в формате, ориентированном на уравнения:

Оптимизация стоимости: XONE + 4 * YTWO + 9 * ZTHREE с учетом LIM1: XONE + YTWO < = 5 LIM2: XONE + ZTHREE > = 10 MYEQN: - YTWO + ZTHREE = 7 Bounds XONE < = 4 -1 < 1 <

Как упомянуто ниже, нижняя граница на XONE либо нулевая, либо - конечная, в зависимости от реализации, потому что она не определена. Strangely, ничто в формате MPS не определяет направление оптимизации, и нет стандартного направления "по умолчанию"; некоторые решения LP максимизируются, если не в противном случае, другие минимизируют, а третьи ставят безопасность на первое место и не имеют значения по умолчанию и требуют выбора somin программы управления или вызова программы. Если модель формулируется для минимизации и решатель требует максимизации (или наоборот), легко преобразовать их между ними, отрицая все эффекты целевой функции. Оптимальное значение целевой функции будет отрицательным от исходного оптимального значения, но значения самих переменных будут ct. Некоторые программы поддерживают спецификацию минимизации/максимизации в файле MPS. OBJSENSE MAX

Переменные

Запись NAME может иметь любое значение, начиная со столбца 15.

В разделе ROWS определяются имена всех констрах, а в столбце 2 или 3 - значения E для равных (=) гребней, L для меньших (< =) гребней, G для больших (> =) гребней и N для неконстрирующих гребней. Порядок гребней, названных в этом разделе, неважен, за исключением неконстрирующих гребней с пометкой N, первая из которых интерпретируется как целевая функция.

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

Раздел RHS позволяет определить один или несколько правых векторов, их редко бывает больше одного. В приведенном выше примере имя вектора RHS - RHS1, и имеет ненулевые значения во всех 3 констрантных гребнях задачи. Гребни, не упомянутые в векторе RHS, должны иметь правую сторону нуля.

Опциональный раздел BOUNDS определяет нижнюю и верхнюю борды для отдельных переменных, если они не заданы гребнями в матрице. Все борды, которые имеют заданное имя в столбце 5, берутся вместе как набор. Переменные, не упомянутые в данном наборе BOUNDS, принимаются неотрицательными (нижний нулевой уровень, верхний нулевой уровень). Bound типа UP означает, что к переменной применяется верхняя bound. Основание типа LO означает применение нижнего основания. Тип bound FX ("фиксированный"); означает, что переменная имеет верхний и нижний борды, равные одному значению. Тип bound ("free"); означает, что переменная не имеет ни нижних, ни верхних бондов и, следовательно, может принимать отрицательную es. вариация, которая является MI для свободного негатива, давая верхнюю bound 0, но не нижней границ. Bound тип PL является для свободного положительного от нуля до плюс бесконечности, но, как это нормальное значение по умолчанию, это редко используется. Есть также типы bound для использования в MIBBBBBerd для использования В BBBBBB- или BBSSSS- это: - Это BBBBSBSB- Это BBBBBB- BBBBB- B- BB- B- B- B2 для B2 для B2 Для 2 для b2 Для - это - это - это - это Для 2 Для 2 Для 2 Для 2 Для 2 Для 2 Для 2 Для 2 Для 2 Для 2 Для 2 Для 2 Для 2. Для 2 Для 2 Для 2 Для. Для. Для 2 Для 2 для

Еще один необязательный раздел, называемый RANGES special double-inequalities, каким-то контрантутивным образом не описан здесь. Способы пометить целые вариабельности также выходят за рамки этой статьи (задействованы ke ord MARKER и, возможно, SOS). Окончательная карточка должна быть ENDATA (обратите внимание на нечетное написание).

Несколько особых случаев стандарта MPS не обрабатываются последовательно с помощью . В разделе BOUNDS, если переменной присваивается непозитивная верхняя bound, но не нижняя bound, ее нижняя bound может по умолчанию равно нулю или minus infinity (также, если верхняя bound задается как ноль, нижняя bound может быть нулем или отрицательной infinity). Если для целочисленной переменной не указан верхний bound, ее верхний bound может быть по умолчанию равен единице, а не плюс бесконечность.

Лимиты

У MPS много лимитов. В нем не указывается направление оптимизации, которое по-разному обрабатывается sol . Числовые поля имеют ширину 12 символов, что ограничивает . Представление не является простым ни для человеческой интерпретации, ни для компактности (хотя резервирует информацию о порядке столбцов/строк, которая часто выгодна для поведения решателя ЛП. Одним из альтернативных MPS, который не имеет своих ограничений и поддерживается большинством sol, является формат файла nl.

Удлинения

Многие продукты ЛП включают расширения к формату MPS. Свободный формат MPS позволяет использовать длинные имена и более точные данные, позволяя полям превышать столбцы, определенные исходным стандартом, и применять пробелы в качестве разделителей вместо фиксированных позиций столбцов (обратите внимание, что это делает некоторые MPS-файлы, которые включали пробелы как часть имен, недействительными). Некоторые расширения включают в себя добавление нового вида данных в файл MPS (например, разделы, содержащие объективный смысл, требования к целостности, квадратические данные или расширенное моделирование MIP);. SRPS - это специализированное расширение, предназначенное для представления моментов проблем с хастическим программированием, используемых особенно в исследовательских средах.

Хотя некоторые расширения не стандартизированы, формат по-прежнему используется в целом.

Большинство текстовых процессоров позволяют сохранить данные документов слияния в текстовых файлах без форматирования, которые затем можно использовать для импорта в таблицы Access. Например, в Word 2002 нужно просто открыть документ и сохранить его как текстовый файл, выбрав команду Файл › Сохранить как (File › Save As).

При возможности выбора формата текстовых файлов, предназначенных для импорта в таблицы Access 2002, рекомендуется использовать файлы с разделителями полей. Недостатком файлов с фиксированной шириной полей является, во-первых, большой объем, т. к. в них содержится много пробелов, а во-вторых, сложности с определением позиций начала столбцов. Если же все-таки нужно использовать файл с фиксированной шириной полей, будьте внимательны и помните, что Access анализирует только первые 20 строк текстового файла, поэтому позиции разделения полей, определяемые автоматически, могут оказаться неверными.

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

Кроме того, в текстовых файлах могут использоваться двойные кавычки (") для.выделения текстовых полей. При импорте данных из таких файлов предполагается, что поля, значения которых не выделены кавычками, являются числовыми (в том случае, если они содержат только числа). Далеко не все приложения выделяют текстовые значения при импорте в текстовый файл. Например, Excel при экспорте данных в текстовый файл в формате CSV (Comma Delimited) не заключает текстовые значения в кавычки (рис. 3.24).


Рис. 3.24. Текстовый файл в формате CSV открыт в приложении "Блокнот"

Замечание
С помощью приложения "Блокнот" можно быстро определить тип текстового файла, который предполагается импортировать в таблицу Access 2002. Однако приложение "Блокнот" может работать только с файлами, размер которых не превышает 60 Кбайт. Для просмотра больших текстовых файлов можно использовать редактор WordPad. Но работая с этим редактором при просмотре или редактировании текстовых файлов, нельзя применять форматирование и сохранять файлы в формате DOC, т. к. в этом случае текстовый файл нельзя будет импортировать
.

В текстовом файле SDF (Standard Data Format), создаваемом командой dBASE COPY ТО ИмяФайла DELIMITED, все текстовые значения заключаются в прямые кавычки (рис. 3.25). Значения полей типа Numeric и Date в кавычки не заключаются. Этот формат текстовых файлов является стандартом для многих СУБД и широко распространен в других приложениях.

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


Рис. 3.25. Текстовый файл в формате SDF открыт в приложении "Блокнот"

MPS (Система математического программирования) - это формат файла для представления и архивирования. линейное программирование (LP) и смешанное целочисленное программирование проблемы.

Содержание

Обзор


MPS ориентирован на столбцы (в отличие от ввода модели в виде уравнений), и все компоненты модели (переменные, строки и т. Д.) Получают имена. MPS - это старый формат, поэтому он настроен для перфокарт: поля начинаются со столбцов 2, 5, 15, 25, 40 и 50. Разделы файла MPS отмечены так называемыми картами заголовков, которые отличаются своим начиная с столбца 1. Хотя по историческим причинам в файле обычно используется верхний регистр, многие программы чтения MPS принимают смешанный регистр для чего угодно, кроме карточек заголовков, а некоторые позволяют использовать смешанный регистр где угодно. Имена, которые вы выбираете для отдельных объектов (ограничений или переменных), не важны для решателя; нужно выбрать значащие имена или простые имена для кода пост-обработки, который будет читать.

Формат MPS

Вот небольшой образец модели, написанный в формате MPS (более подробно объяснено ниже):

Для сравнения, вот та же модель, записанная в формате, ориентированном на уравнения:

Переменные

Запись NAME может иметь любое значение, начиная со столбца 15.

Раздел ROWS определяет имена всех ограничений; записи в столбце 2 или 3 - это E для строк равенства (=), L для строк меньше ( =) и N для строк без ограничений. Порядок строк, названных в этом разделе, не важен, за исключением не ограничивающих строк, отмеченных N, первая из которых будет интерпретироваться как целевая функция.

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

Раздел RHS позволяет определить один или несколько векторов правой части; редко бывает больше одного. В приведенном выше примере имя вектора RHS - RHS1, и он имеет ненулевые значения во всех 3 строках ограничений задачи. Предполагается, что строки, не упомянутые в векторе RHS, имеют правую часть нуля.

Необязательный раздел BOUNDS определяет нижнюю и верхнюю границы отдельных переменных, если они не заданы строками в матрице. Все границы, которым присвоено имя в столбце 5, берутся вместе как набор. Переменные, не упомянутые в данном наборе BOUNDS, считаются неотрицательными (нижняя граница равна нулю, верхняя граница отсутствует). Граница типа UP означает, что к переменной применяется верхняя граница. Граница типа LO означает, что применяется нижняя граница. Ограниченный тип FX («фиксированный») означает, что верхняя и нижняя границы переменной равны одному значению. Связанный тип FR («свободный») означает, что переменная не имеет ни нижней, ни верхней границ и поэтому может принимать отрицательные значения. Вариант этого - MI для свободного отрицания, дающий верхнюю границу 0, но не нижнюю границу. Связанный тип PL предназначен для свободного положительного значения от нуля до плюс бесконечности, но, поскольку это нормальное значение по умолчанию, он редко используется. Также существуют связанные типы для использования в MIP модели - BV для двоичного, 0 или 1. UI для верхнего целого числа и LI для нижнего целого. SC означает полунепрерывный и указывает, что переменная может быть равна нулю, но в противном случае должна быть равна по крайней мере заданному значению.

Другой необязательный раздел под названием RANGES определяет двойное неравенство несколько нелогичным образом, не описанным здесь. Способы пометки целочисленных переменных также выходят за рамки данной статьи (задействовано ключевое слово MARKER и, возможно, SOS). Последняя карта должна быть ENDATA (обратите внимание на странное написание).

Ограничения

MPS имеет множество ограничений. Он не определяет направление оптимизации, которое решатели обрабатывают по-разному. Числовые поля имеют ширину 12 символов, что ограничивает точность. Представление не является простым для интерпретации человеком и не является компактным (хотя резервирует информацию о порядке столбцов / строк, что часто полезно для воспроизводимости поведения решателя LP). Одной из альтернатив MPS, которая не имеет ограничений и поддерживается большинством решателей, является формат файла nl.

Расширения

Хотя некоторые расширения не стандартизированы, этот формат все еще широко используется.

Читайте также: