home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 13 / 13.iso / p / p230 / 1.ddi / ACADLIB.DOC < prev    next >
Encoding:
Text File  |  1988-02-09  |  30.1 KB  |  1,243 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.         ú┴ ú├ ú┴ ú─ ú«ú╠ ú╔ ú┬       ╙├ ╗º ╩╓ ▓ß
  11.  
  12.  
  13.  
  14.               ░µ  ▒╛:    1.0
  15.  
  16.  
  17.  
  18.  
  19.  
  20.     ------ ╓▒╜╙╔·│╔ú┴ú⌡ú⌠ú∩ú├ú┴ú─╡─ú─ú╫ú╟═╝╨╬╬─╝■╡─ ------
  21.  
  22.  
  23.  
  24.               ╕▀   ╝╢    ╙∩   ╤╘   ┐Γ
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.            ╓╨╣·┐╞╤º╘║╧ú═√╕▀╝╢╡τ─╘╝╝╩⌡╣½╦╛
  44.  
  45.               ╥╗╛┼░╦╞▀─Ω╩«╢■╘┬
  46.  
  47.  
  48.         ╡┌╥╗╒┬        ╨≥    ╤╘
  49.  
  50.  
  51.         ú┴ú⌡ú⌠ú∩ú├ú┴ú─╩╟├└╣·ú┴ú⌡ú⌠ú∩úΣúσú≤úδ╣½╦╛┐¬╖ó╡─═¿╙├╝╞╦π╗·╕¿╓·╗µ═╝
  52.     ╚φ╝■ú¼─┐╟░╦ⁿ╥╤│╔╬¬╣·─┌═Γ╬ó╗·╔╧╙ª╙├╫ε╣π╖║╡─ú├ú┴ú─╚φ╝■íú╙ª╙├┴∞╙≥░ⁿ└¿ú║
  53.     ╡τ╫╙íó╗·╨╡íó╜¿╓■íó╗»╣ñíó╣ñ│╠íó╖■╫░íó╥╒╩⌡╡╚íú╦ⁿ╓«╦∙╥╘╡├╡╜╚τ┤╦╣π╖║╡─╙ª
  54.     ╙├ú¼╩╟╥≥╬¬╞Σ╧╡═│╡─┐¬╖┼╨╘ú¼╝░╞Σ╠ß╣⌐╡─╕≈╓╓╢■┤╬┐¬╖ó╡─╩╓╢╬ú║╙├╗º┐╔╥╘╫╘╝║
  55.     ▒α╓╞╕≈╓╓╫¿╥╡╡─╫¿╙├╞┴─╗╝░╩²╫╓╗»╥╟▓╦╡Ñú╗╩╣╙├├ⁿ┴ε╬─╝■ú¼╙├╞Σ╗∙▒╛├ⁿ┴ε╫Θ║╧
  56.     │╔╕▀╝╢╡─├ⁿ┴εú╗╠ß╣⌐╨φ╢α╓╓═╝╨╬╩²╛▌╜╗╗╗╬─╝■ú║ú─ú╪ú╞ú¼ú─ú╪ú┬ú¼ú╔ú╟ú┼ú╙ú╗
  57.     ú┴ú⌡ú⌠ú∩ú├ú┴ú──┌▓┐╘╦╨╨╡─▒α│╠╙∩╤╘ú┴ú⌡ú⌠ú∩ú╠úΘú≤ú≡ú╗╥╘╝░═¿╣²ú≤úΦúσú∞ú∞
  58.     ├ⁿ┴ε╓▒╜╙╡≈╙├═Γ▓┐╡─╓┤╨╨│╠╨≥íú╒Γ╨⌐╩╓╢╬╬▐╥╔╩╟╓º│╓┴╦╙├╗º╜°╨╨╕≈╫¿╥╡╡─╢■┤╬
  59.     ┐¬╖óú¼╚╗╢°╗╣╙╨║▄┤≤╡─╛╓╧▐╨╘ú║▒╪╨δ═¿╣²╫¬╗╗▓┼─▄░╤═╝╨╬╜╗╗╗╬─╝■▒Σ│╔┐╔╙├╡─
  60.     ═╝╨╬╬─╝■ú╗├ⁿ┴ε╬─╝■╓┤╨╨╦┘╢╚┬²ú¼╟╥╚▒╔┘╤¡╗╖╙δ╖╓╓ºú╗ú┴ú⌡ú⌠ú∩ú╠úΘú≤ú≡╙∩╤╘
  61.     ╩▄╡╜─┌┤µ╡─╧▐╓╞ú¼▓ó╙╔╙┌╩╟╜Γ╩═╓┤╨╨ú¼▓╗─▄▒α╓╞┤≤╨═íó╕┤╘╙╢°╨º┬╩╕▀╡─│╠╨≥ú¼
  62.     ╢°╟╥╫≈╬¬╙∩╤╘╥▓▓╗╚τ╞Σ╦ⁿ╕▀╝╢▒α│╠╙∩╤╘╥╫╙┌╒╞╬╒íú╬¬╗║╜Γ╔╧╩÷├¼╢▄ú¼╬╥╣½╦╛╢╘
  63.     ú┴ú⌡ú⌠ú∩ú├ú┴ú─╡─ú─ú╫ú╟═╝╨╬╬─╝■╜°╨╨┴╦╧╡═│╡╪╖╓╬÷ú¼┐¬╖ó│÷┐╔╣⌐╕▀╝╢╙∩╤╘╓▒
  64.     ╜╙╡≈╙├╡─ú┴ú⌡ú⌠ú∩ú├ú┴ú─╜╙┐┌│╠╨≥┐Γú║ú┴ú├ú┴ú─ú«ú╠ú╔ú┬íú╦ⁿ┐╔╩╣─π╙├╕▀╝╢╙∩
  65.     ╤╘╙├└α╦╞╙┌ú┴ú⌡ú⌠ú∩ú├ú┴ú─╡─═╝╨╬▒α╝¡├ⁿ┴ε╡─║»╩²╓▒╜╙╔·│╔ú─ú╫ú╟═╝╨╬╬─╝■íú
  66.     ╞Σ║├┤ª╘┌╙┌┐╔╥╘╓▒╜╙╘┌╞┴─╗╔╧╢╘╞Σ╜°╨╨▒α╝¡íó╨▐╕─íó▓σ╚δ(╡≈╙├)ú¼╓▒╜╙╙├╗µ═╝
  67.     ╗·╝░┤≥╙í╗·╩Σ│÷íú╘┌═╝╨╬▒α╝¡╫┤╠¼╧┬ú¼┐╔╓▒╜╙╔·│╔─π╦∙╨Φ╥¬╡─═╝╨╬┐Θú¼╢°╬▐╨Φ
  68.     ╚╬║╬╫¬╗╗╣²│╠íú╦ⁿ╗╣╩╟▒φ╩╛ú┴ú⌡ú⌠ú∩ú├ú┴ú─═╝╨╬╡─╫ε╜⌠┤╒╡─╩²╛▌╬─╝■ú¼┤≤┤≤╜┌
  69.     ╩í─π╡─┤┼┼╠┐╒╝Σíú╙╔╙┌ú┴ú├ú┴ú─ú«ú╠ú╔ú┬╩╟╙╔╕▀╝╢╙∩╤╘ú├ú¼ú╞ú∩ú≥ú⌠ú≥úßúε╡╚
  70.     ╡≈╙├ú¼╥≥┤╦╥╗░π╙├╗º╥╫╙┌╒╞╬╒ú¼╩╣╙├╖╜▒πíú╦ⁿ╠╪▒≡╩╩║╧╙├╙┌╔·│╔╕≈╓╓╫¿╙├íó╕┤
  71.     ╘╙╝░╚²╬¼╡─═╝╨╬┐Θú¼┐╔╤╕╦┘╜½╣ñ│╠╩²╛▌╫¬╗╗│╔╩╡╙├╡─═╝╨╬íú│╔╬¬╙├╗º╢■┤╬┐¬╖ó
  72.     ╡─╙╨╨º╣ñ╛▀íú
  73.  
  74.  
  75.  
  76.         ╡┌╢■╒┬        ACAD.LIB ╜Θ ╔▄
  77.  
  78. 2.1 ╙▓╝■╗╖╛│:
  79.  
  80.         ╙╔ ACAD.LIB ╔·│╔╡─╚φ╝■┐╔╘╦╨╨╙┌ IBM-PC/XT, AT ╝░╞Σ╝µ╚▌╗·. ╫ε║├╥¬╙╨ 10
  81.     ╒╫╗≥ 10 ╒╫╥╘╔╧╡─┤≤╚▌┴┐╙▓┼╠. ─┌┤µ╬¬ 512K ╗≥ 640K. ╞Σ╦ⁿ╔Φ▒╕┐╔░┤ AutoCAD ╡─
  82.     ╥¬╟≤╤í╙├.
  83.  
  84.         ╘┌─│╨⌐╟Θ┐÷╧┬, ╝┤╩╣├╗╙╨═╝╨╬╝α╩╙╞≈, ╥▓┐╔╥╘└√╙├ ACAD.LIB ╡─│╠╨≥╔·│╔═╝╨╬
  85.     ╬─╝■, ╚╗║≤╙├╗µ═╝╗·╩Σ│÷.
  86.  
  87.  
  88. 2.2 ╚φ╝■╗╖╛│:
  89.  
  90.         ACAD.LIB ╩╟╘┌ MS.DOS ╧╡═│╧┬, ╙├ Microsoft C 4.0 ░µ╡─ C ╙∩╤╘┐¬╖ó╡─.
  91.     ╥¬╟≤╡─╗╖╛│╚τ╧┬:
  92.  
  93.     1.▓┘╫≈╧╡═│▒╪╨δ╬¬ MS-DOS (╗≥ PC-DOS) 2.0 ░µ╗≥╕ⁿ╕▀░µ▒╛.
  94.  
  95.     2.▓╔╙├╡─╕▀╝╢╙∩╤╘▒╪╨δ╬¬╥╘╧┬╝╕╓╓:
  96.  
  97.         a.Microsoft Fortran 3.3 ░µ╗≥╕ⁿ╕▀░µ.
  98.         b.Microsoft Pascal 3.3 ░µ╗≥╕ⁿ╕▀░µ.
  99.         c.Microsoft C 4.0 ░µ╗≥╕ⁿ╕▀░µ.
  100.         d.┐╔╥╘╙δMicrosoft C 4.0 ░µ│╠╨≥┴¼╜╙╡─╞Σ╦ⁿ╚╬║╬╙∩╤╘.
  101.  
  102.     3.link │╠╨≥▒╪╨δ▓╔╙├ Microsoft link 3.51 ░µ╗≥╕ⁿ╕▀░µ▒╛.
  103.  
  104.     4.╙╔ ACAD.LIB │╠╨≥┐Γ╔·│╔╡─ DWG═╝╨╬╬─╝■╡─░µ▒╛║┼╙δ▓╔╙├╡─╤∙░σ═╝╨╬╬─╝■╙╨╣╪.
  105.  
  106.     5.╘┌═╝╨╬╬─╝■╔·│╔╩▒, ╨Φ╘┌┼╠╔╧═¼╩▒┤≥┐¬8-10╕÷╬─╝■. ╥≥┤╦▒╪╨δ╘┌╧╡═│╡─┼Σ╓├╬─╝■
  107.       ╓╨, ╜½┐╔═¼╩▒┤≥┐¬╡─╬─╝■╕÷╩²╢¿╬¬20╕÷, ╝┤files=20.
  108.  
  109.     6.╙╔╙┌ ACAD.LIB ╓╨╡─║»╩²╧α╡▒╙┌ AtuoCAD ═╝╨╬▒α╝¡╓╨╡──│╠⌡├ⁿ┴ε (│² OPNDWG
  110.       ╙δ clodwg ═Γ).  ╥≥┤╦╙╨▒╪╥¬╩∞╧ñ AutoCAD ╡─╩╣╙├╝░╞Σ╣ª─▄.
  111.  
  112.     7.╦∙╙╨╛▀╙╨╢α╓╓─┌┤µ─ú╩╜╡─╙∩╤╘╙δ ACAD.LIB ╧α┴¼, ╢╝▒╪╨δ▓╔╙├┤≤╡──┌┤µ─ú╩╜.
  113.  
  114. 2.3 ┐Γ║»╩²╟σ╡Ñ
  115.  
  116.     1.  ARC     ╗µ╘▓╗í
  117.  
  118.     2.  ATTDEF    ╩⌠╨╘╢¿╥σ
  119.  
  120.     3.  BLOCK    ╔·│╔═╝╨╬┐Θ
  121.  
  122.     4.  CIRCLE    ╗µ╘▓
  123.  
  124.     5.  CLODWG    ╣╪▒╒═╝╨╬╬─╝■
  125.  
  126.     6.  DOUCIR    ╗µ╘▓╗╖╗≥╩╡╨─╘▓
  127.  
  128.     7.  FACE3D    ╗µ╚²╬¼├µ
  129.  
  130.     8.  INSERT    ═╝╨╬┐Θ▓σ╚δ
  131.  
  132.     9.  LAYER    ╔Φ╡▒╟░▓π, ╗≥╤í╥╗╕÷╨┬╡─╡▒╟░▓π
  133.  
  134.        10.  LINE    ╗µ╓▒╧▀
  135.  
  136.        11.  LINE3D    ╗µ╚²╬¼╓▒╧▀
  137.  
  138.        12.  OPNDWG    ┤≥┐¬═╝╨╬╬─╝■
  139.  
  140.        13.  PLINE    ╗µ╢¿┐φ╕┤║╧╧▀
  141.  
  142.        14.  POINT    ╗µ╡π
  143.  
  144.        15.  POLINE    ╗µ▒Σ┐φ╕┤║╧╧▀
  145.  
  146.        16.  SOLID    ╗µ╠ε│Σ╩╡╠σ
  147.  
  148.        17.  STYLE    ╔Φ╡▒╟░╫╓╠σ, ╗≥╔·│╔╥╗╕÷╨┬╡─╡▒╟░╫╓╠σ
  149.  
  150.        18.  TEXT    ▒Ω╫ó╬─╫╓
  151.  
  152.        19.  TRACE    ╗µ┤°┐φ╢╚╓▒╧▀
  153.  
  154.        20.  WBLOCK    ╔·│╔═╝╨╬┐Θ, ▓ó╨╬│╔┤┼┼╠╬─╝■
  155.  
  156.  
  157.  
  158. 2.4 ╓º│╓╡─╕▀╝╢╙∩╤╘╝░┴¼╜╙╖╜╖¿
  159.  
  160.         ACAD.LIB ╩╟╙├ Microsoft C 4.0 ░µ╩╡╧╓╡─, ▒α╥δ▓╔╙├┴╦┤≤─ú╩╜. ╥≥┤╦╚╬║╬┐╔
  161.     ╥╘╙δ MS C 4.0 ░µ┴¼╜╙╡─╙∩╤╘╢╝┐╔╡≈╙├ ACAD.LIB ╓╨╡─┐Γ║»╩². ╧┬├µ╬╥├╟╕°│÷╙δ╚²
  162.     ╕÷▒Ω╫╝░µ▒╛╡─╕▀╝╢╙∩╤╘╡─┴¼╜╙╡─╖╜╖¿. ╘┌┤╦╥╘═Γ╡─╚╬║╬╞Σ╦ⁿ▒α│╠╙∩╤╘,    ╓╗╥¬─▄╙δ
  163.     MS C 4.0░µ┴¼╜╙, ▓╬╒╒╞Σ╦╡├≈╩Θ, ╝┤┐╔╡≈╙├ ACAD.LIB ┐Γ║»╩².
  164.  
  165.     ╥╗. C ╙∩╤╘:
  166.  
  167.         C ▒α╥δ│╠╨≥▒╪╨δ▓╔╙├ Microsoft C 4.0 ░µ, ╗≥╕ⁿ╕▀░µ▒╛.    ▒α╥δ─ú╩╜▒╪╨δ╤í┤≤
  168.     ╨═, ╗≥╛▐╨═(╝┤╙├▒α╥δ╤í╧ε /AL, /AH). ╘┌╬╥├╟╠ß╣⌐╡─ ACAD.LIB╡─ C  ╙∩╤╘░µ▒╛┼╠
  169.     ╔╧, ╣▓╙╨╥╘╧┬ 5 ╕÷╬─╝■.
  170.  
  171.         1. ACAD.LIB ------ ╓▒╜╙╔·│╔AutoCAD DWG═╝╨╬╬─╝■╡─║»╩²┐Γ.
  172.         2. ALIBC.H ------- ║»╩²╦╡├≈═╖╬─╝■, ╦╡├≈╦∙╙╨┐Γ║»╩²╡─└α╨═, ╝░▓╬╩²└α╨═.
  173.         3. ACAD.DWG ------ ╗∙╙┌AutoCAD 2.5░µ╡─╤∙░σ═╝╨╬╬─╝■.
  174.         4. HCAD.DWG ------ ╗∙╙┌HCAD 2.5░µ╡─╤∙░σ═╝╨╬╬─╝■.
  175.         5. DEMO.C -------- ACAD.LIB┐Γ║»╩²╡≈╙├╩╡└².
  176.         6. ACADLIB.DOC --- ▒╛╩╓▓ß.
  177.  
  178.         ╧┬├µ╥╘ DEMO │╠╨≥╬¬└², ╕°│÷▒α╥δ, ┴¼╜╙╣²│╠:
  179.  
  180.         1. ▒α╥δ:
  181.             MSC /AL demo;
  182.         2. ┴¼╜╙:
  183.             link /STACK:8000 demo,,,ACAD
  184.  
  185.     ╢■. Fortran ╙∩╤╘:
  186.  
  187.         Fortran▒α╥δ│╠╨≥▒╪╨δ▓╔╙├ Microsoft Fortran 3.3 ░µ╗≥╕ⁿ╕▀░µ▒╛. ╘┌╬╥├╟╠ß
  188.     ╣⌐╡─ ACAD.LIB ╡─ Fortran ░µ▒╛┼╠╔╧, ╣▓╙╨╥╘╧┬ 8╕÷╬─╝■:
  189.  
  190.         1. ACAD.LIB ------ ╓▒╜╙╔·│╔ AutoCAD DWG ═╝╨╬╬─╝■╡─║»╩²┐Γ.
  191.         2. ALIBF.H ------- ║»╩²╦╡├≈═╖╬─╝■, ╦╡├≈╦∙╙╨┐Γ║»╩²╡─└α╨═╝░╞Σ▓╬╩²└α╨═.
  192.         3. ACAD.DWG ------ ╗∙╙┌ AutoCAD 2.5 ░µ╡─╤∙░σ═╝╬─╝■.
  193.         4. ACAD.DWG ------ ╗∙╙┌ HCAD 2.5 ░µ╡─╤∙░σ═╝╬─╝■.
  194.         5. DEMO.FOR ------ ACAD.LIB ┐Γ║»╩²╡≈╙├╩╡└².
  195.         6. ACADLIB.DOC --- ▒╛╩╓▓ß.
  196.         7. LIBH.LIB ------|
  197.         8. LLIBC.LIB -----|
  198.         9. LLIBFP.LIB ----|- C ╙∩╤╘▒Ω╫╝┐Γ║»╩²
  199.        10. LLIBFA.LIB ----|
  200.        11. EM.LIB --------|
  201.  
  202.         ╧┬├µ╥╘ DEMO.FOR │╠╨≥╬¬└², ╕°│÷▒α╥δ, ┴¼╜╙╣²│╠:
  203.  
  204.         1. ▒α╥δ:
  205.             FOR1    DEMO
  206.             PAS2
  207.         2. ┴¼╜╙:
  208.             LINK DEMO,,,ACAD
  209.  
  210.     ╫ó╥Γ:    ╦∙╙╨╫╓╖√┤«▒╪╨δ╙╨C ╩⌠╨╘, ╝┤╫╓╖√┤«║≤╕·╥╗╫╓─╕ C. (└²╚τ`ACAD.DWG'C).
  211.         ╦∙╙╨╥¬╟≤╩²╫Θ╫≈╬¬▓╬╩²╡─║»╩², ╘┌╫≈▓╬╩²╠µ╗╗╩▒, ▒╪╨δ╙├╞Σ╡┌╥╗╕÷╘¬╦╪╫≈
  212.         ╬¬▓╬╩². (└²╚τ PACE3D(XX[1], YY[1], ZZ[1], 6)).
  213.  
  214.  
  215.  
  216.     ╚². PASCAL ╙∩╤╘:
  217.  
  218.         PASCAL ▒α╥δ│╠╨≥▒╪╨δ▓╔╙├ Microsoft Fortran 3.3 ░µ╗≥╕ⁿ╕▀░µ▒╛. ╘┌╬╥├╟╠ß
  219.     ╣⌐╡─ ACAD.LIB ╡─ PASCAL ░µ▒╛┼╠╔╧, ╣▓╙╨╥╘╧┬ 8 ╕÷╬─╝■:
  220.  
  221.         1. ACAD.LIB ------ ╓▒╜╙╔·│╔AutoCAD DWG═╝╨╬╬─╝■╡─║»╩²┐Γ.
  222.         2. ALIBP.H ------- ║»╩²╦╡├≈═╖╬─╝■, ╦╡├≈╦∙╙╨┐Γ║»╩²╡─└α╨═╝░╞Σ▓╬╩²└α╨═.
  223.         3. ACAD.DWG ------ ╗∙╙┌AutoCAD 2.5░µ╡─╤∙░σ═╝╬─╝■.
  224.         4. DEMO.PAS ------ ACAD.LIB┐Γ║»╩²╡≈╙├╩╡└².
  225.         5. ACADLIB.DOC --- ▒╛╩╓▓ß.
  226.         6. LIBH.LIB ------|
  227.         7. LLIBC.LIB -----|
  228.         8. LLIBFP.LIB ----|- C ╙∩╤╘▒Ω╫╝┐Γ║»╩²
  229.         9. LLIBFA.LIB ----|
  230.        10. EM.LIB --------|
  231.  
  232.         ╧┬├µ╥╘ DEMO.PAS │╠╨≥╬¬└², ╕°│÷▒α╥δ, ┴¼╜╙╣²│╠:
  233.  
  234.         1. ▒α╥δ:
  235.             PAS1    demo
  236.             PAS2
  237.         2. ┴¼╜╙:
  238.             LINK DEMO,,,ACAD
  239.  
  240.     ╫ó╥Γ:    ╦∙╙╨╫╓╖√┤«▒╪╨δ╥╘┴π╫≈╬¬╜ß╩°╖√. (└²╚τ "ACAD.DWG"*CHS(0)). ╦∙╙╨╥¬╟≤
  241.         ╩²╫Θ╫≈╬¬▓╬╩²╡─║»╩², ╘┌╫≈▓╬╩²╠µ╗╗╩▒, ▒╪╨δ╙├╞Σ╡┌╥╗╕÷╘¬╦╪╫≈╬¬▓╬╩².
  242.         ( └²╚τ PACE3D(XX[1], YY[1], ZZ[1], 6)).
  243.  
  244.  
  245. 2.5 ┐Γ║»╩²▒Ω╫╝╖╡╗╪┬δ╢¿╥σ:
  246.  
  247.     0 = ╡≈╙├│╔╣ª
  248.     1 = ╬─╝■┤≥┐¬│÷┤φ
  249.     2 = ╢┴╬─╝■│÷┤φ
  250.     3 = ╨┤╬─╝■│÷┤φ
  251.     4 = ╬─╝■╢¿╬╗│÷┤φ
  252.  
  253.  
  254. 2.6 ACAD.LIB┐Γ╝╙├▄╦╡├≈
  255.  
  256.     ╙╔ACAD.LIB│╠╨≥┐Γ╔·│╔╡─│╠╨≥▒╪╨Φ┼Σ╙╨╬╥╣½╦╛╫¿├┼╡─╝╙├▄┐¿╖╜─▄╘╦╨╨.
  257.  
  258.  
  259.  
  260.  
  261.         ╡┌╚²╒┬        ACAD.LIB ┐Γ║»╩²╡≈╙├╖╜╖¿
  262.  
  263.  
  264.         ACAD.LIB╣▓╙╨┐╔╡≈╙├╡─║»╩²19╕÷. │²┴╦OPNDWG╙δCLODWG║»╩²═Γ, ╞Σ╦ⁿ║»╩²╢╝╢╘
  265.     ╙ª╙┌AutoCAD╡─╥╗╕÷├ⁿ┴ε. ╥≥╢°╧Ω╧╕┴╦╜ΓAutoCAD╧α╙ª╡─├ⁿ┴ε, ╗ß╙╨╓·╙┌╙├║├╒Γ╨⌐║»
  266.     ╩². ╧┬├µ╕°│÷├┐╕÷║»╩²╡─╛▀╠σ╡≈╙├╖╜╖¿, ╝░╞Σ╚δ┐┌▓╬╩², ╖╡╗╪▓╬╩²╡─╢¿╥σ.
  267.  
  268.  
  269. 3.1   ARC
  270. ║»╩²╦╡├≈:    arc(x0,y0,r0,ang0,ang1)
  271.         double x0,y0,r0,ang0,ang1;
  272.  
  273. ╣ª─▄╦╡├≈:    ╗µ╥╗╕°╢¿╘▓╨─, ░δ╛╢╝░╞≡╩╝╜╟╙δ╓╒╓╣╜╟╡─╘▓╗í.
  274.  
  275. ▓╬╩²╦╡├≈:    ╦∙╙╨▓╬╩²╢╝╩╟╦½╛½╢╚╩╡╩², ╞Σ╓╨x0, y0╬¬╘▓╨─, r0╬¬░δ╛╢, ango, angl╬¬
  276.         ╞≡╩╝╜╟╢╚╙δ╓╒╓╣╜╟╢╚, ╙╔╗í╢╚▒φ╩╛.
  277.  
  278. ╡≈╙├╛┘└²:
  279.  
  280.     ---------------------------- C ---------------------------------
  281.  
  282.     int    circle(x0,y0,r);
  283.     double    x0,y0,r;
  284.  
  285.     int    error;
  286.     error = arc(x0,y0,r0,ang0,ang1);
  287.  
  288.     ------------------------- FORTRAN ------------------------------
  289.  
  290.     INTERFACE TO INTEGER*2 FUNCTION ARC[C](X0,Y0,R0,ANG0,ANG1)
  291.     DOUBLE PRECISION X0,Y0,R0,ANG0,ANG1
  292.     END
  293.  
  294.     INTEGER*2 ARC
  295.     IERR = ARC(X0,Y0,R0,ANG0,ANG1)
  296.  
  297.     ------------------------- PASCAL -------------------------------
  298.  
  299.     FUNCTION arc(x0,y0,r0,ang0,ang1:REAL8):INTEGER2[C];EXTERN;
  300.     PROCEDURE arcp;
  301.       VAR error:INTEGER2;
  302.       BEGIN
  303.         error = arc(x0,y0,r0,ang0,ang1)
  304.       END;
  305.  
  306. ╖╡╗╪╓╡╦╡├≈:    ╖╡╗╪╓╡╬¬ 5▒φ╩╛░δ╛╢ r╨í╙┌╗≥╡╚╙┌ 0. ╞Σ╦ⁿ╖╡╗╪╓╡▓╬╒╒2.5╜┌╢¿╥σ.
  307.  
  308.  
  309. ע:
  310.  
  311.  
  312. 3.2   ATTDEF
  313. ║»╩²╦╡├≈:    attdef(aname,adefault,aprompt,xb,yb,ascale,aangle,alab)
  314.         char *aname,*adefault,*aprompt;
  315.         double xb,yb,ascale,aangle;
  316.         int alab;
  317.  
  318. ╣ª─▄╦╡├≈:    ╢¿╥σ╥╗╕÷╩⌠╨╘. Insert╩▒,╩⌠╨╘╓╡░┤╚▒╩í╓╡▓σ╚δ.
  319.  
  320. ▓╬╩²╦╡├≈:    aname:      ╩⌠╨╘├√;
  321.         adefault: ╩⌠╨╘╚▒╩í╓╡;
  322.         aprompt:  ╩⌠╨╘╠ß╩╛;
  323.         xb,yb:      ╩⌠╨╘╗∙╡π╡─╫°▒Ω╓╡;
  324.         ascale:   ▒╚└²╓╡;
  325.         aangle:   ╘┌XY╞╜├µ╔╧╚╞╗∙╡π╨²╫¬╡─╜╟╢╚,╗í╢╚╓╡;
  326.         alab:      ▒Ω╓╛╓╡;
  327.             0: ╥╘╧┬╚²╓╓╖╜╩╜╡─╖±;
  328.             1: Invisible (▓╗┐╔╝√╖╜╩╜);
  329.             2: Constant (║π╢¿╖╜╩╜);
  330.             4: Verify (╤Θ╓ñ╖╜╩╜);
  331.             1,2║═4╖╜╩╜┐╔╥╘╗∞║╧╩╣╙├,╚τ╙√╓├╖╜╩╜╬¬(IC),┐╔╓├
  332.             lab=1+2=3.
  333.  
  334.  
  335. ╡≈╙├╛┘└²:
  336.  
  337.     ---------------------------- C ---------------------------------
  338.  
  339.     int   attdef(aname,adefault,aprompt,xb,yb,ascale,aangle,alab)
  340.     char *aname,*adefault,*aprompt;
  341.     double xb,yb,ascale,aangle;
  342.     int alab;
  343.  
  344.     int    error;
  345.     error = attdef(aname,adefault,aprompt,xb,yb,ascale,aangle,alab);
  346.  
  347.     ------------------------- FORTRAN ------------------------------
  348.  
  349.     INTERFACE TO INTEGER*2 FUNCTION ATTDEF[C](ANAME[REFERENCE],
  350.      +             ADEFAULT[REFERENCE],APROMPT[REFERENCE],XB,
  351.      +             YB,ASCALE,AANGLE,ALAB)
  352.     CHARACTER*1 ANAME,ADEFAULT,APROMPT
  353.     INTEGER*2 ALAB
  354.     DOUBLE PRECISION XB,YB,ASCALE,AANGLE
  355.     END
  356.  
  357.     INTEGER*2 ATTDEF
  358.     IERR = ATTDEF('ANAME'C,'ADEFAULT'C,' 'C,XB,YB,ASCALE,AANGLE,ALAB)
  359.  
  360.     ------------------------- PASCAL -------------------------------
  361.  
  362.     FUNCTION attdef(VARS aname,adefault,aprompt:BYTE;
  363.             xb,yb,ascale,aangle:REAL8;
  364.             alab:INTEGER2;):INTEGER2[C];EXTERN;
  365.     PROCEDURE attdefp;
  366.       VAR error:INTEGER2;
  367.       BEGIN
  368.         error = attdef("aname"*CHR(0),"adefault"*CHR(0)," "*CHR(0),
  369.             xb,yb,ascale,aangle,alab)
  370.       END;
  371.  
  372. ╖╡╗╪╓╡╦╡├≈:    ╦∙╙╨╖╡╗╪╓╡▓╬╒╒2.5╜┌╢¿╥σ.
  373.  
  374.  
  375. ע:
  376.  
  377.  
  378. 3.3   BLOCK
  379. ║»╩²╦╡├≈:    block(blk_name,xb,yb)
  380.         char    blk_name[];
  381.         double    xb,yb;
  382.  
  383. ╣ª─▄╦╡├≈:    ┤╦║»╩²╜½┤╙┤≥┐¬═╝╨╬╬─╝■(═¿╣²╡≈╙├OPNDWG║»╩²), ╗≥┤╙╔╧╥╗┤╬╡≈╙├ block
  384.         ╗≥wblock║»╩²┐¬╩╝, ╡╜▒╛┤╬╡≈╙├╕├║»╩²╬¬╓╣╦∙╔·│╔╡─╦∙╙╨╩╡╠σ╫÷│╔╥╗╕÷═╝
  385.         ╨╬┐Θ. ╕├═╝╨╬┐Θ╬¬─┌▓┐┐Θ, ╜÷┐╔╘┌▒╛═╝╨╬─┌▓┐╥²╙├.
  386.  
  387. ▓╬╩²╦╡├≈:    blk-name╬¬╫╓╖√┤«└α╨═, ▒φ╩╛┐Θ├√. xb, yb╬¬╦½╛½╢╚╩╡╩²└α╨═, ▒φ╩╛┐Θ╡─
  388.         ╗∙╡π.
  389.  
  390. ╡≈╙├╛┘└²:
  391.  
  392.     ---------------------------- C ---------------------------------
  393.  
  394.     int    block(blk_name,xb,yb);
  395.     char    blk_name[];
  396.     double    xb,yb;
  397.  
  398.     int    error;
  399.     error = block("block1",xb,yb);
  400.  
  401.     ------------------------- FORTRAN ------------------------------
  402.  
  403.     INTERFACE TO INTEGER*2 FUNCTION BLOCK[C](BLKNAME[REFERENCE],
  404.      +             XB,YB)
  405.     CHARACTER*1 BLKNAME
  406.     DOUBLE PRECISION XB,YB
  407.     END
  408.  
  409.     INTEGER*2 BLOCK
  410.     IERR = BLOCK('BLOCK1'C,XB,YB)
  411.  
  412.     ------------------------- PASCAL -------------------------------
  413.  
  414.     FUNCTION block(VARS blk_name:STRING(31);xb,yb:REAL8):INTEGER2[C];EXTERN;
  415.  
  416.     PROCEDURE blockp;
  417.       VAR error:INTEGER2;
  418.       BEGIN
  419.         error = block("block1"*CHR(0),xb,yb)
  420.       END;
  421.  
  422. ╖╡╗╪╓╡╦╡├≈:    ╦∙╙╨╖╡╗╪╓╡▓╬╒╒2.5╜┌╢¿╥σ.
  423.  
  424. ע:
  425.  
  426.  
  427. 3.4   CIRCLE
  428. ║»╩²╦╡├≈:    circle(x0,y0,r)
  429.         double x0,y0,r;
  430.  
  431. ╣ª─▄╦╡├≈:    ╗µ╥╗╕°╢¿╘▓╨─╝░░δ╛╢╡─╘▓.
  432.  
  433. ▓╬╩²╦╡├≈:    ╦∙╙╨▓╬╩²╢╝╩╟╦½╛½╢╚╩╡╩², ╞Σ╓╨x0, y0╬¬╘▓╨─, r╬¬░δ╛╢.
  434.  
  435. ╡≈╙├╛┘└²:
  436.  
  437.     ---------------------------- C ---------------------------------
  438.  
  439.     int    circle(x0,y0,r);
  440.     double    x0,y0,r;
  441.  
  442.     int    error;
  443.     error = circle(x0,y0,r);
  444.  
  445.     ------------------------- FORTRAN ------------------------------
  446.  
  447.     INTERFACE TO INTEGER*2 FUNCTION CIRCLE[C](X0,Y0,R)
  448.     DOUBLE PRECISION X0,Y0,R
  449.     END
  450.  
  451.     INTEGER*2 CIRCLE
  452.     IERR = CIRCLE(X0,Y0,R)
  453.  
  454.     ------------------------- PASCAL -------------------------------
  455.  
  456.     FUNCTION circle(x0,y0,r:REAL8):INTEGER2[C];EXTERN;
  457.  
  458.     PROCEDURE circlep;
  459.       VAR error:INTEGER2;
  460.       BEGIN
  461.         error = circle(x0,y0,r)
  462.       END;
  463.  
  464. ╖╡╗╪╓╡╦╡├≈:    ╖╡╗╪╓╡╬¬ 5▒φ╩╛░δ╛╢╬¬ r╨í╙┌╗≥╡╚╙┌ 0,
  465.         ╞Σ╦ⁿ╖╡╗╪╓╡▓╬╒╒ 2.5╜┌╢¿╥σ.
  466.  
  467.  
  468. ע:
  469.  
  470.  
  471. 3.5   CLODWG
  472. ║»╩²╦╡├≈:    clodwg()
  473.  
  474. ╣ª─▄╦╡├≈:    ╣╪▒╒═╝╨╬╬─╝■, ╔·│╔╥╗╕÷ AutoCAD ╡─ DWG ═╝╨╬╬─╝■.
  475.  
  476. ▓╬╩²╦╡├≈:    ╬▐▓╬╩².
  477.  
  478. ╡≈╙├╛┘└²:
  479.  
  480.     ---------------------------- C ---------------------------------
  481.  
  482.     int    clodwg();
  483.  
  484.     int    error;
  485.     error = clodwg();
  486.  
  487.     ------------------------- FORTRAN ------------------------------
  488.  
  489.     INTERFACE TO INTEGER*2 FUNCTION CLODWG[C]()
  490.     END
  491.  
  492.     INTEGER*2 CLODWG
  493.     IERR = CLODWG()
  494.  
  495.     ------------------------- PASCAL -------------------------------
  496.  
  497.     FUNCTION clodwg():INTEGER2[C];EXTERN;
  498.  
  499.     PROCEDURE clodwgp;
  500.       VAR error:INTEGER2;
  501.       BEGIN
  502.         error = clodwg()
  503.       END;
  504.  
  505. ╖╡╗╪╓╡╦╡├≈:    ╦∙╙╨╖╡╗╪╓╡▓╬╒╒2.5╜┌╢¿╥σ.
  506.  
  507.  
  508. ╫ó:        ╕├║»╩²▒╪╨δ╙δ║»╩² OPNDWG │╔╢╘╩╣╙├, ▓╗╙ª╨╬│╔╟╢╠╫╡≈╙├.
  509.  
  510.  
  511. 3.6   DOUCIR
  512. ║»╩²╦╡├≈:    doucir(x0,y0,ir,or)
  513.         double x0,y0,ir,or;
  514.  
  515. ╣ª─▄╦╡├≈:    ╗µ╕°╢¿╘▓╨─╝░─┌, ═Γ╘▓░δ╛╢╡─╘▓╗╖. ╚⌠─┌╘▓░δ╛╢╬¬ 0, ╘≥╜½╗µ│÷╩╡╨─╘▓.
  516.  
  517. ▓╬╩²╦╡├≈:    ╦∙╙╨▓╬╩²╢╝╩╟╦½╛½╢╚╩╡╩², ╞Σ╓╨ x0, y0 ╬¬╘▓╨─╫°▒Ω, ir ╬¬─┌╘▓░δ╛╢,
  518.         or ╬¬═Γ╘▓░δ╛╢.
  519.  
  520. ╡≈╙├╛┘└²:
  521.  
  522.     ---------------------------- C ---------------------------------
  523.  
  524.     int    doucir(x0,y0,ir,or);
  525.     double    x0,y0,ir,or;
  526.  
  527.     int    error;
  528.     error = doucir(x0,y0,ir,or);
  529.  
  530.     ------------------------- FORTRAN ------------------------------
  531.  
  532.     INTERFACE TO INTEGER*2 FUNCTION DOUCIR[C](X0,Y0,IR,OR)
  533.     DOUBLE PRECISION X0,Y0,IR,OR
  534.     END
  535.  
  536.     INTEGER*2 DOUCIR
  537.     IERR = DOUCIR(X0,Y0,IR,OR)
  538.  
  539.     ------------------------- PASCAL -------------------------------
  540.  
  541.     FUNCTION doucir(x0,y0,ir,or:REAL8):INTEGER2[C];EXTERN;
  542.  
  543.     PROCEDURE doucirp;
  544.       VAR error:INTEGER2;
  545.       BEGIN
  546.         error = doucir(x0,y0,ir,or)
  547.       END;
  548.  
  549. ╖╡╗╪╓╡╦╡├≈:    ╚τ╣√ir╗≥or╨í╙┌┴π, ╘≥╖╡╗╪╓╡╬¬5, ╚τ╣√ ir > or ╘≥╖╡╗╪╓╡╬¬ 6.
  550.         ╞Σ╦ⁿ╖╡╗╪╓╡▓╬╒╒2.5╜┌╢¿╥σ.
  551.  
  552.  
  553. ע:
  554.  
  555.  
  556. 3.7   FACE3D
  557. ║»╩²╦╡├≈:    face3d(xx,yy,zz,n)
  558.         double xx[],yy[],zz[];
  559.         int    n;
  560.  
  561. ╣ª─▄╦╡├≈:    ╗µ╢α╕÷┴¼╜╙╡─╚²╬¼├µ. ├┐╕÷╚²╬¼├µ╙╔╦─╕÷╚²╬¼╡π╫≈╬¬╢Ñ╡π; ╒Γ╦─╕÷╡π╙╔╦│
  562.         ╩▒╒δ╗≥─µ╩▒╒δ╕°│÷, ╟░╥╗╕÷╚²╬¼├µ╡─╫ε║≤┴╜╕÷╢Ñ╡π╩╟║≤╥╗╚²╬¼├µ╡─┐¬╩╝┴╜
  563.         ╕÷╢Ñ╡π.
  564.  
  565. ▓╬╩²╦╡├≈:    xx, yy, zz╬¬╦½╛½╢╚╩╡╨═╩²╫Θ, ▒φ╩╛╚²╬¼├µ╢Ñ╡π╡─╚²╬¼╫°▒Ω. n╬¬╒√╨╬╩²,
  566.         ▒φ╩╛╚²╬¼├µ╢Ñ╡π╡─╕÷╩², ▒╪╨δ n >= 4.
  567.  
  568. ╡≈╙├╛┘└²:
  569.  
  570.     ---------------------------- C ---------------------------------
  571.  
  572.     int    face3d(xx,yy,zz,n);
  573.     double    xx[],yy[],zz[];
  574.  
  575.     int    error;
  576.     error = face3d(xx,yy,zz,n);
  577.  
  578.     ------------------------- FORTRAN ------------------------------
  579.  
  580.     INTERFACE TO INTEGER*2 FUNCTION FACE3D[C](XX[REFERENCE],
  581.      +             YY[REFERENCE],ZZ[REFERENCE],N)
  582.     DOUBLE PRECISION XX,YY,ZZ
  583.     INTEGRE*2 N
  584.     END
  585.  
  586.     INTEGER*2 FACE3D
  587.     IERR = FACE3D(XX,YY,ZZ,N)
  588.  
  589.     ------------------------- PASCAL -------------------------------
  590.  
  591.     FUNCTION face3d(VARS xx,yy,zz:REAL8,n:INTEGER2):INTEGER2[C];EXTERN;
  592.  
  593.     PROCEDURE face3dp;
  594.       VAR error:INTEGER2;
  595.       BEGIN
  596.         error = face3d(xx,yy,zz,n)
  597.       END;
  598.  
  599. ╖╡╗╪╓╡╦╡├≈:    ╚τ╣√ n<4 ╘≥╖╡╗╪╓╡╬¬ 5, ╞Σ╦ⁿ╖╡╗╪╓╡▓╬╒╒ 2.5 ╜┌╢¿╥σ.
  600.  
  601. ע:
  602.  
  603.  
  604. 3.8   INSERT
  605. ║»╩²╦╡├≈:    insert(blk_name,xb,yb,xr,yr,zr,ro)
  606.         char    blk_name[];
  607.         double    xb,yb,xr,yr,zr,ro;
  608.  
  609. ╣ª─▄╦╡├≈:    ░┤╕°╢¿╡─▓σ╚δ╡π, ╝░ X,Y,Z╖╜╧≥╡─╔∞╦⌡▒╚└², ╥╘╝░╚╞┐Θ╗∙╡π╡─╨²╫¬╜╟╢╚,
  610.         ╘┌═╝╨╬╓╨▓σ╚δ╥╤╢¿╥σ╡─═╝╨╬┐Θ. ╩╫╧╚, ╜½╦╤╦≈▒╛═╝╨╬╢¿╥σ╡──┌▓┐┐Θ, ╚τ╣√
  611.         ├╗╙╨, ╘≥╜½╕°╢¿╡─┐Θ├√╫≈╬¬═╝╨╬╬─╝■├√, ╦╤╦≈═Γ▓┐┐Θ, ╜°╨╨▓σ╚δ.
  612.  
  613. ▓╬╩²╦╡├≈:    blk.name╬¬╫╓╖√┤«└α╨═, ▒φ╩╛╥¬▓σ╚δ╡─┐Θ├√. ╞Σ╓╨╢╝╩╟╦½╛½╢╚└α╨═, ╞Σ╓╨
  614.         xb, yb╬¬▓σ╚δ╡π; xr, yr, zr╬¬X,Y,Z╓ß╖╜╧≥╡─▓σ╚δ╔∞╦⌡▒╚└²; ro ╬¬╚╞┐Θ
  615.         ╗∙╡π, ╘┌ XY ╞╜├µ╔╧╡─╨²╫¬╜╟╢╚, ╙├╗í╢╚▒φ╩╛.
  616.  
  617. ╡≈╙├╛┘└²:
  618.  
  619.     ---------------------------- C ---------------------------------
  620.  
  621.     int    insert(blk_name,xb,yb,xr,yr,zr,ro);
  622.     char    blk_name[];
  623.     double    xb,yb,xr,yr,zr,ro;
  624.  
  625.     int    error;
  626.     error = insert(blk_name,xb,yb,xr,yr,zr,ro);
  627.  
  628.     ------------------------- FORTRAN ------------------------------
  629.  
  630.     INTERFACE TO INTEGER*2 FUNCTION INSERT[C](BLKNAME[REFERENCE],
  631.      +    XB,YB,XR,YR,ZR,RO)
  632.     CHARACTER*1 BLKNAME
  633.     DOUBLE PRECISION XB,YB,XR,YR,ZR,RO
  634.     END
  635.  
  636.     INTEGER*2 INSERT
  637.     IERR = INSERT('BLOCK1'C,XB,YB,XR,YR,ZR,RO)
  638.  
  639.     ------------------------- PASCAL -------------------------------
  640.  
  641.     FUNCTION insert(VARS blk_name:BYTE;xb,yb,xr,yr,zr,ro:REAL8):INTEGER2[C];EXTERN;
  642.     PROCEDURE insertp;
  643.       VAR error:INTEGER2;
  644.       BEGIN
  645.         error = insert(blk_name,xb,yb,xr,yr,zr,ro)
  646.       END;
  647.  
  648. ╖╡╗╪╓╡╦╡├≈:    ╚τ╣√╦∙╕°╡─┐Θ▓╗┤µ╘┌, ╘≥╖╡╗╪╓╡╬¬ 5. ╞Σ╦ⁿ╖╡╗╪╓╡▓╬╒╒2.5╜┌╢¿╥σ.
  649.  
  650. ע:
  651.  
  652.  
  653. 3.9  LAYER
  654. ║»╩²╦╡├≈:    layer(layer_name,color,ltype_name)
  655.         char    layer_name[],ltype_name[];
  656.         int    color;
  657.  
  658. ╣ª─▄╦╡├≈:    ╚⌠╓╕╢¿▓π├√╡─▓π┤µ╘┌, ▓ó╟╥▓╗╩╟╡▒╟░▓π, ╘≥╜½╞Σ╔Φ╓├╬¬╡▒╟░▓π, ╞Σ╦ⁿ▓╬╩²
  659.         ║÷┬╘; ╚⌠╕°╢¿▓π├√╡─▓π▓╗┤µ╘┌, ╘≥░┤╕°╢¿╡─╞Σ╦ⁿ▓╬╩²╜¿┴ó╥╗╕÷╨┬▓π, ▓ó╟╥
  660.         ╜½╞Σ╔Φ╓├╬¬╡▒╟░▓π.
  661.  
  662. ▓╬╩²╦╡├≈:    layer-name╬¬╫╓╖√┤«└α╨═, ▒φ╩╛▓π├√. color ╬¬╒√╨═, ▒φ╩╛╗µ╘┌╕├▓π╔╧╡─
  663.         ╩╡╠σ╤╒╔½. ╡▒1=<color=<7 ╩▒, ╤╒╔½║┼╙δ AutoCAD╡─▒Ω╫╝╢¿╥σ╧α═¼, ╞Σ╦ⁿ
  664.         ╤╒╔½╓╡▓╗╚╖╢¿. ltype-name╬¬╫╓╖√┤«└α╨═, ▒φ╩╛╧▀╨═├√.
  665.  
  666. ╡≈╙├╛┘└²:
  667.  
  668.     ---------------------------- C ---------------------------------
  669.  
  670.     int    layer(layer_name,color,ltype_name);
  671.     char    layer_name[],ltype_name[];
  672.     int    color;
  673.  
  674.     int    error;
  675.     error = layer("layer1",color,"dot")
  676.  
  677.     ------------------------- FORTRAN ------------------------------
  678.  
  679.     INTERFACE TO INTEGER*2 FUNCTION LAYER[C](LAYERNAME[REFERENCE],
  680.      +    COLOR,LTYPENAME[REFERENCE])
  681.     CHARACTER*1 LAYERNAME,LTYPENAME
  682.     INTEGER*2 COLOR
  683.     END
  684.  
  685.     INTEGER*2 LAYER
  686.     IERR = LAYER('LAYER1'C,COLOR,'dot'C)
  687.  
  688.     ------------------------- PASCAL -------------------------------
  689.  
  690.     FUNCTION layer(VARS layername:BYTE;color:INTEGER2;
  691.                VARS ltypename:BYTE):INTEGER2[C];EXTERN;
  692.  
  693.     PROCEDURE layerp;
  694.       VAR error:INTEGER2;
  695.       BEGIN
  696.         error = layer("layer1"*CHR(0),color,"dot"*CHR(0))
  697.       END;
  698.  
  699. ╖╡╗╪╓╡╦╡├≈:    ╦∙╙╨╖╡╗╪╓╡▓╬╒╒2.5╜┌╡─╢¿╥σ.
  700.  
  701. ע:
  702.  
  703.  
  704. 3.10  LINE
  705. ║»╩²╦╡├≈:    line(x0,y0,x1,y1)
  706.         double x0,y0,x1,y1;
  707.  
  708. ╣ª─▄╦╡├≈:    ░┤╕°╢¿╡─╞≡╡π╙δ╓╒╡π╫°▒Ω, ╗µ╥╗╠⌡╓▒╧▀.
  709.  
  710. ▓╬╩²╦╡├≈:    ╦∙╙╨▓╬╩²╢╝╩╟╦½╛½╢╚╩╡╩², ╞Σ╓╨x0, y0╬¬╞≡╡π╫°▒Ω, x1, y1╬¬╓╒╡π╫°▒Ω.
  711.  
  712. ╡≈╙├╛┘└²:
  713.  
  714.     ---------------------------- C ---------------------------------
  715.  
  716.     int    line(x0,y0,x1,y1);
  717.     double    x0,y0,x1,y1;
  718.  
  719.     int    error;
  720.     error = line(x0,y0,x1,y1);
  721.  
  722.     ------------------------- FORTRAN ------------------------------
  723.  
  724.     INTERFACE TO INTEGER*2 FUNCTION LINE[C](X0,Y0,X1,Y1)
  725.     DOUBLE PRECISION X0,Y0,X1,Y1
  726.     END
  727.  
  728.     INTEGER*2 LINE;
  729.     IERR = LINE(X0,Y0,X1,Y1)
  730.  
  731.     ------------------------- PASCAL -------------------------------
  732.  
  733.     FUNCTION line(x0,y0,x1,y1:REAL8):INTEGER2[C];EXTERN;
  734.     PROCEDURE linep;
  735.       VAR error:INTEGER2;
  736.       BEGIN
  737.         error = line(x0,y0,x1,y1)
  738.       END;
  739.  
  740. ╖╡╗╪╓╡╦╡├≈:    ╦∙╙╨╖╡╗╪╓╡▓╬╒╒2.5╜┌╡─╢¿╥σ.
  741.  
  742. ע:
  743.  
  744.  
  745. 3.11  LINE3D
  746. ║»╩²╦╡├≈:    line3d(x0,y0,z0,x1,y1,z1)
  747.         double x0,y0,z0,x1,y1,z1;
  748.  
  749. ╣ª─▄╦╡├≈:    ░┤╕°╢¿╡─╚²╬¼╞≡╡π╙δ╓╒╡π╫°▒Ω, ╗µ╥╗╠⌡╚²╬¼╓▒╧▀.
  750.  
  751. ▓╬╩²╦╡├≈:    ╦∙╙╨▓╬╩²╢╝╩╟╦½╛½╢╚╩╡╨═, ╞Σ╓╨x0, y0, z0╬¬╞≡╡π╫°▒Ω, x1, y1, z1╬¬╓╒
  752.         ╡π╫°▒Ω.
  753.  
  754. ╡≈╙├╛┘└²:
  755.  
  756.     ---------------------------- C ---------------------------------
  757.  
  758.     int    line3d(x0,y0,z0,x1,y1,z1);
  759.     double    x0,y0,z0,x1,y1,z1;
  760.  
  761.     int    error;
  762.     error = line3d(x0,y0,z0,x1,y1,z1);
  763.  
  764.     ------------------------- FORTRAN ------------------------------
  765.  
  766.     INTERFACE TO INTEGER*2 FUNCTION LINE3D[C](X0,Y0,Z0,X1,Y1,Z1)
  767.     DOUBLE PRECISION X0,Y0,Z0,X1,Y1,Z1
  768.     END
  769.  
  770.     INTEGER*2 LINE3D
  771.     IERR = LINE3D(X0,Y0,Z0,X1,Y1,Z1)
  772.  
  773.     ------------------------- PASCAL -------------------------------
  774.  
  775.     FUNCTION line3d(x0,y0,z0,x1,y1,z1:REAL8):INTEGER2[C];EXTERN;
  776.     PROCEDURE line3dp;
  777.       VAR error:INTEGER2;
  778.       BEGIN
  779.         error = line3d(x0,y0,z0,x1,y1,z1)
  780.       END;
  781.  
  782. ╖╡╗╪╓╡╦╡├≈:    ╦∙╙╨╖╡╗╪╓╡▓╬╒╒2.5╜┌╡─╢¿╥σ.
  783.  
  784. ע:
  785.  
  786.  
  787. 3.12  OPNDWG
  788. ║»╩²╦╡├≈:    opndwg(d_name,s_name)
  789.         char d_name[],s_name[];
  790.  
  791. ╣ª─▄╦╡├≈:    ╥└╒╒╕°╢¿╡─╤∙░σ═╝┤┤╜¿╓╕╢¿╡─═╝╨╬╬─╝■.
  792.  
  793. ▓╬╩²╦╡├≈:    ╦∙╙╨▓╬╩²╢╝╩╟╫╓╖√┤«└α╨═, ╞Σ╓╨ d_name ╬¬╥¬┤┤╜¿╡─ DWG ═╝╨╬╬─╝■├√,
  794.         s_name    ╬¬╦∙╥└╒╒╡─╤∙░σ═╝╨╬╬─╝■├√.
  795.  
  796. ╡≈╙├╛┘└²:
  797.  
  798.     ---------------------------- C ---------------------------------
  799.  
  800.     int    opndwg(d_name,s_name);
  801.     char    d_name[],s_name[];
  802.  
  803.     int    error;
  804.     error = opndwg("test.dwg","hcad");
  805.  
  806.     ------------------------- FORTRAN ------------------------------
  807.  
  808.     INTERFACE TO INTEGER*2 FUNCTION OPNDWG[C](DNAME[REFERENCE],
  809.      +             SNAME[REFERENCE])
  810.     CHARACTER*1 DNAME,SNAME
  811.     END
  812.  
  813.     INTEGER*2 OPNDWG
  814.     IERR = OPNDWG("TEST.DWG"C,"HCAD.DWG"C)
  815.  
  816.     ------------------------- PASCAL -------------------------------
  817.  
  818.     FUNCTION opndwg(VARS dname,sname:BYTE):INTEGER2[C];EXTERN;
  819.  
  820.     PROCEDURE opndwgp;
  821.       VAR error:INTEGER2;
  822.       BEGIN
  823.         error = opendwg("test.dwg"*CHR(0),"hcad"*CHR(0))
  824.       END;
  825.  
  826. ╖╡╗╪╓╡╦╡├≈:    ╚τ╣√╤∙░σ═╝╬─╝■▓╗┤µ╘┌, ╘≥╖╡╗╪╓╡╬¬ 5. ╞Σ╦ⁿ╖╡╗╪╓╡▓╬╒╒2.5╜┌╡─╢¿╥σ.
  827.  
  828. ╫ó:        ▓╔╙├╤∙░σ═╝╔·│╔╨┬╡─═╝╨╬╬─╝■╙δ AutoCAD╡─▒α╝¡╨┬═╝╡─╖╜╖¿╧α═¼. ╒Γ╤∙┐╔
  829.         ╥╘╘┌╤∙░σ═╝╓╨╢¿╥σ║├╦∙╙╨╚▒╩í╓╡, ╚τ═╝╖∙, ═°╕±, ▓π, ╧▀╨═, ╫╓╠σ, ▓╦╡Ñ
  830.         ╬─╝■├√, ╡╚╡╚, ╔⌡╓┴╥╗╕÷"▒│╛░"═╝. ╥▓╛═╩╟╦╡┐╔╥╘╘┌╥╗╕÷╥╤╛¡╫≈║├╡─═╝╨╬
  831.         ╔╧╝╠╨°╫≈═╝, ╨╬│╔╫ε╓╒═╝╨╬, ╡½╩╟▒╪╨δ╥¬╫ó╥Γ╤∙░σ═╝╡─░µ▒╛║┼╙δ╦∙╙├╡─╣ª
  832.         ─▄▒╪╨δ╥╗╓┬. ╝┤▓╗─▄╘┌╡═░µ▒╛╡─╤∙░σ═╝╔╧╫≈╕▀░µ▒╛╡─╩╡╠σ═╝╦╪.   └²╚τ╙├
  833.         2.5 ░µ╡─═╝╫≈╤∙░σ═╝, ╘┌╞Σ╔╧╙├║»╩² line3d ╗µ┴╦╥╗╠⌡╚²╬¼╓▒╧▀. ╒Γ╜½╡╝
  834.         ╓┬╔·│╔╥╗╕÷╖╟╖¿═╝╨╬.
  835.  
  836.  
  837. 3.13  PLINE
  838. ║»╩²╦╡├≈:    pline(xx,yy,width,bulge,n,c)
  839.         double xx[],yy[],bulge[],width;
  840.         int    n,c;
  841.  
  842. ╣ª─▄╦╡├≈:    ╗µ╥╗╠⌡╕°╢¿┐φ╢╚╡─╕┤║╧╡─╟·╒█╧▀.
  843.  
  844. ▓╬╩²╦╡├≈:    XX, YY╬¬╦½╛½╢╚╩²╫Θ, ▒φ╩╛╕┤╧▀╜ß╡π╡─X, Y╫°▒Ω. Width ╬¬╦½╛½╢╚╩╡╩²,
  845.         ▒φ╩╛╕├╠⌡╕┤║╧╧▀╡─┐φ╢╚. n ╬¬╒√╨═╩², ▒φ╩╛╕├╠⌡╕┤║╧╧▀╜ß╡π╡─╕÷╩². C ╬¬
  846.         ╒√╨═╩², ╩╟╕├╠⌡╕┤║╧╧▀┐¬╣╪▒Ω╓╛, ╝┤╞≡╡π╙δ╓╒╡π╩╟╖±╧α┴¼. ╚⌠ C=0╘≥╩╟┐¬
  847.         ╡─, ╚⌠ C != 0 ╘≥╩╟╣╪╡─. bulge ╬¬╦½╛½╢╚╩╡╩²╩²╫Θ, ▒φ╩╛╕┤║╧╧▀╓╨╗í╢╬
  848.         ╡─═╣╢╚. ╚⌠ bulge[i] != 0, ╘≥▒φ╩╛╕┤║╧╧▀╓╨╡┌ i╢╬╬¬╗í╢╬,
  849.  
  850.                           |-- > 0 ─µ╩▒╒δ
  851.                bulge[i] = (+/-)2*H/D -|
  852.                           |-- < 0 ╦│╩▒╒δ
  853.  
  854.         ╞Σ╓╨D▒φ╩╛┴╜╢Ñ╡π╓«╝Σ╡─╛α└δ. h▒φ╩╛┤╙╕├╧▀╢╬╓╨╡π╡╜╗í╢╬╡─┤╣╓▒╛α└δ.
  855.         ╚⌠ bulge[i]=0, ╘≥▒φ╩╛╕┤║╧╧▀ i ╢╬╬¬╓▒╧▀╢╬.
  856.  
  857. ╡≈╙├╛┘└²:
  858.  
  859.     ---------------------------- C ---------------------------------
  860.  
  861.     int    pline(xx,yy,width,bulge,n,c);
  862.     double    xx[],yy[],bulge[],width;
  863.     int    n,c;
  864.  
  865.     int    error;
  866.     error = pline(xx,yy,width,bulge,n,c);
  867.  
  868.     ------------------------- FORTRAN ------------------------------
  869.  
  870.     INTERFACE TO INTEGER*2 FUNCTION PLINE[C](XX[REFERENCE],
  871.      +             YY[REFERENCE],WIDTH,BULGE[REFERENCE],N,C)
  872.     DOUBLE PRECISION XX,YY,WIDTH,BULGE
  873.     INTEGRE*2 N,C
  874.     END
  875.  
  876.     INTEGER*2 PLINE
  877.     IERR = PLINE(XX,YY,WIDTH,BULGE,N,C)
  878.  
  879.     ------------------------- PASCAL -------------------------------
  880.  
  881.     FUNCTION pline(VARS xx,yy:REAL8;width:REAL8;VARS bulge:REAL8;
  882.                n,c:INTEGER2):INTEGER2[C];EXTERN;
  883.  
  884.     PROCEDURE plinep;
  885.       VAR error:INTEGER2;
  886.       BEGIN
  887.         error = pline(xx,yy,width,bulge,c,n)
  888.       END;
  889.  
  890. ╖╡╗╪╓╡╦╡├≈:    ╚τ╣√n=<0╘≥╖╡╗╪╓╡╬¬5. ╞Σ╦ⁿ╖╡╗╪╓╡▓╬╒╒2.5╜┌╡─╢¿╥σ.
  891.  
  892. ╫ó:        ╥¬╩╡╧╓═Ω╚½░┤╒╒ AutoCAD ╦∙╢¿╥σ╡─╕┤║╧╧▀, ╟δ╙├║»╩² poline.
  893.  
  894.  
  895. 3.14  POINT
  896. ║»╩²╦╡├≈:    point(x0,y0)
  897.         double x0,y0;
  898.  
  899. ╣ª─▄╦╡├≈:    ░┤╕°╢¿╡─╫°▒Ω╗µ╡π.
  900.  
  901. ▓╬╩²╦╡├≈:    x0, y0╬¬╦½╛½╢╚╩╡╩², ▒φ╩╛╕├╡π╡─╫°▒Ω.
  902.  
  903. ╡≈╙├╛┘└²:
  904.  
  905.     ---------------------------- C ---------------------------------
  906.  
  907.     int    point(x0,y0);
  908.     double    x0,y0;
  909.  
  910.     int    error;
  911.     error = point(x0,y0)
  912.  
  913.     ------------------------- FORTRAN ------------------------------
  914.  
  915.     INTERFACE TO INTEGER*2 FUNCTION POINT[C](X0,Y0)
  916.     DOUBLE PRECISION X0,Y0
  917.     END
  918.  
  919.     INTEGER*2 POINT
  920.     IERR = POINT(X0,Y0)
  921.  
  922.     ------------------------- PASCAL -------------------------------
  923.  
  924.     FUNCTION point(x0,y0:REAL8):INTEGER2[C];EXTERN;
  925.  
  926.     PROCEDURE pointp;
  927.       VAR error:INTEGER2;
  928.       BEGIN
  929.         error = point(x0,y0)
  930.       END;
  931.  
  932. ╖╡╗╪╓╡╦╡├≈:    ╦∙╙╨╖╡╗╪╓╡▓╬╒╒2.5╜┌╡─╢¿╥σ.
  933.  
  934. ע:
  935.  
  936.  
  937. 3.15  POLINE
  938. ║»╩²╦╡├≈:    poline(xx,yy,w0,w1,bulge,n,c)
  939.         double xx[],yy[],w0[],w1[],bulge[];
  940.         int    n,c;
  941.  
  942. ╣ª─▄╦╡├≈:    ╗µ╥╗╠⌡▒Σ┐φ╡─╕┤║╧╟·╒█╧▀.╕├╕┤║╧╧▀╓╨├┐╢╬╡─╞≡╩╝┐φ╢╚╙δ╓╒╓╣┐φ╢╚╢╝┐╔╥╘
  943.         ▓╗═¼.
  944.  
  945. ▓╬╩²╦╡├≈:    XX, YY╬¬╦½╛½╢╚╩²╫Θ, ▒φ╩╛╕┤║╧╧▀╜ß╡π╡─ x, y ╫°▒Ω. w0, w1╬¬╦½╛½╢╚╩²
  946.         ╫Θ, ▒φ╩╛╜ß╡π╡─┐φ╢╚╓╡. w0(i) ▒φ╩╛╜ß╡π i-1╡╜ i╢╬╡─╓╒╓╣┐φ╢╚, w1(i)
  947.         ▒φ╩╛╜ß╡π i ╡╜ i+1 ╢╬╡─╞≡╩╝┐φ╢╚. n ╬¬╒√╨═╩²▒φ╩╛╕├╠⌡╕┤║╧╧▀╜ß╡π╡─╕÷
  948.         ╩². c ╬¬╒√╨═╩², ╩╟╕├╠⌡╕┤║╧╧▀╡─┐¬╣╪▒Ω╓╛, ╝┤╞≡╡π╙δ╓╒╡π╩╟╖±╧α┴¼. ╚⌠
  949.         c=0 ╘≥╩╟┐¬╡─, ╚⌠ c != 0 ╘≥╩╟╣╪╡─. bulge ╬¬╦½╛½╢╚╩²╫Θ, ▒φ╩╛╕┤║╧╧▀
  950.         ╓╨╗í╢╚╡─═╣╢╚. ╚⌠ bulge[i]!=0, ▒φ╩╛╕┤║╧╧▀╓╨╡┌ i╢╬╬¬╗í╢╚, bulge ╢¿
  951.         ╥σ▓╬╒╒ 3.12 PLINE ╓╨╡─╦╡├≈. ╚⌠ bulge[i]=0,  ╘≥▒φ╩╛╕┤║╧╧▀ i╢╬╬¬╓▒
  952.         ╧▀╢╬.
  953.  
  954. ╡≈╙├╛┘└²:
  955.  
  956.     ---------------------------- C ---------------------------------
  957.  
  958.     int    poline(xx,yy,w0,w1,bulge,n,c);
  959.     double    xx[],yy[],w0[],w1[],bulge[];
  960.     int    n,c;
  961.  
  962.     int    error;
  963.     error = poline(xx,yy,w0,w1,bulge,n,c);
  964.  
  965.     ------------------------- FORTRAN ------------------------------
  966.  
  967.     INTERFACE TO INTEGER*2 FUNCTION POLINE[C](XX[REFERENCE],
  968.      +             YY[REFERENCE],W0[REFERENCE],W1[REFERENCE],
  969.      +             BULGE[REFERENCE],N,C)
  970.     DOUBLE PRECISION XX,YY,W0,W1,BULGE
  971.     INTEGRE*2 N,C
  972.     END
  973.  
  974.     INTEGER*2 POLINE
  975.     IERR = POLINE(XX,YY,W0,W1,BULGE,N,C)
  976.  
  977.     ------------------------- PASCAL -------------------------------
  978.  
  979.     FUNCTION poline(VARS xx,yy,w0,w1:REAL8;VARS bulge:REAL8;
  980.             n,c:INTEGER2):INTEGER2[C];EXTERN;
  981.     PROCEDURE polinep;
  982.       VAR error:INTEGER2;
  983.       BEGIN
  984.         error = poline(xx,yy,w0,w1,bulge,c,n)
  985.       END;
  986.  
  987. ╖╡╗╪╦╡├≈:   ╚⌠ n <= 0, ╘≥╖╡╗╪╓╡╬¬ 5, ╞Σ╦ⁿ╖╡╗╪╓╡▓╬╒╒ 2.5 ╜┌╡─╢¿╥σ.
  988.  
  989. ╫ó:        ╚⌠╕┤║╧╧▀╦∙╙╨╢╬╬¬═¼╥╗┐φ╢╚, ╗≥┐φ╢╚╛∙╬¬┴π, ╘≥┐╔╡≈╙├╕ⁿ╝≥╡Ñ╡─║»╩² pline.
  990.  
  991.  
  992. 3.16  SOLID
  993. ║»╩²╦╡├≈:    solid(xx,yy,n)
  994.         double xx[],yy[];
  995.         int    n;
  996.  
  997. ╣ª─▄╦╡├≈:    ╗µ╢α╕÷┴¼╨°╡─╠ε│Σ╩╡╠σ, ├┐╕÷╠ε│Σ╩╡╠σ╙╔╦─╕÷╡π╫≈╬¬╢Ñ╡π, ╢Ñ╡π▓╗═¼╡─╦│
  998.         ╨≥┐╔╡├╡╜▓╗═¼╩▒╜ß╡π═╝╨╬. ╟δ▓╬┐╝AutoCAD ╙├╗º╩╓▓ß╣µ╢¿╢Ñ╡π╦│╨≥. ╟░╥╗
  999.         ╕÷╠ε│Σ╩╡╠σ╡─╫ε║≤┴╜╕÷╢Ñ╡π╬¬║≤╥╗╕÷╠ε│Σ╩╡╠σ╡─┐¬╩╝┴╜╕÷╢Ñ╡π.
  1000.  
  1001. ▓╬╩²╦╡├≈:    XX, YY╬¬╦½╛½╢╚╩╡╨═╩²╫Θ. ▒φ╩╛╠ε│Σ╩╡╠σ╡─╢Ñ╡π╫°▒Ω. n ╬¬╒√╨═╩², ▒φ╩╛
  1002.         ╢Ñ╡π╡─╕÷╩², ▒╪╨δ n >= 4.
  1003.  
  1004.  
  1005. ╡≈╙├╛┘└²:
  1006.  
  1007.     ---------------------------- C ---------------------------------
  1008.  
  1009.     int    solid(xx,yy,n);
  1010.     double    xx[],yy[];
  1011.     int    n;
  1012.  
  1013.     int    error;
  1014.     error = solid(xx,yy,n);
  1015.  
  1016.     ------------------------- FORTRAN ------------------------------
  1017.  
  1018.     INTERFACE TO INTEGER*2 FUNCTION SOLID[C](XY[REFERENCE],
  1019.      +             YY[REFERENCE],N)
  1020.     DOUBLE PRECISION XX,YY
  1021.     INTEGER*2 N
  1022.     END
  1023.  
  1024.     INTEGER*2 SOLID
  1025.     IERR = SOLID(XX,YY,N)
  1026.  
  1027.     ------------------------- PASCAL -------------------------------
  1028.  
  1029.     FUNCTION solid(VARS xx,yy:REAL8;n:INTEGER2):INTEGER2[C];EXTERN;
  1030.  
  1031.     PROCEDURE solidp;
  1032.       VAR error:INTEGER2;
  1033.       BEGIN
  1034.         error = solid(xx,yy,n)
  1035.       END;
  1036.  
  1037. ╖╡╗╪╓╡╦╡├≈:    ╚τ╣√ n<4╘≥╖╡╗╪╓╡╬¬ 5. ╞Σ╦ⁿ╖╡╗╪╓╡▓╬╒╒2.5╜┌╡─╢¿╥σ.
  1038.  
  1039. ע:
  1040.  
  1041.  
  1042. 3.17  STYLE
  1043. ║»╩²╦╡├≈:    style(style_name,shp_f1,shp_f2,height,width,angle,bud)
  1044.         char    style_name[],shp_f1[],shp_f2[];
  1045.         double    height,width,angle;
  1046.         int    bud;
  1047.  
  1048. ╣ª─▄╦╡├≈:    ╔Φ╓├╡▒╟░╫╓╠σ, ╚τ╣√╥¬╔Φ╓├╡─╡▒╟░╫╓╠σ▓╗┤µ╘┌, ╘≥╕∙╛▌╦∙╕°╡─╫╓╠σ├√╝░╞Σ
  1049.         ▓╬╩²╔·│╔╥╗╕÷╨┬╡─╫╓╠σ, ▓ó░╤╦ⁿ╫≈╬¬╡▒╟░╫╓╠σ.
  1050.  
  1051. ▓╬╩²╦╡├≈:    style_name╬¬╫╓╖√┤«└α╨═, ▒φ╩╛╫╓╠σ├√. shp-f1, shp-f2╬¬╫╓╖√┤«└α╨═,
  1052.         ▒φ╩╛╕├╫╓╠σ╦∙╙├╡─╡┌1, 2╨═╬─╠σ├√, ▓╗╨Φ╥¬└⌐╒╣├√. height▒φ╩╛╕▀╢╚, ╚τ
  1053.         ╬¬┴π, ╘≥▓╗╣╠╢¿. width╬¬╦½╛½╢╚╩╡╩², ▒φ╩╛┐φ╢╚╥≥╫╙. angle╬¬╦½╛½╢╚╩╡
  1054.         ╩²╨═, ▒φ╩╛╟π╨▒╜╟╢╚, ╙├╗í╢╚▒φ╩╛. bud ╬¬╒√╨═, ▒φ╩╛╫╓╠σ╩╟╖±╖┤╧≥, ╡▀
  1055.         ╡╣. bud=0 ▒φ╩╛╒²│ú; bud=2 ▒φ╩╛╖┤╧≥; bud=4 ▒φ╩╛╡▀╡╣; bud=6 ▒φ╩╛╝╚
  1056.         ╖┤╧≥, ╙╓╡▀╡╣.
  1057.  
  1058. ╡≈╙├╛┘└²:
  1059.  
  1060.     ---------------------------- C ---------------------------------
  1061.  
  1062.     int    style(style_name,shp_f1,shp_f2,height,width,angle,bud);
  1063.     char    style_name[],shp_f1[],shp_f2[];
  1064.     double    height,width,angle;
  1065.     int    bud;
  1066.  
  1067.     int    error;
  1068.     error = style("STANDARD","TXT","",height,width,angle,bud);
  1069.  
  1070.     ------------------------- FORTRAN ------------------------------
  1071.  
  1072.     INTERFACE TO INTEGER*2 FUNCTION STYLE[C](STYLENAME[REFERENCE],
  1073.      +             SHP_F1[REFERENCE],SHP_F2[REFERENCE],
  1074.      +             HEIGHT,WIDTH,ANGLE,BUD)
  1075.     CHARACTER*1 STYLENAME,SHP_F1,SHP_F2
  1076.     DOUBLE PRECISION HEIGHT,WIDTH,ANGLE
  1077.     INTEGER*2 BUD
  1078.     END
  1079.  
  1080.     INTEGER*2 STYLE
  1081.     IERR = STYLE('STANDARD'C,'TXT'C,''C,HEIGHT,WIDTH,ANGLE,BUD)
  1082.  
  1083.     ------------------------- PASCAL -------------------------------
  1084.  
  1085.     FUNCTION style(VARS style_name,shp_f1,shp_f2:BYTE;
  1086.          height,width,angle:REAL8;bud:INTEGER2):INTEGER2[C];EXTERN;
  1087.  
  1088.     PROCEDURE stylep;
  1089.       VAR error:INTEGER2;
  1090.       BEGIN
  1091.         error = style("STANDARD"*CHR(0),"TXT"*CHR(0),""*CHR(0),
  1092.             height,width,angle,bud)
  1093.       END;
  1094.  
  1095. ╖╡╗╪╓╡╦╡├≈:    ╚τ╣√bd╓╡╖╟╖¿, ╘≥╖╡╗╪╓╡╬¬ 5. ╞Σ╦ⁿ╖╡╗╪╓╡▓╬╒╒2.5╜┌╡─╢¿╥σ.
  1096.  
  1097. ╫ó:        ▒╛║»╩²╓╗╩╩╙├╙┌ 2.5░µ╝╚╞Σ╕ⁿ╕▀░µ▒╛. ╥╗╕÷╫╓╠σ┐╔╙╔┴╜╕÷╨═╬─╝■╔·│╔. ╚τ
  1098.         ╣√╜÷╙├╥╗╕÷╨═╬─╝■, ╘≥╡┌╢■╕÷╨═╬─╝■├√╕°╥╗╕÷┐╒╫╓╖√┤«╝┤┐╔.
  1099.  
  1100. 3.18  TEXT
  1101. ║»╩²╦╡├≈:    text(x0,y0,height,angle,string)
  1102.         double    x0,y0,height,angle;
  1103.         char    string[];
  1104.  
  1105. ╣ª─▄╦╡├≈:    ╥└╒╒╓╕╢¿╡─╬╗╓├, ╕▀╢╚╝░╜╟╢╚╘┌═╝╓╨▒Ω╫ó╕°╢¿╡─╫╓╖√┤«.
  1106.  
  1107. ▓╬╩²╦╡├≈:    x0, y0 ╬¬╦½╛½╢╚╩╡╩², ▒φ╩╛╫╓╖√┤«╫≤╧┬╢╦╡π╡─╫°▒Ω. height ╬¬╦½╛½╢╚╩╡
  1108.         ╩², ▒φ╩╛╕▀╢╚. angle ╬¬╦½╛½╢╚╩╡╩², ▒φ╩╛╜╟╢╚. string ╬¬╫╓╖√┤«└α╨═, ╩╟╥¬▒Ω╫ó╡─
  1109.         ╫╓╖√┤«.
  1110.  
  1111. ╡≈╙├╛┘└²:
  1112.  
  1113.     ---------------------------- C ---------------------------------
  1114.  
  1115.     int    text(x0,y0,height,angle,string);
  1116.     double    x0,y0,height,angle;
  1117.     char    string[];
  1118.  
  1119.     int    error;
  1120.     error = text(x0,y0,height,angle,"TEXT STRING")
  1121.  
  1122.     ------------------------- FORTRAN ------------------------------
  1123.  
  1124.     INTERFACE TO INTEGER*2 FUNCTION TEXT[C](X0,Y0,HEIGHT,
  1125.      +             ANGLE,STRING[REFERENCE])
  1126.     DOUBLE PRECISION X0,Y0,HEIGHT,ANGLE
  1127.     CHARACTER*1 STRING
  1128.     INTEGER*2 BUD
  1129.     END
  1130.  
  1131.     INTEGER*2 TEXT
  1132.     IERR = TEXT(X0,Y0,HEIGHT,ANGLE,'TEXT STRING'C)
  1133.  
  1134.     ------------------------- PASCAL -------------------------------
  1135.  
  1136.     FUNCTION text(x0.y0,height,angle:REAL8;VARS string:BYTE):INTEGER2[C];EXTERN;
  1137.  
  1138.     PROCEDURE textp;
  1139.       VAR error:INTEGER2;
  1140.       BEGIN
  1141.         error = text(x0,y0,height,angle,"TEXT STRING"*CHR(0))
  1142.       END;
  1143.  
  1144. ╖╡╗╪╓╡╦╡├≈:    ╦∙╙╨╖╡╗╪╓╡▓╬╒╒2.5╜┌╡─╢¿╥σ.
  1145.  
  1146. ע:
  1147.  
  1148.  
  1149. 3.19  TRACE
  1150. ║»╩²╦╡├≈:    trace(x0,y0,x1,y1,w)
  1151.         double x0,y0,x1,y1,w;
  1152.  
  1153. ╣ª─▄╦╡├≈:    ╗µ╥╗╠⌡┤°┐φ╢╚╡─╓▒╧▀.
  1154.  
  1155. ▓╬╩²╦╡├≈:    ╦∙╙╨▓╬╩²╢╝╩╟╦½╛½╢╚╩╡╩². ╞Σ╓╨ x0, y0 ▒φ╩╛╧▀╡─╞≡╡π; x1, y1▒φ╩╛╧▀╡─
  1156.         ╓╒╡π; w▒φ╩╛╧▀╡─┐φ╢╚.
  1157.  
  1158. ╡≈╙├╛┘└²:
  1159.  
  1160.     ---------------------------- C ---------------------------------
  1161.  
  1162.     int    trace(x0,y0,x1,y1,w);
  1163.     double    x0,y0,x1,y1,w;
  1164.  
  1165.     int    error;
  1166.     error = trace(x0,y0,x1,y1,w)
  1167.  
  1168.     ------------------------- FORTRAN ------------------------------
  1169.  
  1170.     INTERFACE TO INTEGER*2 FUNCTION TRACE[C](X0,Y0,X1,W)
  1171.     DOUBLE PRECISION X0,Y0,X1,Y1,W
  1172.     END
  1173.  
  1174.     INTEGER*2 TRACE
  1175.     IERR = TRACE(X0,Y0,X1,Y1,W)
  1176.  
  1177.     ------------------------- PASCAL -------------------------------
  1178.  
  1179.     FUNCTION trace(x0,y0,x1,y1,w:REAL8):INTEGER2[C];EXTERN;
  1180.  
  1181.     PROCEDURE tracep;
  1182.       VAR error:INTEGER2;
  1183.       BEGIN
  1184.         error = trace(x0,y0,x1,y1,w)
  1185.       END;
  1186.  
  1187. ╖╡╗╪╓╡╦╡├≈:    ╚τ╣√╞≡╡π╙δ╓╒╡π╓╪║╧, ╘≥╖╡╗╪╓╡╬¬ 5. ╚τ╣√ w<0 ╖╡╗╪╓╡╬¬ 6. ╞Σ╦ⁿ╖╡╗╪
  1188.         ╓╡▓╬╒╒ 2.5╜┌.
  1189.  
  1190. ע:
  1191.  
  1192.  
  1193. 3.20  WBLOCK
  1194. ║»╩²╦╡├≈:    wblock(blk_name,xb,yb)
  1195.         char blk_name[];
  1196.         double    xb,yb;
  1197.  
  1198. ╣ª─▄╦╡├≈:    ┤╦║»╩²╜½┤╙┤≥┐¬═╝╨╬╬─╝■ ( ═¿╣²╡≈╙├ OPNDWG ║»╩² ),  ╗≥┤╙╔╧╥╗┤╬╡≈╙├
  1199.         block ╗≥ wblock ║»╩²┐¬╩╝, ╡╜▒╛┤╬╡≈╙├╕├║»╩²╬¬╓╣╦∙╔·│╔╡─╦∙╙╨╩╡╠σ╫÷
  1200.         │╔╥╗╕÷═╝╨╬┐Θ. ▓ó╜½╞Σ╔·│╔ DWG  ╬─╝■, ╝┤═Γ▓┐═╝╨╬┐Θ. ┐╔╙╔╞Σ╦ⁿ═╝╨╬╥²
  1201.         ╙├.
  1202.  
  1203. ▓╬╩²╦╡├≈:    blk_name╬¬╫╓╖√┤«└α╨═, ▒φ╩╛┐Θ├√. xb, yb╬¬╦½╛½╢╚╩╡╩²└α╨═, ▒φ╩╛┐Θ╡─
  1204.         ╗∙╡π.
  1205.  
  1206. ╡≈╙├╛┘└²:
  1207.  
  1208.     ---------------------------- C ---------------------------------
  1209.  
  1210.     int    wblock(blk_name,xb,yb);
  1211.     char    blk_name[];
  1212.     double    xb,yb;
  1213.  
  1214.     int    error;
  1215.     error = wblock("Desk",xb,yb);
  1216.  
  1217.     ------------------------- FORTRAN ------------------------------
  1218.  
  1219.     INTERFACE TO INTEGER*2 FUNCTION WBLOCK[C](BLKNAME[REFERENCE],
  1220.      +             XB,YB)
  1221.     CHARACTER*1 WBLKNAME
  1222.     DOUBLE PRECISION XB,YB
  1223.     END
  1224.  
  1225.     INTEGER*2 WBLOCK
  1226.     IERR = WBLOCK('Desk'C,XB,YB)
  1227.  
  1228.     ------------------------- PASCAL -------------------------------
  1229.  
  1230.     FUNCTION wblock(VARS blk_name:BYTE;xb,yb:REAL8):INTEGER2[C];EXTERN;
  1231.  
  1232.     PROCEDURE wblockp;
  1233.       VAR error:INTEGER2;
  1234.       BEGIN
  1235.         error = wblock("Desk"*CHR(0),xb,yb)
  1236.       END;
  1237.  
  1238. ╖╡╗╪╓╡╦╡├≈:    ╦∙╙╨╖╡╗╪╓╡▓╬╒╒2.5╜┌╡─╢¿╥σ.
  1239.  
  1240. ע:
  1241.  
  1242.  
  1243.