Перейти к содержанию
Форум химиков на XuMuK.ru
β

Система отображения химических формул easyChem


peterwin

Рекомендуемые сообщения

🚑 Решение задач, контроши, рефераты, курсовые и другое! Онлайн сервис помощи учащимся. Цены в 2-3 раза ниже! 200 руб. на 1-й заказ по коду vsesdal143982

Генерацию в SVG я уже сделал, хотя пока особо не анонсировал. Она работает и ей можно пользоваться. На странице тестового стенда в самом низу есть кнопка "Генерировать SVG". При нажатии выдаётся исходник SVG и изображение (для браузеров, поддерживающих inline-SVG).

Конечно, работает.

Только большинство пользователей не догадывается, что у svg или ps есть какие-то исходники :) А файл людям хочется )

 

А документация там сейчас вообще в экспериментальном виде :)

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

Да, с документацией это всегда так. По моему субъективному мнению, растра (png) и вектора (svg) более чем достаточно, были бы файлы )

А ps, действительно, широко используется, но в более узких кругах.

 

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

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

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

http://glx.sourceforge.net/subroutines/index.html

У меня бы не хватило терпения, ради пары рисунков писать нужные процедуры с нуля.

Изменено пользователем Wergilius
Ссылка на комментарий

Только большинство пользователей не догадывается, что у svg или ps есть какие-то исходники :) А файл людям хочется )

 

По моему субъективному мнению, растра (png) и вектора (svg) более чем достаточно, были бы файлы )

 

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

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

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

 

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

 

Справочник формул - вещь нужная. Он обязательно будет. Вот сейчас добью сервис уравнивания реакций. Дальше по списку у меня идёт конвертер из SMILES. А следующий - справочник веществ. Конечно, не с целью переплюнуть PubChem. Но для локальных целей он будет весьма полезен. И как я уже понял, его надо делать таким, чтобы участвовать в наполнении могли все желающие.

Ссылка на комментарий

И как я уже понял, его надо делать таким, чтобы участвовать в наполнении могли все желающие.

Тут что называется палка о двух концах. Если будете делать сами (или командой) то все будет структурированно. Если будут делать пользователи, то порядка и структуры будет гораздо меньше.

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

 

В разделе Физическая химия есть открытая тема http://forum.xumuk.ru/index.php?showtopic=6793

А есть закрытая, со структурой http://forum.xumuk.ru/index.php?showtopic=49605 , формируемая в т.ч. по материалам открытой.

Ссылка на комментарий

В разделе Физическая химия есть открытая тема http://forum.xumuk.r...?showtopic=6793

А есть закрытая, со структурой http://forum.xumuk.r...showtopic=49605 , формируемая в т.ч. по материалам открытой.

Ну я буду делать справочник с использованием базы данных. Там структура жесткая.

Ссылка на комментарий
  • 2 недели спустя...

Очередные новшества:

1. Появился сервис уравнивания реакций http://www.easychem.org/ru/equal

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

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

 

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

Наиболее интересные формулы получились в категории Пестициды. По полноте заполнения можно порекомендовать Аминокислоты или Гетероциклы.

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

 

3. Подумал над тем, чтобы в описании формул можно было использовать макрокоманды. Идея следующая:

@:Acetyl()CH3-COO@; - так объявляется макрокоманда, описывающая анион уксусной кислоты.

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

@Acetyl()H + NaOH = @Acetyl()Na + H2O , что на выходе даст:

CH3COOH + NaOH = CH3COONa + H2O

Возможен вариант объявления на ходу. То есть, объявленный макрос сразу же исполнится:

@:Acetyl()CH3-COO@@H + NaOH = @Acetyl()Na + H2O

Можно даже добавить параметры:

@:Acetyl(X)CH3-COO&X@; @Acetyl(H) + NaOH = @Acetyl(Na) + H2O

Это ещё не работает. Потому что реализация не сложна. Гораздо хуже, если получится неудобная конструкция.

Ссылка на комментарий

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

@:Acetyl()CH3-COO@; - так объявляется макрокоманда, описывающая анион уксусной кислоты.

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

@Acetyl()H + NaOH = @Acetyl()Na + H2O , что на выходе даст:

CH3COOH + NaOH = CH3COONa + H2O

Возможен вариант объявления на ходу. То есть, объявленный макрос сразу же исполнится:

@:Acetyl()CH3-COO@@H + NaOH = @Acetyl()Na + H2O

Можно даже добавить параметры:

@:Acetyl(X)CH3-COO&X@; @Acetyl(H) + NaOH = @Acetyl(Na) + H2O

Думаю макрокоманды для данной системы - очень мощный инструмент.

С Аргументами получается более логично. Сколько их может быть (аргументов)?

Например, допустима ли такая запись:

@:Toluene(X,Y,Z)CH3|\|`//<|&X@>`\`||<`\&Y@>/\/&Z@;

А потом, да простят меня органики, @Toluene(H,H,H)+ 3Cl2 = @Toluene(Cl,Cl,Cl)+ 3HCl

Параметрическая запись для аргументов макрокоманд получается более удобной для химии.

 

А в качестве аргументов макрокоманд могут выступать структуры со связями?

@:Toluene(X,Y,Z)CH3|\|`//&X@`\`||&Y@/\&Z@;

@Toluene()+ 3Cl2 = @Toluene(<|Cl>,<`\Cl>,/Cl)+ 3HCl (если конечно аргументы можно опускать)

 

Или, скажем @:Benzole(X)||`/`\\`|//\&X@;

@Benzole(/`|O|\H)

 

Или другие макрокоманды :)

@:Carbonyl()/`|O|\H;

@Benzole(@Carbonyl())

 

И еще, аргументы чисто позиционные, или допускается такая запись: @Toluene(Z=Cl,Y=Br,X=I)?

Изменено пользователем Wergilius
Ссылка на комментарий

В принципе, думаю реализовать всё по-максимуму:

  • аргументов может быть любое количество
  • в качестве аргументов можно будет указать любой фрагмент формулы, н.р. -OH, или даже с использованием другой макрокоманды. Главное ограничение - баланс скобок и кавычек. То есть, если скобки были открыты, их нужно закрыть: @MyCmd(-CH(CH3)2)
  • при объявлении можно задать значение по-умолчанию: @:Acetyl(a:^-)CH3COO&a@; Тогда конструкция @Acetyl() даст: CH3COO-, а @Acetyl(H): CH3COOH.
  • Аргументы можно опускать или указывать по имени параметра. Так уже упомянутый толуол может быть задан так: @:Toluene(X,Y,Z)CH3|\|`//<&X>`\`||<&Y>/\<&Z>@; Здесь возможные подстановки заранее объявлены в виде ответвлений от основной цепочки. Варианты использования: @Toluene() - без включений, @Toluene(|Cl) - хлор снизу, @Toluene(|Cl,,/Br) - хлор снизу, бром справа сверху (пропускаем средний параметр), @Toluene(Z:/Br) - используем только параметр Z
  • Для объявления и одновременного вызова решил использовать $(): @:Acetyl(a:^-)CH3COO&a@$(H) + NaOH = @Acetyl(Na) + H2O, что даст на выходе: CH3COOH + NaOH = CH3COONa + H2O

Думаю, что в течение недели этот функционал будет реализован. Отпишусь, когда можно будет посмотреть.

 

PS. А почему "да простят меня органики, @Toluene(H,H,H)+ 3Cl2 = @Toluene(Cl,Cl,Cl)+ 3HCl" ? Я не понял, что тут не так. Имеется в виду, что органические реакции надо записывать в виде стрелок? (просто я нуб в химии :) )

Ссылка на комментарий

В принципе, думаю реализовать всё по-максимуму:

  • аргументов может быть любое количество
  • в качестве аргументов можно будет указать любой фрагмент формулы, н.р. -OH, или даже с использованием другой макрокоманды. Главное ограничение - баланс скобок и кавычек. То есть, если скобки были открыты, их нужно закрыть: @MyCmd(-CH(CH3)2)
  • при объявлении можно задать значение по-умолчанию: @:Acetyl(a:^-)CH3COO&a@; Тогда конструкция @Acetyl() даст: CH3COO-, а @Acetyl(H): CH3COOH.
  • Аргументы можно опускать или указывать по имени параметра. Так уже упомянутый толуол может быть задан так: @:Toluene(X,Y,Z)CH3|\|`//<&X>`\`||<&Y>/\<&Z>@; Здесь возможные подстановки заранее объявлены в виде ответвлений от основной цепочки. Варианты использования: @Toluene() - без включений, @Toluene(|Cl) - хлор снизу, @Toluene(|Cl,,/Br) - хлор снизу, бром справа сверху (пропускаем средний параметр), @Toluene(Z:/Br) - используем только параметр Z
  • Для объявления и одновременного вызова решил использовать $(): @:Acetyl(a:^-)CH3COO&a@$(H) + NaOH = @Acetyl(Na) + H2O, что даст на выходе: CH3COOH + NaOH = CH3COONa + H2O

Думаю, что в течение недели этот функционал будет реализован. Отпишусь, когда можно будет посмотреть.

 

PS. А почему "да простят меня органики, @Toluene(H,H,H)+ 3Cl2 = @Toluene(Cl,Cl,Cl)+ 3HCl" ? Я не понял, что тут не так. Имеется в виду, что органические реакции надо записывать в виде стрелок? (просто я нуб в химии :) )

По функционалу - :ay:(особенно - вызов по имени параметра @Toluene(Z:/Br))

А про реакцию - не уверен что реакция будет идти именно так )

Изменено пользователем Wergilius
Ссылка на комментарий

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...