TlsUtility.cls
上传用户:yayuwl
上传日期:2022-03-18
资源大小:8952k
文件大小:30k
源码类别:

CAD

开发平台:

VBA

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "TlsUtility"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = False
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = True
  14. Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long
  15. Private m_oApp As AcadApplication
  16. Public Property Let Application(ByVal vNewValue As AcadApplication)
  17.     Set m_oApp = vNewValue
  18. End Property
  19. Private Property Get ThisDrawing() As AcadDocument
  20.     Set ThisDrawing = m_oApp.ActiveDocument
  21. End Property
  22. Public Function LeftStr(ByVal String1 As Variant, ByVal String2 As Variant)
  23. On Error Resume Next
  24.     LeftStr = Left(String1, InStr(String1, String2) - 1)
  25. End Function
  26. Public Function RightStr(ByVal String1 As Variant, ByVal String2 As Variant)
  27. On Error Resume Next
  28.     RightStr = Right(String1, Len(String1) - Len(String2) - InStr(String1, String2) + 1)
  29. End Function
  30. Public Sub SetCaption(ByVal NewCaption As String)
  31.     SetWindowText m_oApp.hwnd, NewCaption
  32. End Sub
  33. Public Function GetEntity() As AcadEntity
  34.     Dim obj As AcadEntity, pnt
  35.     
  36.     ThisDrawing.Utility.GetEntity obj, pnt
  37.     Set GetEntity = obj
  38.     
  39. End Function
  40. Public Function GetDistance(ByVal Point1, ByVal Point2)
  41.     GetDistance = Sqr((Point2(0) - Point1(0)) ^ 2 + (Point2(1) - Point1(1)) ^ 2)
  42.     
  43. End Function
  44. Public Function OutputPoint(ByVal Point As Variant)
  45.     ThisDrawing.Utility.Prompt vbCrLf & Point(0) & "," & Point(1) & "," & Point(2)
  46. End Function
  47. Public Function IsEqual(ByVal Value1 As Double, ByVal Value2 As Double) As Boolean
  48.     IsEqual = Abs(Value1 - Value2) < 10 ^ -8
  49.     
  50. End Function
  51. Public Function SetXRecord(ByVal DictName As String, ByVal Keyword As String, ByVal XRecordData)
  52.     Dim pDict As AcadDictionary
  53.     Dim pXRecord As AcadXRecord
  54.     Dim XRecordType() As Integer
  55.     Dim pLen As Integer
  56.     
  57.     Set pDict = ThisDrawing.Dictionaries.Add(DictName)
  58.     Set pXRecord = pDict.AddXRecord(Keyword)
  59.     
  60.     pLen = UBound(XRecordData)
  61.     ReDim XRecordType(pLen) As Integer
  62.     For i = 0 To pLen
  63.         Select Case VarType(XRecordData(i))
  64.             Case vbInteger, vbLong
  65.                 XRecordType(i) = 70
  66.             Case vbSingle, vbDouble
  67.                 XRecordType(i) = 40
  68.             Case vbString
  69.                 XRecordType(i) = 1
  70.         End Select
  71.     Next i
  72.     
  73.     pXRecord.SetXRecordData XRecordType, XRecordData
  74. End Function
  75. Public Function GetXRecord(ByVal DictName As String, ByVal Keyword As String)
  76.     Dim pDict As AcadDictionary
  77.     Dim pXRecord As AcadXRecord
  78.     Dim xt
  79.     Set pDict = ThisDrawing.Dictionaries(DictName)
  80.     Set pXRecord = pDict.GetObject(Keyword)
  81.     pXRecord.GetXRecordData xt, GetXRecord
  82. End Function
  83. Public Function CreateSelectionSet(Optional ByVal Name As String = "TlsSel") As TlsSelectionSet
  84.     Set CreateSelectionSet = New TlsSelectionSet
  85.     CreateSelectionSet.Application = m_oApp
  86.     CreateSelectionSet.Init Name
  87. End Function
  88. Public Function ActiveSelectionSet(Optional ByVal Name As String = "TlsSel") As TlsSelectionSet
  89.     Set ActiveSelectionSet = New TlsSelectionSet
  90.     ActiveSelectionSet.Application = m_oApp
  91.     ActiveSelectionSet.GetActiveSelectionSet
  92. End Function
  93. Public Function PickfirstSelectionSet(Optional ByVal Name As String = "TlsSel") As TlsSelectionSet
  94.     Set PickfirstSelectionSet = New TlsSelectionSet
  95.     PickfirstSelectionSet.Application = m_oApp
  96.     PickfirstSelectionSet.GetPickfirstSelectionSet
  97. End Function
  98. Public Function CreateArray(ByVal TypeName As VbVarType, ParamArray ValArray())
  99.     Dim nCount As Integer
  100.     Dim i
  101.     Dim mArray
  102.     
  103.     nCount = UBound(ValArray)
  104.     
  105.     Select Case TypeName
  106.     Case vbDouble
  107.         Dim dArray() As Double
  108.         ReDim dArray(nCount)
  109.         For i = 0 To nCount
  110.             dArray(i) = ValArray(i)
  111.         Next i
  112.         CreateArray = dArray
  113.     Case vbInteger
  114.         Dim nArray() As Integer
  115.         ReDim nArray(nCount)
  116.         For i = 0 To nCount
  117.             nArray(i) = ValArray(i)
  118.         Next i
  119.         CreateArray = nArray
  120.     Case vbString
  121.         Dim sArray() As String
  122.         ReDim sArray(nCount)
  123.         For i = 0 To nCount
  124.             sArray(i) = ValArray(i)
  125.         Next i
  126.         CreateArray = sArray
  127.     Case vbVariant
  128.         Dim vArray()
  129.         ReDim vArray(nCount)
  130.         For i = 0 To nCount
  131.             vArray(i) = ValArray(i)
  132.         Next i
  133.         CreateArray = vArray
  134.     Case vbObject
  135.         Dim oArray() As Object
  136.         ReDim oArray(nCount)
  137.         For i = 0 To nCount
  138.             Set oArray(i) = ValArray(i)
  139.         Next i
  140.         CreateArray = oArray
  141.     End Select
  142. End Function
  143. Public Function CreatePoint(Optional ByVal X As Double = 0#, Optional ByVal Y As Double = 0#, Optional ByVal Z As Double = 0#)
  144.     
  145.     Dim pnt(2) As Double
  146.     pnt(0) = X: pnt(1) = Y: pnt(2) = Z
  147.     
  148.     CreatePoint = pnt
  149.     
  150. End Function
  151. Public Function GetMTextUnformatString(ByVal str As String) As String
  152. '程序功能:按给定的MText字符串返回可用的字符串
  153. On Error Resume Next
  154.     Dim pStrs As New Collection
  155.     Dim pStack As Collection
  156.     Dim n As Integer
  157.     Dim pStr As String
  158.     Dim pEnd As String
  159.     
  160.     str = "{" & str & "}"
  161.     Do While Len(str) > 0
  162.     
  163.         n = IIf(Left(str, 1) = "", 2, 1)
  164.         pStr = Left(str, n)
  165.         '分割MText字符串为控制字符或单个字符
  166.         
  167.         If pStr = "}" Then
  168.         '遇"}"时出栈,直到"{"
  169.         
  170.             pEnd = pStrs(pStrs.Count)
  171.             Set pStack = New Collection
  172.             pStack.Add "*TlsCad*"
  173.             
  174.             Do While pEnd <> "{"
  175.                 
  176.                 pStack.Add pEnd, , 1
  177.                 pStrs.Remove pStrs.Count
  178.                 pEnd = pStrs(pStrs.Count)
  179.                 
  180.             Loop
  181.             
  182.             pStrs.Remove pStrs.Count
  183.             pStack.Remove pStack.Count
  184.             
  185.             For Each i In GetRtfString(pStack)
  186.             '调用GetRtfString函数返回可用的字符集合
  187.             
  188.                 pStrs.Add i
  189.                 
  190.             Next i
  191.             
  192.         Else
  193.         '当前字符入栈
  194.             pStrs.Add Left(str, n)
  195.             
  196.         End If
  197.         
  198.         str = Right(str, Len(str) - n)
  199.         
  200.     Loop
  201.     
  202.     For Each i In pStrs
  203.     '合并字符集合为字符串
  204.         If Len(i) = 2 Then
  205.         '处理、{、}
  206.             GetMTextUnformatString = GetMTextUnformatString & Right(i, 1)
  207.             
  208.         Else
  209.         
  210.             GetMTextUnformatString = GetMTextUnformatString & i
  211.             
  212.         End If
  213.         
  214.     Next i
  215.     
  216. End Function
  217. Private Function GetRtfString(ByVal stack As Collection) As Collection
  218. '程序功能:按给定的Rtf字符集合返回可用的字符集合
  219.     Dim pStrs As New Collection
  220.     Dim pStr As String, pType As Long
  221.     Dim i, j
  222.     
  223.     For Each i In stack
  224.         
  225.         If Len(i) = 1 Then
  226.         
  227.             pStrs.Add i
  228.             
  229.         ElseIf Len(i) = 2 Then
  230.         
  231.             pType = Asc(UCase(Right(i, 1)))
  232.             
  233.             Select Case pType
  234.             
  235.             Case 85, 92, 123, 125
  236.             ' or { or } or U
  237.     
  238.                 pStrs.Add i
  239.                 
  240.             Case 65, 67, 70, 72, 81, 84, 87
  241.             'A or C or F or H or Q or T or W
  242.             
  243.                 Do While stack(1) <> ";"
  244.                     stack.Remove 1
  245.                 Loop
  246.                 stack.Remove 1
  247.                 
  248.             Case 76, 79, 80
  249.             'L or O or P
  250.             
  251.             Case 83
  252.             'S
  253.             
  254.                 stack.Remove 1
  255.                 Do While stack(1) <> ";"
  256.                     If stack(1) <> "^" Then
  257.                         pStrs.Add stack(1)
  258.                     End If
  259.                     stack.Remove 1
  260.                 Loop
  261.                 stack.Remove 1
  262.                 
  263.             Case 126
  264.             '~
  265.             
  266.                 pStrs.Add " "
  267.                 
  268.             End Select
  269.             
  270.         End If
  271.     
  272.     Next i
  273.     Set GetRtfString = pStrs
  274.     
  275. End Function
  276. Private Function Hz2Py(ByVal HZ As String) As String
  277.     Dim PY As String
  278.     If Asc(HZ) < -20319 Or Asc(HZ) > -10247 Then
  279.         GetPY = HZ
  280.         Exit Function
  281.     End If
  282.     Select Case Asc(HZ)
  283.         Case -20319 To -20318
  284.             PY = "a"
  285.         Case -20317 To -20305
  286.             PY = "ai"
  287.         Case -20304 To -20296
  288.             PY = "an"
  289.         Case -20295 To -20293
  290.             PY = "ang"
  291.         Case -20292 To -20284
  292.             PY = "ao"
  293.         Case -20283 To -20266
  294.             PY = "ba"
  295.         Case -20265 To -20258
  296.             PY = "bai"
  297.         Case -20257 To -20243
  298.             PY = "ban"
  299.         Case -20242 To -20231
  300.             PY = "bang"
  301.         Case -20230 To -20052
  302.             PY = "bao"
  303.         Case -20051 To -20037
  304.             PY = "bei"
  305.         Case -20036 To -20033
  306.             PY = "ben"
  307.         Case -20032 To -20027
  308.             PY = "beng"
  309.         Case -20026 To -20003
  310.             PY = "bi"
  311.         Case -20002 To -19991
  312.             PY = "bian"
  313.         Case -19990 To -19987
  314.             PY = "biao"
  315.         Case -19986 To -19983
  316.             PY = "bie"
  317.         Case -19982 To -19977
  318.             PY = "bin"
  319.         Case -19976 To -19806
  320.             PY = "bing"
  321.         Case -19805 To -19785
  322.             PY = "bo"
  323.         Case -19784 To -19776
  324.             PY = "bu"
  325.         Case -19775 To -19775
  326.             PY = "ca"
  327.         Case -19774 To -19764
  328.             PY = "cai"
  329.         Case -19763 To -19757
  330.             PY = "can"
  331.         Case -19756 To -19752
  332.             PY = "cang"
  333.         Case -19751 To -19747
  334.             PY = "cao"
  335.         Case -19746 To -19742
  336.             PY = "ce"
  337.         Case -19741 To -19740
  338.             PY = "ceng"
  339.         Case -19739 To -19729
  340.             PY = "cha"
  341.         Case -19728 To -19726
  342.             PY = "chai"
  343.         Case -19725 To -19716
  344.             PY = "chan"
  345.         Case -19715 To -19541
  346.             PY = "chang"
  347.         Case -19540 To -19532
  348.             PY = "chao"
  349.         Case -19531 To -19526
  350.             PY = "che"
  351.         Case -19525 To -19516
  352.             PY = "chen"
  353.         Case -19515 To -19501
  354.             PY = "cheng"
  355.         Case -19500 To -19485
  356.             PY = "chi"
  357.         Case -19484 To -19480
  358.             PY = "chong"
  359.         Case -19479 To -19468
  360.             PY = "chou"
  361.         Case -19467 To -19290
  362.             PY = "chu"
  363.         Case -19289 To -19289
  364.             PY = "chuai"
  365.         Case -19288 To -19282
  366.             PY = "chuan"
  367.         Case -19281 To -19276
  368.             PY = "chuang"
  369.         Case -19275 To -19271
  370.             PY = "chui"
  371.         Case -19270 To -19264
  372.             PY = "chun"
  373.         Case -19263 To -19262
  374.             PY = "chuo"
  375.         Case -19261 To -19250
  376.             PY = "ci"
  377.         Case -19249 To -19244
  378.             PY = "cong"
  379.         Case -19243 To -19243
  380.             PY = "cou"
  381.         Case -19242 To -19239
  382.             PY = "cu"
  383.         Case -19238 To -19236
  384.             PY = "cuan"
  385.         Case -19235 To -19228
  386.             PY = "cui"
  387.         Case -19227 To -19225
  388.             PY = "cun"
  389.         Case -19224 To -19219
  390.             PY = "cuo"
  391.         Case -19218 To -19213
  392.             PY = "da"
  393.         Case -19212 To -19039
  394.             PY = "dai"
  395.         Case -19038 To -19024
  396.             PY = "dan"
  397.         Case -19023 To -19019
  398.             PY = "dang"
  399.         Case -19018 To -19007
  400.             PY = "dao"
  401.         Case -19006 To -19004
  402.             PY = "de"
  403.         Case -19003 To -18997
  404.             PY = "deng"
  405.         Case -18996 To -18978
  406.             PY = "di"
  407.         Case -18977 To -18962
  408.             PY = "dian"
  409.         Case -18961 To -18953
  410.             PY = "diao"
  411.         Case -18952 To -18784
  412.             PY = "die"
  413.         Case -18783 To -18775
  414.             PY = "ding"
  415.         Case -18774 To -18774
  416.             PY = "diu"
  417.         Case -18773 To -18764
  418.             PY = "dong"
  419.         Case -18763 To -18757
  420.             PY = "dou"
  421.         Case -18756 To -18742
  422.             PY = "du"
  423.         Case -18741 To -18736
  424.             PY = "duan"
  425.         Case -18735 To -18732
  426.             PY = "dui"
  427.         Case -18731 To -18723
  428.             PY = "dun"
  429.         Case -18722 To -18711
  430.             PY = "duo"
  431.         Case -18710 To -18698
  432.             PY = "e"
  433.         Case -18697 To -18697
  434.             PY = "en"
  435.         Case -18696 To -18527
  436.             PY = "er"
  437.         Case -18526 To -18519
  438.             PY = "fa"
  439.         Case -18518 To -18502
  440.             PY = "fan"
  441.         Case -18501 To -18491
  442.             PY = "fang"
  443.         Case -18490 To -18479
  444.             PY = "fei"
  445.         Case -18478 To -18464
  446.             PY = "fen"
  447.         Case -18463 To -18449
  448.             PY = "feng"
  449.         Case -18448 To -18448
  450.             PY = "fo"
  451.         Case -18447 To -18447
  452.             PY = "fou"
  453.         Case -18446 To -18240
  454.             PY = "fu"
  455.         Case -18239 To -18238
  456.             PY = "ga"
  457.         Case -18237 To -18232
  458.             PY = "gai"
  459.         Case -18231 To -18221
  460.             PY = "gan"
  461.         Case -18220 To -18212
  462.             PY = "gang"
  463.         Case -18211 To -18202
  464.             PY = "gao"
  465.         Case -18201 To -18185
  466.             PY = "ge"
  467.         Case -18184 To -18184
  468.             PY = "gei"
  469.         Case -18183 To -18182
  470.             PY = "gen"
  471.         Case -18181 To -18013
  472.             PY = "geng"
  473.         Case -18012 To -17998
  474.             PY = "gong"
  475.         Case -17997 To -17989
  476.             PY = "gou"
  477.         Case -17988 To -17971
  478.             PY = "gu"
  479.         Case -17970 To -17965
  480.             PY = "gua"
  481.         Case -17964 To -17962
  482.             PY = "guai"
  483.         Case -17961 To -17951
  484.             PY = "guan"
  485.         Case -17950 To -17948
  486.             PY = "guang"
  487.         Case -17947 To -17932
  488.             PY = "gui"
  489.         Case -17931 To -17929
  490.             PY = "gun"
  491.         Case -17928 To -17923
  492.             PY = "guo"
  493.         Case -17922 To -17760
  494.             PY = "ha"
  495.         Case -17759 To -17753
  496.             PY = "hai"
  497.         Case -17752 To -17734
  498.             PY = "han"
  499.         Case -17733 To -17731
  500.             PY = "hang"
  501.         Case -17730 To -17722
  502.             PY = "hao"
  503.         Case -17721 To -17704
  504.             PY = "he"
  505.         Case -17703 To -17702
  506.             PY = "hei"
  507.         Case -17701 To -17698
  508.             PY = "hen"
  509.         Case -17697 To -17693
  510.             PY = "heng"
  511.         Case -17692 To -17684
  512.             PY = "hong"
  513.         Case -17683 To -17677
  514.             PY = "hou"
  515.         Case -17676 To -17497
  516.             PY = "hu"
  517.         Case -17496 To -17488
  518.             PY = "hua"
  519.         Case -17487 To -17483
  520.             PY = "huai"
  521.         Case -17482 To -17469
  522.             PY = "huan"
  523.         Case -17468 To -17455
  524.             PY = "huang"
  525.         Case -17454 To -17434
  526.             PY = "hui"
  527.         Case -17433 To -17428
  528.             PY = "hun"
  529.         Case -17427 To -17418
  530.             PY = "huo"
  531.         Case -17417 To -17203
  532.             PY = "ji"
  533.         Case -17202 To -17186
  534.             PY = "jia"
  535.         Case -17185 To -16984
  536.             PY = "jian"
  537.         Case -16983 To -16971
  538.             PY = "jiang"
  539.         Case -16970 To -16943
  540.             PY = "jiao"
  541.         Case -16942 To -16916
  542.             PY = "jie"
  543.         Case -16915 To -16734
  544.             PY = "jin"
  545.         Case -16733 To -16709
  546.             PY = "jing"
  547.         Case -16708 To -16707
  548.             PY = "jiong"
  549.         Case -16706 To -16690
  550.             PY = "jiu"
  551.         Case -16689 To -16665
  552.             PY = "ju"
  553.         Case -16664 To -16658
  554.             PY = "juan"
  555.         Case -16657 To -16648
  556.             PY = "jue"
  557.         Case -16647 To -16475
  558.             PY = "jun"
  559.         Case -16474 To -16471
  560.             PY = "ka"
  561.         Case -16470 To -16466
  562.             PY = "kai"
  563.         Case -16465 To -16460
  564.             PY = "kan"
  565.         Case -16459 To -16453
  566.             PY = "kang"
  567.         Case -16452 To -16449
  568.             PY = "kao"
  569.         Case -16448 To -16434
  570.             PY = "ke"
  571.         Case -16433 To -16430
  572.             PY = "ken"
  573.         Case -16429 To -16428
  574.             PY = "keng"
  575.         Case -16427 To -16424
  576.             PY = "kong"
  577.         Case -16423 To -16420
  578.             PY = "kou"
  579.         Case -16419 To -16413
  580.             PY = "ku"
  581.         Case -16412 To -16408
  582.             PY = "kua"
  583.         Case -16407 To -16404
  584.             PY = "kuai"
  585.         Case -16403 To -16402
  586.             PY = "kuan"
  587.         Case -16401 To -16394
  588.             PY = "kuang"
  589.         Case -16393 To -16221
  590.             PY = "kui"
  591.         Case -16220 To -16217
  592.             PY = "kun"
  593.         Case -16216 To -16213
  594.             PY = "kuo"
  595.         Case -16212 To -16206
  596.             PY = "la"
  597.         Case -16205 To -16203
  598.             PY = "lai"
  599.         Case -16202 To -16188
  600.             PY = "lan"
  601.         Case -16187 To -16181
  602.             PY = "lang"
  603.         Case -16180 To -16172
  604.             PY = "lao"
  605.         Case -16171 To -16170
  606.             PY = "le"
  607.         Case -16169 To -16159
  608.             PY = "lei"
  609.         Case -16158 To -16156
  610.             PY = "leng"
  611.         Case -16155 To -15960
  612.             PY = "li"
  613.         Case -15959 To -15959
  614.             PY = "lia"
  615.         Case -15958 To -15945
  616.             PY = "lian"
  617.         Case -15944 To -15934
  618.             PY = "liang"
  619.         Case -15933 To -15921
  620.             PY = "liao"
  621.         Case -15920 To -15916
  622.             PY = "lie"
  623.         Case -15915 To -15904
  624.             PY = "lin"
  625.         Case -15903 To -15890
  626.             PY = "ling"
  627.         Case -15889 To -15879
  628.             PY = "liu"
  629.         Case -15878 To -15708
  630.             PY = "long"
  631.         Case -15707 To -15702
  632.             PY = "lou"
  633.         Case -15701 To -15682
  634.             PY = "lu"
  635.         Case -15681 To -15668
  636.             PY = "lv"
  637.         Case -15667 To -15662
  638.             PY = "luan"
  639.         Case -15661 To -15660
  640.             PY = "lue"
  641.         Case -15659 To -15653
  642.             PY = "lun"
  643.         Case -15652 To -15641
  644.             PY = "luo"
  645.         Case -15640 To -15632
  646.             PY = "ma"
  647.         Case -15631 To -15626
  648.             PY = "mai"
  649.         Case -15625 To -15455
  650.             PY = "man"
  651.         Case -15454 To -15449
  652.             PY = "mang"
  653.         Case -15448 To -15437
  654.             PY = "mao"
  655.         Case -15436 To -15436
  656.             PY = "me"
  657.         Case -15435 To -15420
  658.             PY = "mei"
  659.         Case -15419 To -15417
  660.             PY = "men"
  661.         Case -15416 To -15409
  662.             PY = "meng"
  663.         Case -15408 To -15395
  664.             PY = "mi"
  665.         Case -15394 To -15386
  666.             PY = "mian"
  667.         Case -15385 To -15378
  668.             PY = "miao"
  669.         Case -15377 To -15376
  670.             PY = "mie"
  671.         Case -15375 To -15370
  672.             PY = "min"
  673.         Case -15369 To -15364
  674.             PY = "ming"
  675.         Case -15363 To -15363
  676.             PY = "miu"
  677.         Case -15362 To -15184
  678.             PY = "mo"
  679.         Case -15183 To -15181
  680.             PY = "mou"
  681.         Case -15180 To -15166
  682.             PY = "mu"
  683.         Case -15165 To -15159
  684.             PY = "na"
  685.         Case -15158 To -15154
  686.             PY = "nai"
  687.         Case -15153 To -15151
  688.             PY = "nan"
  689.         Case -15150 To -15150
  690.             PY = "nang"
  691.         Case -15149 To -15145
  692.             PY = "nao"
  693.         Case -15144 To -15144
  694.             PY = "ne"
  695.         Case -15143 To -15142
  696.             PY = "nei"
  697.         Case -15141 To -15141
  698.             PY = "nen"
  699.         Case -15140 To -15140
  700.             PY = "neng"
  701.         Case -15139 To -15129
  702.             PY = "ni"
  703.         Case -15128 To -15122
  704.             PY = "nian"
  705.         Case -15121 To -15120
  706.             PY = "niang"
  707.         Case -15119 To -15118
  708.             PY = "niao"
  709.         Case -15117 To -15111
  710.             PY = "nie"
  711.         Case -15110 To -15110
  712.             PY = "nin"
  713.         Case -15109 To -14942
  714.             PY = "ning"
  715.         Case -14941 To -14938
  716.             PY = "niu"
  717.         Case -14937 To -14934
  718.             PY = "nong"
  719.         Case -14933 To -14931
  720.             PY = "nu"
  721.         Case -14930 To -14930
  722.             PY = "nv"
  723.         Case -14929 To -14929
  724.             PY = "nuan"
  725.         Case -14928 To -14927
  726.             PY = "nue"
  727.         Case -14926 To -14923
  728.             PY = "nuo"
  729.         Case -14922 To -14922
  730.             PY = "o"
  731.         Case -14921 To -14915
  732.             PY = "ou"
  733.         Case -14914 To -14909
  734.             PY = "pa"
  735.         Case -14908 To -14903
  736.             PY = "pai"
  737.         Case -14902 To -14895
  738.             PY = "pan"
  739.         Case -14894 To -14890
  740.             PY = "pang"
  741.         Case -14889 To -14883
  742.             PY = "pao"
  743.         Case -14882 To -14874
  744.             PY = "pei"
  745.         Case -14873 To -14872
  746.             PY = "pen"
  747.         Case -14871 To -14858
  748.             PY = "peng"
  749.         Case -14857 To -14679
  750.             PY = "pi"
  751.         Case -14678 To -14675
  752.             PY = "pian"
  753.         Case -14674 To -14671
  754.             PY = "piao"
  755.         Case -14670 To -14669
  756.             PY = "pie"
  757.         Case -14668 To -14664
  758.             PY = "pin"
  759.         Case -14663 To -14655
  760.             PY = "ping"
  761.         Case -14654 To -14646
  762.             PY = "po"
  763.         Case -14645 To -14631
  764.             PY = "pu"
  765.         Case -14630 To -14595
  766.             PY = "qi"
  767.         Case -14594 To -14430
  768.             PY = "qia"
  769.         Case -14429 To -14408
  770.             PY = "qian"
  771.         Case -14407 To -14400
  772.             PY = "qiang"
  773.         Case -14399 To -14385
  774.             PY = "qiao"
  775.         Case -14384 To -14380
  776.             PY = "qie"
  777.         Case -14379 To -14369
  778.             PY = "qin"
  779.         Case -14368 To -14356
  780.             PY = "qing"
  781.         Case -14355 To -14354
  782.             PY = "qiong"
  783.         Case -14353 To -14346
  784.             PY = "qiu"
  785.         Case -14345 To -14171
  786.             PY = "qu"
  787.         Case -14170 To -14160
  788.             PY = "quan"
  789.         Case -14159 To -14152
  790.             PY = "que"
  791.         Case -14151 To -14150
  792.             PY = "qun"
  793.         Case -14149 To -14146
  794.             PY = "ran"
  795.         Case -14145 To -14141
  796.             PY = "rang"
  797.         Case -14140 To -14138
  798.             PY = "rao"
  799.         Case -14137 To -14136
  800.             PY = "re"
  801.         Case -14135 To -14126
  802.             PY = "ren"
  803.         Case -14125 To -14124
  804.             PY = "reng"
  805.         Case -14123 To -14123
  806.             PY = "ri"
  807.         Case -14122 To -14113
  808.             PY = "rong"
  809.         Case -14112 To -14110
  810.             PY = "rou"
  811.         Case -14109 To -14100
  812.             PY = "ru"
  813.         Case -14099 To -14098
  814.             PY = "ruan"
  815.         Case -14097 To -14095
  816.             PY = "rui"
  817.         Case -14094 To -14093
  818.             PY = "run"
  819.         Case -14092 To -14091
  820.             PY = "ruo"
  821.         Case -14090 To -14088
  822.             PY = "sa"
  823.         Case -14087 To -14084
  824.             PY = "sai"
  825.         Case -14083 To -13918
  826.             PY = "san"
  827.         Case -13917 To -13915
  828.             PY = "sang"
  829.         Case -13914 To -13911
  830.             PY = "sao"
  831.         Case -13910 To -13908
  832.             PY = "se"
  833.         Case -13907 To -13907
  834.             PY = "sen"
  835.         Case -13906 To -13906
  836.             PY = "seng"
  837.         Case -13905 To -13897
  838.             PY = "sha"
  839.         Case -13896 To -13895
  840.             PY = "shai"
  841.         Case -13894 To -13879
  842.             PY = "shan"
  843.         Case -13878 To -13871
  844.             PY = "shang"
  845.         Case -13870 To -13860
  846.             PY = "shao"
  847.         Case -13859 To -13848
  848.             PY = "she"
  849.         Case -13847 To -13832
  850.             PY = "shen"
  851.         Case -13831 To -13659
  852.             PY = "sheng"
  853.         Case -13658 To -13612
  854.             PY = "shi"
  855.         Case -13611 To -13602
  856.             PY = "shou"
  857.         Case -13601 To -13407
  858.             PY = "shu"
  859.         Case -13406 To -13405
  860.             PY = "shua"
  861.         Case -13404 To -13401
  862.             PY = "shuai"
  863.         Case -13400 To -13399
  864.             PY = "shuan"
  865.         Case -13398 To -13396
  866.             PY = "shuang"
  867.         Case -13395 To -13392
  868.             PY = "shui"
  869.         Case -13391 To -13388
  870.             PY = "shun"
  871.         Case -13387 To -13384
  872.             PY = "shuo"
  873.         Case -13383 To -13368
  874.             PY = "si"
  875.         Case -13367 To -13360
  876.             PY = "song"
  877.         Case -13359 To -13357
  878.             PY = "sou"
  879.         Case -13356 To -13344
  880.             PY = "su"
  881.         Case -13343 To -13341
  882.             PY = "suan"
  883.         Case -13340 To -13330
  884.             PY = "sui"
  885.         Case -13329 To -13327
  886.             PY = "sun"
  887.         Case -13326 To -13319
  888.             PY = "suo"
  889.         Case -13318 To -13148
  890.             PY = "ta"
  891.         Case -13147 To -13139
  892.             PY = "tai"
  893.         Case -13138 To -13121
  894.             PY = "tan"
  895.         Case -13120 To -13108
  896.             PY = "tang"
  897.         Case -13107 To -13097
  898.             PY = "tao"
  899.         Case -13096 To -13096
  900.             PY = "te"
  901.         Case -13095 To -13092
  902.             PY = "teng"
  903.         Case -13091 To -13077
  904.             PY = "ti"
  905.         Case -13076 To -13069
  906.             PY = "tian"
  907.         Case -13068 To -13064
  908.             PY = "tiao"
  909.         Case -13063 To -13061
  910.             PY = "tie"
  911.         Case -13060 To -12889
  912.             PY = "ting"
  913.         Case -12888 To -12876
  914.             PY = "tong"
  915.         Case -12875 To -12872
  916.             PY = "tou"
  917.         Case -12871 To -12861
  918.             PY = "tu"
  919.         Case -12860 To -12859
  920.             PY = "tuan"
  921.         Case -12858 To -12853
  922.             PY = "tui"
  923.         Case -12852 To -12850
  924.             PY = "tun"
  925.         Case -12849 To -12839
  926.             PY = "tuo"
  927.         Case -12838 To -12832
  928.             PY = "wa"
  929.         Case -12831 To -12830
  930.             PY = "wai"
  931.         Case -12829 To -12813
  932.             PY = "wan"
  933.         Case -12812 To -12803
  934.             PY = "wang"
  935.         Case -12802 To -12608
  936.             PY = "wei"
  937.         Case -12607 To -12598
  938.             PY = "wen"
  939.         Case -12597 To -12595
  940.             PY = "weng"
  941.         Case -12594 To -12586
  942.             PY = "wo"
  943.         Case -12585 To -12557
  944.             PY = "wu"
  945.         Case -12556 To -12360
  946.             PY = "xi"
  947.         Case -12359 To -12347
  948.             PY = "xia"
  949.         Case -12346 To -12321
  950.             PY = "xian"
  951.         Case -12320 To -12301
  952.             PY = "xiang"
  953.         Case -12300 To -12121
  954.             PY = "xiao"
  955.         Case -12120 To -12100
  956.             PY = "xie"
  957.         Case -12099 To -12090
  958.             PY = "xin"
  959.         Case -12089 To -12075
  960.             PY = "xing"
  961.         Case -12074 To -12068
  962.             PY = "xiong"
  963.         Case -12067 To -12059
  964.             PY = "xiu"
  965.         Case -12058 To -12040
  966.             PY = "xu"
  967.         Case -12039 To -11868
  968.             PY = "xuan"
  969.         Case -11867 To -11862
  970.             PY = "xue"
  971.         Case -11861 To -11848
  972.             PY = "xun"
  973.         Case -11847 To -11832
  974.             PY = "ya"
  975.         Case -11831 To -11799
  976.             PY = "yan"
  977.         Case -11798 To -11782
  978.             PY = "yang"
  979.         Case -11781 To -11605
  980.             PY = "yao"
  981.         Case -11604 To -11590
  982.             PY = "ye"
  983.         Case -11589 To -11537
  984.             PY = "yi"
  985.         Case -11536 To -11359
  986.             PY = "yin"
  987.         Case -11358 To -11341
  988.             PY = "ying"
  989.         Case -11340 To -11340
  990.             PY = "yo"
  991.         Case -11339 To -11325
  992.             PY = "yong"
  993.         Case -11324 To -11304
  994.             PY = "you"
  995.         Case -11303 To -11098
  996.             PY = "yu"
  997.         Case -11097 To -11078
  998.             PY = "yuan"
  999.         Case -11077 To -11068
  1000.             PY = "yue"
  1001.         Case -11067 To -11056
  1002.             PY = "yun"
  1003.         Case -11055 To -11053
  1004.             PY = "za"
  1005.         Case -11052 To -11046
  1006.             PY = "zai"
  1007.         Case -11045 To -11042
  1008.             PY = "zan"
  1009.         Case -11041 To -11039
  1010.             PY = "zang"
  1011.         Case -11038 To -11025
  1012.             PY = "zao"
  1013.         Case -11024 To -11021
  1014.             PY = "ze"
  1015.         Case -11020 To -11020
  1016.             PY = "zei"
  1017.         Case -11019 To -11019
  1018.             PY = "zen"
  1019.         Case -11018 To -11015
  1020.             PY = "zeng"
  1021.         Case -11014 To -10839
  1022.             PY = "zha"
  1023.         Case -10838 To -10833
  1024.             PY = "zhai"
  1025.         Case -10832 To -10816
  1026.             PY = "zhan"
  1027.         Case -10815 To -10801
  1028.             PY = "zhang"
  1029.         Case -10800 To -10791
  1030.             PY = "zhao"
  1031.         Case -10790 To -10781
  1032.             PY = "zhe"
  1033.         Case -10780 To -10765
  1034.             PY = "zhen"
  1035.         Case -10764 To -10588
  1036.             PY = "zheng"
  1037.         Case -10587 To -10545
  1038.             PY = "zhi"
  1039.         Case -10544 To -10534
  1040.             PY = "zhong"
  1041.         Case -10533 To -10520
  1042.             PY = "zhou"
  1043.         Case -10519 To -10332
  1044.             PY = "zhu"
  1045.         Case -10331 To -10330
  1046.             PY = "zhua"
  1047.         Case -10329 To -10329
  1048.             PY = "zhuai"
  1049.         Case -10328 To -10323
  1050.             PY = "zhuan"
  1051.         Case -10322 To -10316
  1052.             PY = "zhuang"
  1053.         Case -10315 To -10310
  1054.             PY = "zhui"
  1055.         Case -10309 To -10308
  1056.             PY = "zhun"
  1057.         Case -10307 To -10297
  1058.             PY = "zhuo"
  1059.         Case -10296 To -10282
  1060.             PY = "zi"
  1061.         Case -10281 To -10275
  1062.             PY = "zong"
  1063.         Case -10274 To -10271
  1064.             PY = "zou"
  1065.         Case -10270 To -10263
  1066.             PY = "zu"
  1067.         Case -10262 To -10261
  1068.             PY = "zuan"
  1069.         Case -10260 To -10257
  1070.             PY = "zui"
  1071.         Case -10256 To -10255
  1072.             PY = "zun"
  1073.         Case -10254 To -10248
  1074.             PY = "zuo"
  1075.     End Select
  1076.     Hz2Py = PY
  1077. End Function
  1078. Public Function Hz2Pys(ByVal HZString As String) As String
  1079.     Dim i As Integer
  1080.     Dim PYString As String
  1081.     PYString = ""
  1082.     For i = 1 To Len(HZString)
  1083.         PYString = PYString & Hz2Py(Mid(HZString, i, 1)) & " "
  1084.     Next
  1085.     PYString = Left(PYString, Len(PYString) - 1)
  1086.     Hz2Pys = PYString
  1087. End Function