label enhancment
This commit is contained in:
parent
1e9a6d3052
commit
63ebf54f0a
3 changed files with 75 additions and 9 deletions
|
|
@ -1,7 +1,7 @@
|
||||||
export const stateInstrument = {
|
export const stateInstrument = {
|
||||||
фиксация: 'НаМесте',
|
фиксация: 'НаМесте',
|
||||||
типПрибора: 'Величина',
|
типПрибора: 'Величина',
|
||||||
величина: 'Напряжение',
|
величина: 'E',
|
||||||
являетсяПАЗ: false,
|
являетсяПАЗ: false,
|
||||||
уточнение: null,
|
уточнение: null,
|
||||||
функции: [] as string[],
|
функции: [] as string[],
|
||||||
|
|
@ -16,17 +16,53 @@ export const stateMechanism = {
|
||||||
const функцииПоТипу = {
|
const функцииПоТипу = {
|
||||||
ВыполняемаяФункция: [
|
ВыполняемаяФункция: [
|
||||||
'Сигнализация',
|
'Сигнализация',
|
||||||
'АвтоматическоеРегулирование',
|
'Автоматическое регулирование',
|
||||||
'ВеличинаОтклоненияОтЗаданной',
|
'Величина отклонения от заданной',
|
||||||
'Регистрация',
|
'Регистрация',
|
||||||
],
|
],
|
||||||
ФункциональныйПризнак: [
|
ФункциональныйПризнак: [
|
||||||
'ЧувствительныйЭлемент',
|
'ЧувствительныйЭлемент',
|
||||||
|
'Первичный показывающий прибор',
|
||||||
|
'Вторичный показывающий прибор',
|
||||||
|
'Станция управления',
|
||||||
|
'Включение, отключение, переключение',
|
||||||
'Преобразование',
|
'Преобразование',
|
||||||
'ПервичныйПоказывающийПрибор',
|
'Вспомогательные компьютерные устройства',
|
||||||
'СтанцияУправления',
|
'Вспомогательные вычислительные устройства',
|
||||||
'ВключениеОтключениеПереключение',
|
'QДополнительный',
|
||||||
|
'VДополнительный',
|
||||||
|
'ZДополнительный',
|
||||||
],
|
],
|
||||||
|
УточнениеВеличины: [
|
||||||
|
'Разность, перепад',
|
||||||
|
'Соотношение, доля, дробь',
|
||||||
|
'Интегрирование, суммирование по времени',
|
||||||
|
'Самосрабатывающее устройство безопасности',
|
||||||
|
'Система инструментальной безопасности',
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
export const letterMatcher = {
|
||||||
|
Сигнализация: 'A',
|
||||||
|
'Автоматическое регулирование': 'C',
|
||||||
|
'Величина отклонения от заданной': 'I',
|
||||||
|
Регистрация: 'R',
|
||||||
|
ЧувствительныйЭлемент: 'E',
|
||||||
|
'Первичный показывающий прибор': 'G',
|
||||||
|
'Вторичный показывающий прибор': 'I',
|
||||||
|
'Станция управления': 'K',
|
||||||
|
'Включение, отключение, переключение': 'S',
|
||||||
|
Преобразование: 'T',
|
||||||
|
'Вспомогательные компьютерные устройства': 'X',
|
||||||
|
'Вспомогательные вычислительные устройства': 'Y',
|
||||||
|
QДополнительный: 'Q',
|
||||||
|
VДополнительный: 'V',
|
||||||
|
ZДополнительный: 'Z',
|
||||||
|
'Разность, перепад': 'D',
|
||||||
|
'Соотношение, доля, дробь': 'F',
|
||||||
|
'Интегрирование, суммирование по времени': 'Q',
|
||||||
|
'Самосрабатывающее устройство безопасности': 'S',
|
||||||
|
'Система инструментальной безопасности': 'Z',
|
||||||
}
|
}
|
||||||
|
|
||||||
export function createInstrumentForm(): HTMLElement {
|
export function createInstrumentForm(): HTMLElement {
|
||||||
|
|
|
||||||
|
|
@ -104,8 +104,8 @@ PaletteProvider.prototype.getPaletteEntries = function () {
|
||||||
action: {
|
action: {
|
||||||
click: function () {
|
click: function () {
|
||||||
var shape = elementFactory.createShape({
|
var shape = elementFactory.createShape({
|
||||||
width: 50,
|
width: 37.795276,
|
||||||
height: 120,
|
height: 37.795276,
|
||||||
canStartConnection: true,
|
canStartConnection: true,
|
||||||
type: 'instrument',
|
type: 'instrument',
|
||||||
obj: structuredClone(stateInstrument),
|
obj: structuredClone(stateInstrument),
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import {
|
||||||
create as svgCreate,
|
create as svgCreate,
|
||||||
} from 'tiny-svg'
|
} from 'tiny-svg'
|
||||||
import { Shape } from 'diagram-js/lib/model/Types'
|
import { Shape } from 'diagram-js/lib/model/Types'
|
||||||
|
import { letterMatcher } from '../addObjectForm'
|
||||||
|
|
||||||
const HIGH_PRIORITY = 1500
|
const HIGH_PRIORITY = 1500
|
||||||
|
|
||||||
|
|
@ -84,9 +85,13 @@ function drawMechanism(shape: Shape): SVGGElement {
|
||||||
return g
|
return g
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function drawText(x: any): string {
|
||||||
|
return x.величина + x.функции.map((u: string) => letterMatcher[u]).join('')
|
||||||
|
}
|
||||||
|
|
||||||
function drawInstrument(shape: Shape): SVGGElement {
|
function drawInstrument(shape: Shape): SVGGElement {
|
||||||
var g = svgCreate('g')
|
var g = svgCreate('g')
|
||||||
if (!shape.obj.является_паз) {
|
if (!shape.obj.являетсяПАЗ) {
|
||||||
const circle = svgCreate('circle', {
|
const circle = svgCreate('circle', {
|
||||||
cx: shape.width / 2,
|
cx: shape.width / 2,
|
||||||
cy: shape.height / 2,
|
cy: shape.height / 2,
|
||||||
|
|
@ -103,7 +108,21 @@ function drawInstrument(shape: Shape): SVGGElement {
|
||||||
fill: 'Canvas',
|
fill: 'Canvas',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
svgAppend(g, diamond(shape.width, shape.height, 0, 0))
|
svgAppend(g, diamond(shape.width, shape.height, 0, 0))
|
||||||
|
svgAppend(
|
||||||
|
g,
|
||||||
|
svgCreate('rect', {
|
||||||
|
x: 0,
|
||||||
|
y: 0,
|
||||||
|
width: shape.width,
|
||||||
|
height: shape.height,
|
||||||
|
stroke: 'CanvasText',
|
||||||
|
fill: 'Canvas',
|
||||||
|
})
|
||||||
|
)
|
||||||
|
|
||||||
|
console.log(g)
|
||||||
}
|
}
|
||||||
if (shape.obj.фиксация == 'НаЩите') {
|
if (shape.obj.фиксация == 'НаЩите') {
|
||||||
svgAppend(
|
svgAppend(
|
||||||
|
|
@ -118,6 +137,17 @@ function drawInstrument(shape: Shape): SVGGElement {
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
const label = svgCreate('text', {
|
||||||
|
x: shape.width / 2,
|
||||||
|
y: shape.height / 2 - 10,
|
||||||
|
'font-size': 10,
|
||||||
|
'font-family': 'Arial',
|
||||||
|
'text-anchor': 'middle',
|
||||||
|
'dominant-baseline': 'middle',
|
||||||
|
})
|
||||||
|
label.innerHTML = drawText(shape.obj)
|
||||||
|
console.log(label.innerHTML)
|
||||||
|
svgAppend(g, label)
|
||||||
|
|
||||||
return g
|
return g
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue