---
title: "MolScript: ภาษาข้อความสำหรับแผนภาพปฏิกิริยาและกลไกลูกศรโค้ง | บล็อก MolDraw"
url: https://www.moldraw.com/th/blog/molscript-reaction-mechanism-language.html
description: "MolScript เป็นภาษาข้อความสั้น ๆ สำหรับแผนภาพปฏิกิริยาและกลไกการผลักอิเล็กตรอน: สปีชีส์เขียนเป็น SMILES หมายเลขแมปอะตอมสำหรับปลายลูกศร และบรรทัด move สำหรับลูกศรโค้งและลูกศรหัวเบ็ด มีข้อมูลอ้างอิงฉบับเต็ม วิธีวางและตรวจลูกศร ตัวอย่าง การเปรียบเทียบกับ chemfig และแผนงานสู่เฟรมเวิร์กแบบเปิด"
lang: th
publisher: Scidart Academy
generated: 2026-10-26
---
# MolScript: ภาษาข้อความสำหรับแผนภาพปฏิกิริยาและกลไกลูกศรโค้ง

เผยแพร่: 17 ต.ค. 2026 · ผู้เขียน: Scidart Academy · เวลาอ่าน: ~16 นาที

![MolScript หกบรรทัดในแผงโค้ดสีเข้มข้างขั้น SN2 ที่วาดได้: ไฮดรอกไซด์เข้าทำโบรโมมีเทนด้วยลูกศรโค้งสองอัน](https://www.moldraw.com/blog/thumbs/molscript-reaction-mechanism-language.webp)

MolScript หกบรรทัดวาดขั้น SN2 ได้ครบถ้วน: โครงสร้าง ประจุ สภาวะ และลูกศรโค้งทั้งสองอัน

**คำตอบสั้น ๆ:** MolScript เป็นภาษาข้อความขนาดเล็กสำหรับแผนภาพปฏิกิริยาและกลไกการผลักอิเล็กตรอน คุณเขียนแต่ละสปีชีส์เป็น **SMILES** เชื่อมสปีชีส์ด้วย `+`, `->`, `<->` หรือ `<=>` ติด**หมายเลขแมปอะตอม**ให้อะตอมที่ลูกศรแตะ และเขียนบรรทัด `move` หนึ่งบรรทัดต่อลูกศรโค้งหนึ่งอัน MolDraw วาดโครงสร้าง สภาวะ อิเล็กตรอนคู่โดดเดี่ยว ประจุ และลูกศรทุกอัน และ**ตรวจลูกศรทุกอัน**ตามกฎการวาดก่อนที่คุณจะเห็น ผลลัพธ์เป็นเนื้อหาบนพื้นที่วาดธรรมดาที่แก้ไขได้ และดาวน์โหลดเป็นภาพหรือโค้ด chemfig สำหรับ LaTeX ได้

## สรุป MolScript โดยย่อ

| สิ่งที่คุณเขียน | สปีชีส์เป็น SMILES ตัวดำเนินการระหว่างสปีชีส์ สภาวะในวงเล็บเหลี่ยมหลังลูกศร และบรรทัด `move` สำหรับอิเล็กตรอน |
| --- | --- |
| สิ่งที่คุณจะได้รับ | แผนภาพที่จัดวางแล้ว: โครงสร้าง เครื่องหมายบวก ลูกศรปฏิกิริยา ลูกศรสมดุลหรือเรโซแนนซ์ สภาวะ คำบรรยาย อิเล็กตรอนคู่โดดเดี่ยว ประจุ จุดเรดิคัล และลูกศรโค้ง |
| ชนิดของลูกศร | ลูกศรโค้งสองอิเล็กตรอน (`->`) และลูกศรหัวเบ็ดหนึ่งอิเล็กตรอน (`~>`) จากอิเล็กตรอนคู่โดดเดี่ยว ประจุ เรดิคัล อะตอม หรือพันธะ ไปยังอะตอม พันธะ หรือพันธะที่กำลังเกิด |
| การตรวจสอบ | หมายเลขแมปทุกตัวต้องมีอยู่และไม่ซ้ำ ลูกศรทุกอันต้องเริ่มจากที่ที่มีอิเล็กตรอน และลูกศรทุกอันที่วาดจะถูกประเมินเรื่องระยะห่าง ทิศทาง ความโค้ง และระยะเว้น ปัญหาจะส่งกลับพร้อมหมายเลขบรรทัด |
| เอาต์พุต | วัตถุบนพื้นที่วาด MolDraw ที่แก้ไขได้ และการส่งออกทุกแบบของ MolDraw รวมถึง chemfig (.tex) สำหรับเอกสาร LaTeX |
| ใช้ที่ไหนบ้างในปัจจุบัน | แชต AI ของ MolDraw วาดกลไกด้วยการเขียน MolScript และภาพกลไกในแผง Templates สร้างจาก MolScript |
| ขั้นต่อไป | เฟรมเวิร์กแบบเปิดสำหรับแอปพื้นที่วาด และ AI skill ที่ผู้ช่วยใดก็โหลดได้ ดูแผนงาน |

## สคริปต์แรกของคุณ: SN2

ไฮดรอกไซด์เข้าทำโบรโมมีเทนจากด้านหลัง และโบรไมด์หลุดออกในขั้นเดียวกัน ใน MolScript เขียนได้ในสี่บรรทัด:

```
title: SN2 of bromomethane
[OH-:1] "hydroxide" + [CH3:2][Br:3] "bromomethane" ->[SN2][acetone] CO "methanol" + [Br-]
move :1 -> 1..2
move 2-3 -> 3
```

![SN2 ของโบรโมมีเทนที่วาดจาก MolScript: ลูกศรโค้งจากประจุของไฮดรอกไซด์ไปยังคาร์บอน และอีกอันจากพันธะ C–Br ไปยังโบรมีน โดยมี SN2 อยู่เหนือและ acetone อยู่ใต้ลูกศรปฏิกิริยา](https://www.moldraw.com/blog/images/molscript/sn2.webp)

วาดโดย MolDraw จากสี่บรรทัดด้านบนนี้พอดี

ทีละบรรทัด:

1. `title:` ใส่หัวเรื่องเหนือแผนภาพ
2. บรรทัดแผนภาพระบุสปีชีส์ `[OH-:1]` คือไฮดรอกไซด์ที่ออกซิเจนมีหมายเลขแมป 1 `[CH3:2][Br:3]` คือโบรโมมีเทนที่คาร์บอนเป็น 2 และโบรมีนเป็น 3 `"hydroxide"` เป็นคำบรรยายที่วาดใต้โครงสร้าง `->[SN2][acetone]` เป็นลูกศรปฏิกิริยาที่มีข้อความด้านบนและด้านล่าง
3. `move :1 -> 1..2`: อิเล็กตรอนคู่โดดเดี่ยว (ในที่นี้คือประจุลบ) บนอะตอม 1 ไปยังพันธะที่กำลังเกิดระหว่าง 1 และ 2
4. `move 2-3 -> 3`: อิเล็กตรอนของพันธะ C–Br ที่มีอยู่ไปยังโบรมีน

หมายเลขแมปเป็นป้ายสำหรับคุณและลูกศร ไม่ถูกวาดออกมา และไม่เปลี่ยนโมเลกุล

## ภาษา

### สปีชีส์และตัวดำเนินการ

SMILES ใดก็เป็นสปีชีส์ได้ ตัวดำเนินการเขียนโดยเว้นวรรคทั้งสองข้าง:

| `+` | เครื่องหมายบวกระหว่างสารตั้งต้นร่วมหรือผลิตภัณฑ์ร่วม สปีชีส์ที่เชื่อมด้วย `+` จะอยู่ในแถวเดียวกันเสมอ |
| --- | --- |
| `->` | ลูกศรปฏิกิริยา |
| `<=>` | ลูกศรสมดุล (ลูกศรหัวครึ่งสองอัน) |
| `<->` | ลูกศรเรโซแนนซ์ (หัวสองข้าง) ใช้ระหว่างรูปเรโซแนนซ์ของสปีชีส์เดียวกัน |
| `=>` | ลูกศรการสังเคราะห์ย้อนกลับ |

ข้อความเหนือและใต้ลูกศรใส่ในวงเล็บเหลี่ยมติดกับลูกศร: `->[NaBH4][MeOH, 0 °C]` เว้นคู่แรกว่างไว้ถ้าต้องการข้อความด้านล่างอย่างเดียว: `->[][reflux]` คำบรรยายในเครื่องหมายคำพูดคู่หลังสปีชีส์จะวาดใต้สปีชีส์นั้น: `CC(=O)O "acetic acid"`

### หลายขั้น

บรรทัดที่ขึ้นต้นด้วยตัวดำเนินการจะต่อแผนภาพจากสปีชีส์สุดท้าย กลไกจึงอ่านได้บรรทัดละหนึ่งขั้น โดยมีลูกศรของขั้นนั้นอยู่ใต้บรรทัดทันที:

```
title: SN1 of tert-butyl bromide
C[C:1](C)(C)[Br:2] ->[slow] C[C+:3](C)C + [Br-]
move 1-2 -> 2
-> C[C+:4](C)C + [OH2:5]
move :5 -> 5..4
->[fast] CC(C)(C)[OH2+]
```

![กลไก SN1 สองขั้นที่วาดจาก MolScript: การแตกตัวเป็นไอออนได้ tert-บิวทิลแคตไอออน โดยพันธะ C–Br แตกออกไปอยู่บนโบรมีน แล้วน้ำเข้าทำคาร์โบแคตไอออน](https://www.moldraw.com/blog/images/molscript/sn1.webp)

แถวจะขึ้นบรรทัดใหม่เฉพาะที่ลูกศรปฏิกิริยา ลูกศรที่พาแผนภาพไปยังแถวถัดไปเป็นสิ่งหนึ่งที่แผนงานจะปรับปรุง

### ลูกศรโค้ง: บรรทัด `move`

ทุกอะตอมที่ลูกศรแตะต้องมีหมายเลขแมปใน SMILES: `[OH-:1]`, `[CH3:2][Br:3]`, `[O:4]` สำหรับออกซิเจนธรรมดา หมายเลขต้องไม่ซ้ำกันทั้งสคริปต์ จากนั้น:

```
move <from> -> <to>     two-electron curly arrow
move <from> ~> <to>     one-electron fish-hook
```

ปลายทั้งสองเขียนแบบเดียวกัน:

| `:n` | อิเล็กตรอนคู่โดดเดี่ยวบนอะตอม n สำหรับแอนไอออน ลูกศรจะเริ่มที่เครื่องหมายลบ ตามที่นักเคมีวาด |
| --- | --- |
| `n` | อะตอม n ลูกศรของเรดิคัลเริ่มที่จุดของเรดิคัล |
| `n-m` | พันธะที่มีอยู่ระหว่างอะตอม n และ m เมื่อเป็นจุดเริ่ม อิเล็กตรอนจะออกจากพันธะ เมื่อเป็นจุดสิ้นสุด อิเล็กตรอนจะทำให้พันธะเป็นพันธะคู่ |
| `n..m` | พันธะที่กำลังเกิดระหว่าง n และ m (ใช้เป็นจุดสิ้นสุดเท่านั้น) หัวลูกศรหยุดข้างอะตอม m ด้านที่หันไปทาง n |

ลูกศรหลายอันอยู่ในบรรทัดเดียวได้ โดยคั่นด้วยเครื่องหมายอัฒภาค: `move :1 -> 1..4; 4-2 -> 2-3; 3-5 -> 5` เขียนไฮโดรเจนที่ถูกถ่ายโอนให้ชัดเจน `[H:5][O:6]CC` เพื่อให้ลูกศรเริ่มจากพันธะของมันได้ เขียนศูนย์กลางเรดิคัลที่มีแมปพร้อมจำนวนไฮโดรเจนเพื่อให้คงจุดไว้: `CC(C)(C)[OH0:1]` คือ tert-บิวทอกซิลเรดิคัล

ลูกศรถูกวางโดยอัตโนมัติ ถ้าต้องการความโค้งแบบเฉพาะ ให้เพิ่มค่ากำหนดทับในวงเล็บปีกกา: `move 2-3 -> 3 {bow=0.3 side=left}`

### คำสั่งกำกับและคอมเมนต์

| `title: …` | หัวเรื่องเหนือแผนภาพ |
| --- | --- |
| `per-row: 2` ถึง `8` | จำนวนโครงสร้างต่อแถวก่อนแผนภาพขึ้นแถวใหม่ (ค่าเริ่มต้น 4) |
| `layout: row`, `cycle`, `branch` | รูปร่างแผนภาพ: ซ้ายไปขวา วัฏจักรตัวเร่ง หรือสารตั้งต้นหนึ่งตัวไปยังผลิตภัณฑ์หลายตัว |
| `# …` | คอมเมนต์จนถึงท้ายบรรทัด `#` ที่อยู่ใน SMILES (พันธะสาม) ไม่ใช่คอมเมนต์ |

### ข้อผิดพลาด

ปัญหาจะส่งกลับพร้อมบรรทัดที่เกิดปัญหาเป็นภาษาที่เข้าใจง่าย เพื่อให้คนหรือผู้ช่วย AI แก้บรรทัดนั้นแล้ววาดใหม่ได้:

```
line 1: put +, -> or <-> between "[O:1]C" and "[O:1]C"
line 3: no atom is tagged :9 in the SMILES (write it as [X:9])
line 4: n..m (a bond being formed) can only be the destination
line 5: a move needs -> (curly arrow) or ~> (fish-hook) between its ends
C (map 2) has no lone pair
```

## พิมพ์น้อยลง วาดได้มากขึ้น: ชื่อ ไฮไลต์ และหมายเลข

หมายเลขแมปจำเป็นเฉพาะเมื่ออะตอมกำกวม ธาตุที่ปรากฏครั้งเดียวในสารตั้งต้นของขั้นนั้นระบุตัวเองได้ และในปลายแบบพันธะ จะนับเฉพาะอะตอมที่สร้างพันธะกับปลายอีกข้าง นี่คือกลไก SN1 ทั้งหมดโดยไม่มีหมายเลขแมป มีหมายเลขสารและขั้น และแถวที่วกไปวกมา:

```
title: SN1 with element ends, numbered, snake rows
number: both
wrap: snake
per-row: 3
CC(C)(C)Br ->[slow] C[C+](C)C + [Br-]
move C-Br -> Br
-> C[C+](C)C + O
move :O -> O..C+
->[fast] CC(C)(C)[OH2+]
```

`C-Br` คือคาร์บอนตัวเดียวที่สร้างพันธะกับโบรมีน `C+` เลือกแคตไอออนจากประจุ และ `:O` คืออิเล็กตรอนคู่โดดเดี่ยวของออกซิเจนตัวเดียวในขั้นนั้น ถ้าธาตุปรากฏสองครั้ง MolScript จะแจ้งและขอหมายเลขแมป

| `h2` | ไฮโดรเจนบนอะตอม 2 ที่ระบบเขียนให้ชัดเจนแทนคุณ: `move :1 -> 1..h2; h2-2 -> 2-3` |
| --- | --- |
| `let base = [OH-:1] "hydroxide"` | กำหนดสปีชีส์ครั้งเดียว แล้วเขียน `$base` |
| `[OH]~C([H])([H])([H])~[Br] {ts}` | สถานะทรานซิชัน: `~` คือพันธะบางส่วน (เส้นประ) `{ts}` วาดวงเล็บพร้อม ‡ และจัดพันธะที่กำลังเกิดและกำลังแตกให้ตรง |
| `{δ+=2 δ-=3}` | ประจุย่อยข้างอะตอม |
| `{highlight=2/3-4:blue}` | แถบไฮไลต์บนอะตอม 2 และพันธะ 3–4 |
| `{ox=1:II}`, `{dative=1-2}` | เลขออกซิเดชันและพันธะโลหะ–ลิแกนด์สำหรับขั้นของสารออร์แกโนเมทัลลิก |
| `[Ph] [R1] [Nu-:1]` | คำย่อและหมู่ R ที่วาดเป็นป้าย |
| `->[{CC(=O)Cl}][AlCl3]` | รีเอเจนต์ที่วาดเป็นโครงสร้างเหนือลูกศร |
| `layout: cycle` | วัฏจักรตัวเร่ง การจบที่สปีชีส์แรกจะปิดวง และส่งออกเป็น chemfig พร้อมส่วนโค้งจริงได้ |

## สคริปต์กลายเป็นภาพวาดได้อย่างไร

สคริปต์ผ่านขั้นตอนเดียวกันทุกครั้ง สคริปต์เดียวกันจึงให้ภาพวาดเดียวกันเสมอ:

1. **อ่าน** สคริปต์ถูกแยกเป็นบรรทัดแผนภาพ บรรทัด move และคำสั่งกำกับ แต่ละสปีชีส์ ตัวดำเนินการ คำบรรยาย และชุดสภาวะถูกบันทึกพร้อมหมายเลขบรรทัด
2. **ตรวจป้าย** หมายเลขแมปทุกตัวที่ใช้ใน move ต้องอยู่บนอะตอมเพียงหนึ่งอะตอม `n-m` ทุกตัวต้องเป็นพันธะจริง และทุกจุดเริ่มต้องมีอิเล็กตรอนให้: อิเล็กตรอนคู่โดดเดี่ยว ประจุ เรดิคัล หรือพันธะ
3. **วาดสปีชีส์** SMILES แต่ละตัวกลายเป็นโครงสร้าง 2D ที่มุมพันธะเรียบร้อย ไฮโดรเจนที่ระบุชัดเจนซึ่งลูกศรต้องใช้จะวาดเป็นอะตอม ประจุ อิเล็กตรอนคู่โดดเดี่ยว และจุดเรดิคัลจะเพิ่มตามที่ SMILES ระบุ
4. **จัดวางแผนภาพ** โครงสร้าง เครื่องหมายบวก และลูกศรถูกจัดเรียงตามความกว้างจริง แถวขึ้นใหม่ที่ลูกศรปฏิกิริยา และสภาวะกับคำบรรยายถูกเว้นระยะไม่ให้ข้อความซ้อนกัน
5. **วางลูกศรโค้ง** ลูกศรแต่ละอันออกจากต้นทางในตำแหน่งที่นักเคมีจะวาด และโค้งหลบพันธะ ป้าย และลูกศรอื่น (รายละเอียดด้านล่าง)
6. **ตรวจเคมี** ทุกขั้นที่มีลูกศรโค้งจะถูกจำลองซ้ำบนอิเล็กตรอน: ลูกศรแต่ละอันนำอิเล็กตรอนสองตัว (หนึ่งตัวสำหรับลูกศรหัวเบ็ด) จากอิเล็กตรอนคู่โดดเดี่ยว เรดิคัล หรือพันธะ ไปไว้บนอะตอมหรือในพันธะ โครงสร้างที่ได้ต้องตรงกับที่เขียนไว้หลังลูกศร ผลิตภัณฑ์ที่ผิด (พร้อมผลต่างของอะตอมและประจุ) คาร์บอนที่มีสิบอิเล็กตรอน ลูกศรจากอะตอมที่ไม่เหลืออิเล็กตรอน ลูกศรหัวเบ็ดที่ไม่มีคู่ หรือลูกศรเรโซแนนซ์ที่ทำลายพันธะ σ จะถูกรายงานพร้อมหมายเลขบรรทัด
7. **ประเมินลูกศรทุกอัน** ลูกศรที่วางแล้วแต่ละอันถูกวัดเทียบกับกฎ ลูกศรที่ทำตามกฎไม่ได้ในจุดที่แออัดจะยังถูกวาดและรายงานเป็นคำเตือน
8. **ส่งมอบวัตถุที่แก้ไขได้** ผลลัพธ์เป็นเนื้อหาธรรมดาบนพื้นที่วาด: ลากโครงสร้างแล้วลูกศรจะตามไป ปรับสไตล์ได้ทุกอย่าง และส่งออกได้

กฎลูกศรที่ MolScript ใช้:

| หางลูกศร | อยู่บนอิเล็กตรอนคู่โดดเดี่ยวหรือเครื่องหมายลบ จุดเรดิคัล หรือกลางพันธะที่ให้อิเล็กตรอน ไม่อยู่ทับป้ายอะตอม |
| --- | --- |
| หัวลูกศร | หยุดก่อนถึงอะตอมที่รับอิเล็กตรอนเล็กน้อย หรืออยู่ในช่องว่างของพันธะที่กำลังเกิด ด้านที่หันไปทางอะตอมที่เข้าทำ |
| ความโค้ง | โค้งออกด้านนอกของโครงสร้าง โดยมีมุมหัวลูกศรคงที่ ลูกศรหัวเบ็ดคงเงี่ยงเดียวไว้ด้านนอกของส่วนโค้ง |
| ระยะเว้น | อยู่ห่างจากพันธะ ป้าย ประจุ จุด และลูกศรอื่น ลูกศรที่มีเป้าหมายเดียวกันจะกระจายออกแทนที่จะซ้อนกัน |
| ความยาว | ลูกศรที่สั้นเกินจะอ่านได้หรือยาวเกินจะตามได้จะถูกแจ้งเตือน |

กลไกอ้างอิงทุกแบบในชุดทดสอบของ MolScript จะถูกวาดและประเมินตามกฎเหล่านี้ทุกครั้งที่ MolDraw เปลี่ยนแปลง ปัจจุบันมี 41 กลไกที่มีลูกศรโค้ง 81 อัน ทั้งหมดผ่านทั้งกฎการวาดและการนับอิเล็กตรอน รวมถึงภาพใน Templates ด้วย คุณดูได้ทุกแบบใน[แกลเลอรี MolScript](https://www.moldraw.com/th/blog/molscript-gallery.html)

## ตัวอย่างโจทย์

### ปฏิกิริยากำจัด E2: ลูกศรสามอันในขั้นเดียว

```
title: E2 elimination
[OH-:1] + [H:4][CH2:2][CH:3](C)[Br:5] ->[E2] C=CC + O + [Br-]
move :1 -> 1..4; 4-2 -> 2-3; 3-5 -> 5
```

![ปฏิกิริยากำจัด E2 ที่วาดจาก MolScript: ไฮดรอกไซด์ดึงไฮโดรเจน พันธะ C–H กลายเป็นพันธะ π ของ C=C และพันธะ C–Br แตกออกไปอยู่บนโบรมีน](https://www.moldraw.com/blog/images/molscript/e2.webp)

เบสดึงไฮโดรเจน อิเล็กตรอนของ C–H กลายเป็นพันธะ π ใหม่ และโบรไมด์หลุดออก

### การเติมแบบ Michael: ลูกศรต่อกันเป็นสายผ่านระบบคอนจูเกต

```
title: Michael addition
[CH2-:1]C(C)=O + [CH2:2]=[CH:3][C:4](C)=[O:5] ->[1,4-addition] CC(=O)CCC=C(C)[O-]
move :1 -> 1..2; 2-3 -> 3-4; 4-5 -> 5
```

![การเติมแบบ Michael ที่วาดจาก MolScript: คาร์บอนของอีโนเลตเข้าทำคาร์บอนตำแหน่ง β และอิเล็กตรอนเคลื่อนผ่านพันธะ C=C และ C=O ไปอยู่บนออกซิเจน](https://www.moldraw.com/blog/images/molscript/michael-addition.webp)

`2-3 -> 3-4` ย้ายอิเล็กตรอน π ของ C=C เข้าไปในพันธะ C–C ทำให้เป็นพันธะคู่

### Diels–Alder: ลูกศรเป็นวง

```
title: Diels–Alder
[CH2:1]=[CH:2][CH:3]=[CH2:4] + [CH2:5]=[CH2:6] ->[Δ] C1CC=CCC1
move 1-2 -> 2-3; 3-4 -> 4..5; 5-6 -> 6..1
```

![ปฏิกิริยา Diels–Alder ที่วาดจาก MolScript: ลูกศรโค้งสามอันรอบสถานะทรานซิชันแบบวงของบิวทาไดอีนและเอทีน ให้ไซโคลเฮกซีน](https://www.moldraw.com/blog/images/molscript/diels-alder.webp)

ลูกศรสองในสามอันสิ้นสุดที่พันธะที่กำลังเกิดระหว่างสองโมเลกุล

### การเติมแบบเรดิคัล: ลูกศรหัวเบ็ด

```
title: Radical addition of Br• to propene
[Br:1] + [CH2:2]=[CH:3]C -> BrC[CH]C
move 1 ~> 1..2
move 2-3 ~> 1..2
move 2-3 ~> 3
```

![การเติมอะตอมโบรมีนแบบเรดิคัลกับโพรพีนที่วาดจาก MolScript ด้วยลูกศรหัวเบ็ดสามอัน: สองอันพบกันในพันธะ C–Br ใหม่ และอีกอันไปยังคาร์บอนที่กลายเป็นเรดิคัล](https://www.moldraw.com/blog/images/molscript/radical-addition.webp)

`~>` วาดลูกศรหัวเบ็ด สองอันที่สิ้นสุดที่ `1..2` พบกันตรงกลางพันธะใหม่

### เรโซแนนซ์: อีโนเลต

```
[CH2-:1][C:2](C)=[O:3] <-> C=C(C)[O-]
move :1 -> 1-2
move 2-3 -> 3
```

![รูปเรโซแนนซ์สองรูปของอีโนเลตที่วาดจาก MolScript พร้อมลูกศรเรโซแนนซ์หัวสองข้างและลูกศรโค้งสองอัน](https://www.moldraw.com/blog/images/molscript/enolate-resonance.webp)

`<->` คือลูกศรเรโซแนนซ์ ลูกศรโค้งแสดงว่ารูปหนึ่งกลายเป็นอีกรูปได้อย่างไร

## สร้างบน MolScript: ภาพทั้งภาพ

ภาพกลไกในแผง **Templates** ของ MolDraw (ปุ่มที่ด้านล่างของแถบเครื่องมือซ้าย) เขียนด้วย MolScript แต่ละขั้นของเอสเทอริฟิเคชันแบบ Fischer การเติมแบบแอลดอล และการเติม Grignard เป็นสคริปต์สั้น ๆ เทมเพลตเพิ่มแผง ป้ายขั้น วงกลมไฮไลต์ และหมายเหตุรอบ ๆ เพราะขั้นต่าง ๆ เป็นข้อความ ลูกศรทุกอันในทุกภาพจึงถูกตรวจด้วยวิธีเดียวกับตัวอย่างด้านบน

![เทมเพลตเอสเทอริฟิเคชันแบบ Fischer: ปฏิกิริยาโดยรวมที่ติดตามออกซิเจน กลไกลูกศรโค้งห้าขั้น ประเด็นสำคัญ และชุดอุปกรณ์ Dean–Stark](https://www.moldraw.com/templates/fischer-esterification.webp)

เทมเพลตเอสเทอริฟิเคชันแบบ Fischer: MolScript ห้าขั้นภายในภาพสี่แผง

## MolScript กับ chemfig

[chemfig](https://www.moldraw.com/th/blog/chemfig-latex-moldraw-guide.html) เป็นแพ็กเกจ LaTeX ที่นักเคมีส่วนใหญ่ใช้จัดพิมพ์โครงสร้างและกลไก ทำงานได้ยอดเยี่ยมในสิ่งที่ออกแบบมา และ MolScript ไม่ได้มีไว้แทนที่ใน LaTeX ทั้งสองอธิบายสิ่งที่ต่างกัน:

|  | **chemfig** | **MolScript** |
| --- | --- | --- |
| สิ่งที่คุณอธิบาย | ภาพวาด: มุมและความยาวของพันธะแต่ละพันธะ แล้วจุดยึด ระยะเลื่อน และความโค้งของลูกศรแต่ละอัน | เคมี: สปีชีส์เป็น SMILES และอิเล็กตรอนใดเคลื่อนไปที่ไหน |
| การจัดวาง | ทำเอง ทีละโครงสร้างและทีละแผนภาพ | อัตโนมัติ: โครงสร้าง แถว สภาวะ และคำบรรยาย |
| ลูกศรโค้ง | เส้นทาง TikZ ระหว่างจุดที่ตั้งชื่อไว้ ตำแหน่งถูกกำหนดในการรัน LaTeX รอบที่สอง | บรรทัด `move` หนึ่งบรรทัดระหว่างหมายเลขแมป วางและประเมินตามกฎการวาด |
| ข้อผิดพลาด | ปรากฏเป็น PDF ที่ดูผิด | รายงานพร้อมหมายเลขบรรทัด: หมายเลขแมปที่หายไป จุดเริ่มที่ไม่มีอิเล็กตรอน พันธะที่ไม่มีอยู่ |
| ผลลัพธ์ | ผลลัพธ์ที่จัดพิมพ์ในเอกสาร | วัตถุบนพื้นที่วาดที่แก้ไขได้ พร้อมการส่งออกเป็นภาพ เวกเตอร์ และ chemfig |
| เหมาะสำหรับ | ควบคุมการจัดพิมพ์อย่างละเอียดภายในเอกสาร LaTeX | ได้กลไกที่ถูกต้องและเรียบร้อยอย่างรวดเร็ว ไม่ว่าจะเขียนเองหรือจากผู้ช่วย AI |

ทั้งสองทำงานร่วมกัน: วาดด้วย MolScript แล้วเลือก **Download → chemfig (.tex)** เพื่อรับโค้ด chemfig สำหรับเอกสารของคุณ [ตัวอย่างกลไก chemfig](https://www.moldraw.com/th/blog/chemfig-mechanism-samples.html) แสดงหน้าตาของโค้ดนั้น

## ทำไมต้องเป็นข้อความ: MolScript และผู้ช่วย AI

MolScript ออกแบบมาให้โมเดลภาษาวาดกลไกได้โดยไม่ต้องจัดการพิกัดเลย:

- **โมเดลเขียน SMILES ได้ดีอยู่แล้ว** ทุกสปีชีส์จึงอยู่ในสัญกรณ์ที่โมเดลรู้จัก
- **แมปอะตอมทำให้ลูกศรไม่กำกวม** "จากอิเล็กตรอนคู่โดดเดี่ยวบนอะตอม 1 ไปยังพันธะที่กำลังเกิดระหว่าง 1 และ 2" วางผิดที่ไม่ได้ แบบที่ "ลูกศรจากออกซิเจนไปยังคาร์บอน" วางผิดได้
- **ข้อผิดพลาดนำไปแก้ได้** โมเดลที่ได้รับ `line 3: no atom is tagged :9` แก้บรรทัด 3 แล้วลองใหม่ได้
- **เรขาคณิตไม่ใช่งานของโมเดล** ความโค้ง ช่องว่าง และระยะเว้นถูกกำหนดและตรวจโดยเอนจิน ซึ่งเป็นจุดที่โมเดลอ่อนที่สุด

แชต AI ของ MolDraw ทำงานแบบนี้อยู่แล้ว: ขอ "กลไกของการเติมแบบแอลดอล" แล้วมันจะเขียน MolScript อยู่เบื้องหลัง MolScript ยังถูกจัดเป็นแพ็กเกจ**AI skill**: โฟลเดอร์เดียวที่มีข้อมูลอ้างอิงภาษา กฎที่จับข้อผิดพลาดส่วนใหญ่ ตัวอย่างที่ตรวจแล้ว 41 ตัวอย่าง และตัวตรวจแบบสแตนด์อโลนขนาดเล็ก ขั้นตอนที่สอนผู้ช่วยคือวางแผนสารมัธยันตร์ เขียนสคริปต์ รันตัวตรวจ แก้ทุกปัญหาที่รายงาน แล้วจึงตอบ กลไกจึงถูกตรวจทีละอิเล็กตรอนก่อนที่คุณจะเห็น

เพื่อวัดว่าได้ผลดีเพียงใด มี**ชุดประเมิน**ของคำขอกลไก 41 รายการ ("show the E1 deprotonation of the tert-butyl cation", "draw a Pd cross-coupling cycle with oxidation states") แต่ละรายการมีสคริปต์อ้างอิง คำตอบได้สี่คะแนน: คอมไพล์ได้ อิเล็กตรอนสมดุล จบที่ผลิตภัณฑ์ที่ถูกต้อง และลูกศรโค้งทุกอันผ่านกฎการวาด สคริปต์อ้างอิงได้คะแนน 100%

## แผนงาน: จากฟีเจอร์ของ MolDraw สู่เฟรมเวิร์กแบบเปิด

แผนคือเผยแพร่ MolScript คอมไพเลอร์ และเอนจินแผนภาพและลูกศรเป็น**เฟรมเวิร์กโอเพนซอร์ส**ที่แอปพื้นที่วาดใดก็ใช้วาดปฏิกิริยาและกลไกได้ ด้วยความน่าเชื่อถือแบบภาษาโปรแกรม: มีข้อกำหนดเป็นลายลักษณ์อักษร ผลลัพธ์คงที่ และข้อผิดพลาดที่นำไปแก้ได้ ต่อไปนี้คือสิ่งที่อยู่ระหว่างวันนี้กับการเผยแพร่นั้น

### ภาษา

| สปีชีส์ ตัวดำเนินการ สภาวะ คำบรรยาย บรรทัดต่อเนื่อง | เสร็จแล้ว |
| --- | --- |
| ลูกศรสองอิเล็กตรอนและลูกศรหัวเบ็ดจากอิเล็กตรอนคู่โดดเดี่ยว ประจุ เรดิคัล และพันธะ | เสร็จแล้ว |
| ข้อกำหนดที่มีเวอร์ชัน (MolScript 1, `molscript: 1`) พร้อมไวยากรณ์ทางการและชุดทดสอบความสอดคล้อง | เสร็จแล้ว |
| สปีชีส์ที่ตั้งชื่อและนำกลับมาใช้ได้: `let A = …` แล้วใช้ `$A` ในขั้นถัดไป | เสร็จแล้ว |
| คำแนะนำการวางแนว: `{rotate=90}`, `{flip}`, `{align=3}` | เสร็จแล้ว |
| สถานะทรานซิชัน (`{ts}`, พันธะบางส่วนด้วย `~`), δ+ / δ−, วงเล็บ | เสร็จแล้ว |
| ไฮไลต์ (`{highlight=2/3-4:blue}`) หมายเลขสารและหมายเลขขั้น (`number: both`) | เสร็จแล้ว |
| รีเอเจนต์ที่วาดเป็นโครงสร้างเหนือลูกศร คำย่อ (Ph, Ts, Boc) และหมู่ R | เสร็จแล้ว |
| วัฏจักรตัวเร่งที่ปิดวงในตัว พร้อมป้ายที่อ่านง่ายบนทุกส่วนโค้ง | เสร็จแล้ว |
| ลูกศรโค้งภายในวัฏจักร พันธะโลหะ–ลิแกนด์ (`{dative=1-2}`) และเลขออกซิเดชัน (`{ox=1:II}`) | เสร็จแล้ว |

### ความถูกต้อง

| ป้ายมีอยู่จริง จุดเริ่มมีอิเล็กตรอน ลูกศรทุกอันที่วาดผ่านกฎเรขาคณิต | เสร็จแล้ว |
| --- | --- |
| การนับอิเล็กตรอน: หาผลิตภัณฑ์ที่ลูกศรบ่งชี้แล้วเปรียบเทียบกับผลิตภัณฑ์ที่เขียนไว้ | เสร็จแล้ว |
| สมดุลประจุและอะตอมของแต่ละขั้น การตรวจออกเตต ลูกศรหัวเบ็ดที่ไม่มีคู่ และเรโซแนนซ์ (พันธะ σ) | เสร็จแล้ว |
| จัดการไฮโดรเจนได้ง่ายขึ้น: `h2` หมายถึงไฮโดรเจนบนอะตอม 2 | เสร็จแล้ว |
| ใช้หมายเลขแมปน้อยลง: ธาตุที่มีตัวเดียวในขั้นนั้นก็เพียงพอ (`move C-Br -> Br`) | เสร็จแล้ว |

### การจัดวาง

| แถวจัดเรียงตามความกว้างจริง สภาวะและคำบรรยายไม่ซ้อนกัน | เสร็จแล้ว |
| --- | --- |
| ตัดแถวอย่างสมดุล (3 + 2 ไม่ใช่ 4 + 1) และตัดตามความกว้าง (`width:`) | เสร็จแล้ว |
| ตัวเชื่อมระหว่างแถวที่สั้นลง: `wrap: snake` ให้แถวถัดไปย้อนกลับพร้อมลูกศรสั้นชี้ลง | เสร็จแล้ว |
| การวางแบบตาราง (`layout: grid`) คอลัมน์ตรงกันทุกแถว | เสร็จแล้ว |

### เฟรมเวิร์ก

| คอมไพเลอร์และตัวตรวจเป็นแพ็กเกจแยก ไม่ขึ้นกับแอป MolDraw | เสร็จแล้ว |
| --- | --- |
| รูปแบบแผนภาพที่คงที่และมีเอกสาร ระหว่างคอมไพเลอร์กับตัวเรนเดอร์ใดก็ได้ | เสร็จแล้ว |
| ผลลัพธ์สำหรับพื้นที่วาด SVG และ PNG ตัวส่งออกสำหรับ chemfig และ JSON | เสร็จแล้ว |
| การส่งออก chemfig ของวัฏจักรตัวเร่งพร้อมส่วนโค้งจริง (และนำเข้ากลับได้) | เสร็จแล้ว |
| เครื่องมือบรรทัดคำสั่ง: ใส่สคริปต์ ได้รายงานการตรวจ ภาพ หรือไฟล์ chemfig ออกมา | เสร็จแล้ว |
| การจัดวางที่มีเวอร์ชัน เพื่อให้สคริปต์วาดออกมาเหมือนเดิมหลังอัปเกรด | เสร็จแล้ว |
| การรองรับในตัวแก้ไข: ไฮไลต์และแสดงปัญหาขณะพิมพ์ (แท็บ MolScript ใน Templates) | เสร็จแล้ว |
| การเติมหมายเลขแมป ตัวเลือก และคีย์เวิร์ดอัตโนมัติในตัวแก้ไข (Tab เลือกรายการแรก) | เสร็จแล้ว |
| [แกลเลอรีกลไกอ้างอิง](https://www.moldraw.com/th/blog/molscript-gallery.html)สาธารณะ ที่ตรวจทุกแบบโดยอัตโนมัติ | เสร็จแล้ว |
| แกลเลอรีมีกลไกที่ตรวจแล้ว 41 แบบ จะขยายให้ถึงหลายร้อยแบบ | ถัดไป |
| เผยแพร่แพ็กเกจ skill และข้อกำหนดเป็นโอเพนซอร์ส | ถัดไป |

### AI skill

| ใช้โดยแชต AI ของ MolDraw โดยส่งข้อผิดพลาดพร้อมหมายเลขบรรทัดกลับไปให้โมเดล | เสร็จแล้ว |
| --- | --- |
| skill แบบแพ็กเกจ: ข้อมูลอ้างอิง กฎ ตัวอย่าง และขั้นตรวจสอบที่ผู้ช่วยรันได้ก่อนตอบ | เสร็จแล้ว |
| ชุดประเมินของคำสั่งกลไก 41 รายการ ให้คะแนนตามความถูกต้องทางเคมีและความเรียบร้อยของลูกศร | เสร็จแล้ว |
| เผยแพร่คะแนนของโมเดล AI หลัก ๆ บนชุดประเมิน | ถัดไป |

ถ้าคุณสอน เขียนบทความ หรือพัฒนาซอฟต์แวร์เคมี และต้องการมีส่วนกำหนดทิศทาง บอกเราผ่าน **Request feature** ใน MolDraw

## ลองใช้

1. เปิด [MolDraw](https://www.moldraw.com/th/) และแชต AI แล้วขอกลไก เช่น "draw the E2 mechanism of 2-bromopropane with hydroxide" แชตจะเขียน MolScript แล้ววาดให้
2. หรือเปิด **Templates** ที่ด้านล่างของแถบเครื่องมือซ้าย แล้วเพิ่มภาพเอสเทอริฟิเคชันแบบ Fischer แอลดอล หรือ Grignard หรือเขียนสคริปต์ของคุณเองในแท็บ **MolScript** ซึ่งไฮไลต์สคริปต์ แสดงปัญหาขณะพิมพ์ และวาดบนพื้นที่วาด
3. ลาก ปรับสไตล์ หรือต่อเติมผลลัพธ์ได้เหมือนภาพวาดทั่วไป แล้วดาวน์โหลดเป็นภาพหรือเป็น chemfig

## คำถามและคำตอบ

### MolScript คืออะไร

MolScript เป็นภาษาข้อความสั้น ๆ สำหรับแผนภาพปฏิกิริยาและกลไกลูกศรโค้ง สปีชีส์เขียนเป็น SMILES เชื่อมด้วย `+`, `->`, `<->` หรือ `<=>` และลูกศรโค้งแต่ละอันคือบรรทัด `move` หนึ่งบรรทัดระหว่างหมายเลขแมปอะตอม MolDraw วาดโครงสร้าง สภาวะ อิเล็กตรอนคู่โดดเดี่ยว ประจุ และลูกศร และผลลัพธ์ยังแก้ไขได้บนพื้นที่วาด

### วาดลูกศรโค้งใน MolScript อย่างไร

ติดหมายเลขแมปอะตอมให้อะตอมที่ลูกศรแตะใน SMILES เช่น `[OH-:1]` และ `[CH3:2][Br:3]` แล้วเขียน `move :1 -> 1..2` สำหรับอิเล็กตรอนคู่โดดเดี่ยวของอะตอม 1 ที่สร้างพันธะกับอะตอม 2 และ `move 2-3 -> 3` สำหรับพันธะ C–Br ที่แตกออกไปอยู่บนโบรมีน

### วาดลูกศรหัวเบ็ด (หนึ่งอิเล็กตรอน) อย่างไร

ใช้ `~>` แทน `->`: `move 1-2 ~> 1` ส่งอิเล็กตรอนหนึ่งตัวของพันธะระหว่างอะตอม 1 และ 2 ไปที่อะตอม 1 ลูกศรหัวเบ็ดสองอันที่สิ้นสุดที่พันธะที่กำลังเกิดเดียวกัน (`n..m`) จะมาพบกันตรงกลางพันธะนั้น

### MolScript ดีกว่า chemfig หรือไม่

ทั้งสองแก้ปัญหาต่างกันและทำงานร่วมกันได้ chemfig เป็นแพ็กเกจ LaTeX ที่คุณวางพันธะและลูกศรทุกอันเองภายในเอกสาร ส่วน MolScript อธิบายเคมีแล้วปล่อยการจัดวางและเรขาคณิตของลูกศรให้ MolDraw ซึ่งตรวจลูกศรทุกอัน ภาพวาด MolScript ใดก็ดาวน์โหลดเป็นโค้ด chemfig สำหรับเอกสาร LaTeX ได้

### ผู้ช่วย AI เขียน MolScript ได้ไหม

ได้ แชต AI ของ MolDraw วาดกลไกด้วยการเขียน MolScript เพราะโมเดลภาษาเขียน SMILES ได้ดี และแมปอะตอมทำให้ปลายลูกศรทุกอันไม่กำกวม ข้อผิดพลาดจะส่งกลับพร้อมหมายเลขบรรทัดเพื่อให้โมเดลแก้ไขได้ มีแผนจะทำ AI skill แบบแพ็กเกจเพื่อให้ผู้ช่วยอื่นใช้ได้ด้วย

### MolScript จะเป็นโอเพนซอร์สไหม

นั่นคือแผน: ภาษา คอมไพเลอร์ และเอนจินแผนภาพและลูกศรจะเผยแพร่เป็นเฟรมเวิร์กแบบเปิดที่แอปพื้นที่วาดอื่นใช้วาดปฏิกิริยาและกลไกได้ แผนงานระบุสิ่งที่ต้องทำก่อน

## คู่มือที่เกี่ยวข้อง

[แกลเลอรี MolScript: กลไกที่ตรวจแล้ว 41 แบบ](https://www.moldraw.com/th/blog/molscript-gallery.html) [ตัวอย่างกลไกด้วย chemfig](https://www.moldraw.com/th/blog/chemfig-mechanism-samples.html) [chemfig และ MolDraw: วาง แก้ไข ส่งออก](https://www.moldraw.com/th/blog/chemfig-latex-moldraw-guide.html) [เครื่องมือวาดปฏิกิริยาเคมี](https://www.moldraw.com/th/tools/free-chem-tools/chemical-reaction-drawer.html) [เพิ่มอิเล็กตรอนคู่โดดเดี่ยว](https://www.moldraw.com/th/blog/how-to-add-lone-pair-in-moldraw.html) [บทความทั้งหมด](https://www.moldraw.com/th/blog/)

อัปเดตล่าสุด: 17 ตุลาคม 2026
