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 = {
|
||||
фиксация: 'НаМесте',
|
||||
типПрибора: 'Величина',
|
||||
величина: 'Напряжение',
|
||||
величина: 'E',
|
||||
являетсяПАЗ: false,
|
||||
уточнение: null,
|
||||
функции: [] as string[],
|
||||
|
|
@ -16,17 +16,53 @@ export const stateMechanism = {
|
|||
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 {
|
||||
|
|
|
|||
|
|
@ -104,8 +104,8 @@ PaletteProvider.prototype.getPaletteEntries = function () {
|
|||
action: {
|
||||
click: function () {
|
||||
var shape = elementFactory.createShape({
|
||||
width: 50,
|
||||
height: 120,
|
||||
width: 37.795276,
|
||||
height: 37.795276,
|
||||
canStartConnection: true,
|
||||
type: 'instrument',
|
||||
obj: structuredClone(stateInstrument),
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import {
|
|||
create as svgCreate,
|
||||
} from 'tiny-svg'
|
||||
import { Shape } from 'diagram-js/lib/model/Types'
|
||||
import { letterMatcher } from '../addObjectForm'
|
||||
|
||||
const HIGH_PRIORITY = 1500
|
||||
|
||||
|
|
@ -84,9 +85,13 @@ function drawMechanism(shape: Shape): SVGGElement {
|
|||
return g
|
||||
}
|
||||
|
||||
function drawText(x: any): string {
|
||||
return x.величина + x.функции.map((u: string) => letterMatcher[u]).join('')
|
||||
}
|
||||
|
||||
function drawInstrument(shape: Shape): SVGGElement {
|
||||
var g = svgCreate('g')
|
||||
if (!shape.obj.является_паз) {
|
||||
if (!shape.obj.являетсяПАЗ) {
|
||||
const circle = svgCreate('circle', {
|
||||
cx: shape.width / 2,
|
||||
cy: shape.height / 2,
|
||||
|
|
@ -103,7 +108,21 @@ function drawInstrument(shape: Shape): SVGGElement {
|
|||
fill: 'Canvas',
|
||||
})
|
||||
}
|
||||
|
||||
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.фиксация == 'НаЩите') {
|
||||
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
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue