Помогите со скриптом фармакода

  • Автор темы Автор темы oduvan
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

oduvan

Участник
Топикстартер
Сообщения
17
Реакции
0
Нужен скрипт который бы генерировал из пятизначного десятиричного числа фармакод(вид штрихкода) - подробное описание алгоритма создания фармакода в пдфке ниже.
Параметры самого объекта - фармакода таковы:
высота плосок 5мм
ширина полосок: толстые -1.5мм, тонкие 0.5мм, пробелы 1мм.
максимальное количество цифр кодируемого числа - 5
после фармакода на расстоянии 10 мм по центру относительно высоты полосок должно выводится закодированное число в десятиричном виде.
 
Ответ: Помогите со скриптом

Пдф с описанием алгоритма создания

http://www.gomaro.ch/ftproot/Laetus_PHARMA-CODE.pdf на странице 34 - алгоритм - не сложный.

Пример готового фармакода
Pharmacode.13500.jpg
Страница 34 из мануала с описанием алгоритма создания штрихкода

Picture 3.png
Насколько сложна написать такой скрипт?
Скрипт нужен для мака на иллюстратор 5,5
 
Ответ: Помогите со скриптом

Судя по алгоритму - обычный двоичный код. Но как-то странно с примерами сообразуется... 'hmmm'
 
Ответ: Помогите со скриптом

ААА!!вбивается шестизначное число, из него берутся только последние пять цифр если конечно пятая цифра не ноль - если она ноль то 4 и тд а в десятичном виде число отображается полностью

тоесть в примере реально закодированно число 13500
 
Ответ: Помогите со скриптом

Все равно странно. В приведенном числе последние пять цифр 13500, в двоичном виде это 11010010111100 - то есть там даже разрядов больше, чем в штрихкоде отображается. Хотя, не пойму, как такое может быть, судя по алгоритму, количество разрядов кода (количество возможных делений на 2) равно двоичному логарифму числа. 'hz'
 
Ответ: Помогите со скриптом

Да фигня данный пример сгенерировал прогой barcode pro проверил реально хрень попробую в пдфке покопаться!
 
Ответ: Помогите со скриптом

Хотя, вообщем то не совсем двоичный код. Двоичный код в чистом виде был бы если бы они на каждом шаге просто на 2 делили, а они дополнительно отнимают 2 или 1 чтобы жизнь медом не казалась.
 
Ответ: Помогите со скриптом

Вобще все верно проверил по их алгоритму разложил 13500 получилось:
Z=
1-13500
2-6749
3-3374
4-1686
5-842
6-420
7-209
8-104
9-51
10-25
11-12
12-5
13-2

Сложно такой скрипт заваять?
 
Ответ: Помогите со скриптом

Да, запросто, сейчас чуть освобожусь сделаю
 
Ответ: Помогите со скриптом

Я только понял что программа генератор переворачивает его как в примере - можно чтоб штрихи тоже переворачивались?
буду оч признателен!:)
 
Ответ: Помогите со скриптом

В смысле - переворачивает? Разрядность справа налево?
 
Ответ: Помогите со скриптом

Вот как то так:
Код:
var code=prompt("Enter pharm code: ",0);
    code=code % 100000;
    x=0;
    y=0;
    dy=5*25.4/72;
    var newRGBColor = new RGBColor();
    newRGBColor.red = 0;
    newRGBColor.green = 0;
    newRGBColor.blue = 0;
    while (code>0)
    {
      if (code & 1)
      {
       code=(code-1)/2;
       dx=0.5*25.4/72;
      }
      else
      {
       code=(code-2)/2;
       dx=1.5*25.4/72;
      }
      x=x-dx;
      var rect = activeDocument.pathItems.rectangle( y, x, dx, dy );
      rect.filled = true;
      rect.stroked = false;
      rect.fillColor=newRGBColor;
      x=x-1*25.4/72;
    }
 
Ответ: Помогите со скриптом

Огромное спасибо!!!:)

можно ли внести дополнения?

1) Можно ли сделать так, чтобы справа писалось бы шестизначное число полностью как в примере?
2) всем элементам кода назначить оверпринт?

Подогнал что смог под свои нужды)))

var code=prompt("Enter pharm code: ",0);
code=code % 100000;
x=0;
y=0;
dy=5/0.3514496;
var newCMYKColor = new CMYKColor();
newCMYKColor.cyan = 0;
newCMYKColor.magenta = 0;
newCMYKColor.yellow = 0;
newCMYKColor.black = 100;
while (code>0)
{
if (code & 1)
{
code=(code-1)/2;
dx=0.5/0.3514496;
}
else
{
code=(code-2)/2;
dx=1.5/0.3514496;
}
x=x-dx;
var rect = activeDocument.pathItems.rectangle( y, x, dx, dy );
rect.filled = true;
rect.stroked = false;
rect.fillColor=newCMYKColor;
x=x-1/0.3514496;
}
 
Ответ: Помогите со скриптом

Можно, но попозже, у меня сейчас иллюстратора под рукой нет. А зачем вы приведение в поинты свернули?
 
Ответ: Помогите со скриптом

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

1) Можно ли сделать так, чтобы справа писалось бы шестизначное число полностью как в примере?
А почему шесть а не пять, что-то не допонял? Пять вроде вот так:
Код:
var code = prompt("Enter pharm code: ", 0);
code = code % 100000;
var txt = code;
...
var codeText = activeDocument.textFrames.add();
codeText.position = [rect.width + 10 * pt2mm, 0];
codeText.textRange.size = 2.5 * pt2mm;
codeText.contents = txt;
 
Ответ: Помогите со скриптом

А почему шесть а не пять
Судя по описанию алгоритма и примерам, число шестизначное, но штрихами кодируются младшие значимые пять цифр, то есть, все верно.
 
Ответ: Помогите со скриптом

Спасибо за оверпринт - получилось! Осталось только цифры справа от кода приделать)))
 
Статус
Закрыто для дальнейших ответов.