home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1997 March / VPR9703A.ISO / VPR_DATA / DOGA / SOURCES / POLYEDIT.LZH / MACRO / DISP.M < prev    next >
Text File  |  1996-07-02  |  16KB  |  773 lines

  1. var private const MIN_ZOOM_SIZE = -10;
  2. var private const MAX_ZOOM_SIZE = 200;
  3. //
  4. //    現在のカーソルを画面中央に
  5. //
  6. function DispCenter()
  7. {
  8.     var    temp_vec, temp;
  9.     var    win = WIN_PERS;
  10.  
  11.     temp = Position(Cursor())*pers_mat;
  12.     temp_vec = temp-vector(abs(temp),0,0);
  13.     pers_mat = pers_mat*move(UNIT_MATRIX, -temp_vec);
  14.     SetPers( pers_mat );
  15.     if( Cursor() != Center())
  16.     {
  17.         Center( Cursor());
  18.         win = win | WIN_XY | WIN_YZ | WIN_ZX;
  19.     }
  20.     Update( CLEAR, win );
  21. }
  22.  
  23. //
  24. //    フィット
  25. //
  26. function Fit()
  27. {
  28.     var    prev_sel, temp_mat;
  29.     var    pos[2], range[3], size, len;
  30.     var    temp, width, height, win_type;
  31.  
  32.     prev_sel = Select();
  33.     if(( ShiftStat() & 1 ) != 1 )
  34.         SelectAll( TRUE );
  35.     if( SelectPolygons() == 0 )
  36.     {
  37.         Warning();
  38.         if( MESSAGE == ON )
  39.             Message( "面がないので表示範囲を設定できません" );
  40.         return;
  41.     }
  42.     else
  43.     {
  44.         SelectBox( pos );
  45.         Center( (pos[0]+pos[1])*scale(UNIT_MATRIX, 0.5, 0.5, 0.5 ));
  46.     }
  47.  
  48.     len = abs(Position(pos[1])-Position(pos[0]))/2;
  49.     width = ViewWidth( WIN_PERS );
  50.     height = ViewWidth( WIN_PERS );
  51.     if( width > height )
  52.         len = 1.5*(0.0+width)*len/(height*tan((0.0+pers_deg/2)*PI/180));
  53.     else
  54.         len = 1.5*len/tan((0.0+pers_deg/2)*PI/180 );
  55.     temp = Position(Center())*pers_mat-vector(len,0,0);
  56.     pers_mat = pers_mat*move(UNIT_MATRIX, -temp);
  57.  
  58.     win_type = Window();
  59.     if( win_type == WIN_ALL )
  60.         win_type = WIN_XY;
  61.     width = ViewWidth( win_type );
  62.     height = ViewHeight( win_type );
  63.     if( width > height )
  64.         len = height;
  65.     else
  66.         len = width;
  67.  
  68.     element(Position(pos[1])-Position(pos[0]), range );
  69.     if( range[0] > range[1] )
  70.     {
  71.         if( range[0] > range[2] )
  72.             size = range[0];
  73.         else
  74.             size = range[2];
  75.     }
  76.     else
  77.     {
  78.         if( range[1] > range[2] )
  79.             size = range[1];
  80.         else
  81.             size = range[2];
  82.     }
  83.     size = size*3/2;
  84.     if( zoomsize > 0 )
  85.         temp = (0.0+zoomsize)*size/len;
  86.     else
  87.         temp = size/((0.0-zoomsize)*len);
  88.     if( temp < 1 )
  89.         temp = (-1.0)/temp;
  90.     zoomsize = 0+temp;
  91.     if( zoomsize > MAX_ZOOM_SIZE )
  92.     {
  93.         zoomsize = MAX_ZOOM_SIZE;
  94.         ButtonEnable( zoomdown_id, BUTTON_DISABLE );
  95.         UpdateButton( zoomdown_id );
  96.     }
  97.     if( zoomsize < MIN_ZOOM_SIZE )
  98.         zoomsize = MIN_ZOOM_SIZE;
  99.     if( zoomsize == 0 )
  100.         zoomsize = 1;
  101.     if( zoomsize > 1 )
  102.     {
  103.         ButtonEnable( zoomup_id, BUTTON_ENABLE );
  104.         UpdateButton( zoomup_id );
  105.     }
  106.     else
  107.     {
  108.         ButtonEnable( zoomup_id, BUTTON_DISABLE );
  109.         UpdateButton( zoomup_id );
  110.     }
  111.     if( zoomsize < MAX_ZOOM_SIZE )
  112.     {
  113.         ButtonEnable( zoomdown_id, BUTTON_ENABLE );
  114.         UpdateButton( zoomdown_id );
  115.     }
  116.     SetZoom( -zoomsize );
  117.     StatusZoom();
  118.     Select( prev_sel );
  119.     SetPers( pers_mat );
  120.     Update( CLEAR , WIN_XY | WIN_YZ | WIN_ZX );
  121. }
  122.  
  123. //
  124. //    表示範囲指定
  125. //
  126. function SelectZoom()
  127. {
  128.     var width_size, height_size;
  129.     var cur0, cur1;
  130.     var key, pos_temp[3], pos0[3], pos1[3], size, temp, len;
  131.     var draw_flag = ON, pick;
  132.     var ver, i, j;
  133.  
  134.     PushMenu();
  135.     MenuPosition( Menu( " 表示範囲指定中",
  136.             "指定中止    ESC", MenuQuit ), Menu_Title );
  137.     quit_flag = FALSE;
  138.  
  139.     ver = 0;
  140.     temp = 0;
  141.     cur = Cursor();
  142.     cur0 = cur;
  143.     pick = cur;
  144.     input_flag = OFF;
  145.     while( TRUE )
  146.     {
  147.         if( draw_flag == ON )
  148.         {
  149.             if( ver != 0 )
  150.                 DrawBox( cur0, cur );
  151.         }
  152.         key = WaitEvent();
  153.         if( key )
  154.             input_flag = ON;
  155.         cur = Cursor();
  156.         key = KeyCode();
  157.         if( input_flag | key == INPUT_KEY )
  158.         {
  159.             if( ver == 0 )
  160.             {
  161.                 cur0 = cur;
  162.                 ver++;
  163.             }
  164.             else
  165.             {
  166.                 cur1 = cur;
  167.                 break;
  168.             }
  169.         }
  170.         else if( key == ESC | quit_flag == TRUE )
  171.         {
  172.             PopandClear( OVERWRITE );
  173.             return;
  174.         }
  175.         else if( key == BS )
  176.         {
  177.             if( ver == 0 )
  178.             {
  179.                 PopandClear( OVERWRITE );
  180.                 return;
  181.             }
  182.             else
  183.             {
  184.                 ver--;
  185.                 DrawBox( pick, cur0 );
  186.             }
  187.         }
  188.         else
  189.             temp = KeyProcess( key );
  190.         if( ((key!=0 ) & (key != INPUT_KEY)) | ( pick != Cursor()) )
  191.         {
  192.             draw_flag = ON;
  193.             if( ver != 0 )
  194.                 DrawBox( cur0, pick );
  195.         }
  196.         else
  197.             draw_flag = OFF;
  198.         pick = Cursor();
  199.         input_flag = OFF;
  200.     }
  201.     Clear( OVERWRITE );
  202.  
  203.     if( cur0 == cur1 )
  204.         Center( cur0 );
  205.     else
  206.     {
  207.         temp = MouseWindow();
  208.         if( temp == WIN_PERS )
  209.             temp = WIN_XY;
  210.         width_size = ViewWidth( temp );
  211.         height_size = ViewHeight( temp );
  212.         Position( cur0, pos0 );
  213.         Position( cur1, pos1 );
  214.         Center(( cur0 + cur1 )*scale(UNIT_MATRIX, 0.5, 0.5, 0.5 ));
  215.         pos0[0] = 0.0+abs( pos0[0] - pos1[0] );
  216.         pos0[1] = 0.0+abs( pos0[1] - pos1[1] );
  217.         pos0[2] = 0.0+abs( pos0[2] - pos1[2] );
  218.         if( temp == WIN_XY )
  219.         {
  220.             i = 0;
  221.             j = 1;
  222.         }
  223.         else if( temp == WIN_YZ )
  224.         {
  225.             i = 1;
  226.             j = 2;
  227.         }
  228.         else
  229.         {
  230.             i = 0;
  231.             j = 2;
  232.         }
  233.         if( pos0[i] == 0 & pos0[j] == 0 )
  234.         {
  235.             Update( CLEAR, WIN_XY | WIN_YZ | WIN_ZX );
  236.             PopandClear( OVERWRITE );
  237.             return;
  238.         }
  239.         if( pos0[i] * height_size / width_size > pos0[j] )
  240.         {
  241.             size = pos0[i];
  242.             len = width_size;
  243.         }
  244.         else
  245.         {
  246.             size = pos0[j];
  247.             len = height_size;
  248.         }
  249.         if( ShiftStat() & 1 )
  250.         {
  251.             if( zoomsize > 0 )
  252.                 temp = (0.0+zoomsize)*len/size;
  253.             else
  254.                 temp = ((0.0+len)/(size))/(-zoomsize);
  255.             if( temp < 1 )
  256.             {
  257.                 temp = (-1.0)/temp;
  258.                 if( temp < MIN_ZOOM_SIZE )
  259.                     temp = MIN_ZOOM_SIZE;
  260.             }
  261.         }
  262.         else
  263.         {
  264.             if( zoomsize > 0 )
  265.                 temp = (0.0+zoomsize) * size / len;
  266.             else
  267.                 temp = size/((0.0-zoomsize)*len);
  268.             if( temp < 1 )
  269.                 temp = (-1.0)/temp;
  270.         }
  271.         zoomsize = 0+temp;
  272.     }
  273.     if( zoomsize > MAX_ZOOM_SIZE )
  274.     {
  275.         zoomsize = MAX_ZOOM_SIZE;
  276.         ButtonEnable( zoomdown_id, BUTTON_DISABLE );
  277.         UpdateButton( zoomdown_id );
  278.     }
  279.     if( zoomsize < MIN_ZOOM_SIZE )
  280.         zoomsize = MIN_ZOOM_SIZE;
  281.     if( zoomsize == 0 )
  282.         zoomsize = 1;
  283.     if( zoomsize > 1 )
  284.     {
  285.         ButtonEnable( zoomup_id, BUTTON_ENABLE );
  286.         UpdateButton( zoomup_id );
  287.     }
  288.     else
  289.     {
  290.         ButtonEnable( zoomup_id, BUTTON_DISABLE );
  291.         UpdateButton( zoomup_id );
  292.     }
  293.     if( zoomsize < MAX_ZOOM_SIZE )
  294.     {
  295.         ButtonEnable( zoomdown_id, BUTTON_ENABLE );
  296.         UpdateButton( zoomdown_id );
  297.     }
  298.     SetZoom( -zoomsize );
  299.     StatusZoom();
  300.     Update( CLEAR, WIN_XY | WIN_YZ | WIN_ZX );
  301.     PopMenu();
  302. }
  303.  
  304. function WindowChange()
  305. {
  306.     var    win;
  307.     var    num;
  308.     var    msg0[5];
  309.  
  310.     win = Window();
  311.     if( win == WIN_ALL )
  312.         num = 0;
  313.     else if( win == WIN_XY )
  314.         num = 1;
  315.     else if( win == WIN_YZ )
  316.         num = 2;
  317.     else if( win == WIN_ZX )
  318.         num = 3;
  319.     else
  320.         num = 4;
  321.  
  322.     DlogOpen( " 表示図面変更", 1 );
  323.     msg0[0] = " 四面図 ";
  324.     msg0[1] = "XY図面";
  325.     msg0[2] = "YZ図面";
  326.     msg0[3] = "ZX図面";
  327.     msg0[4] = " 透視図 ";
  328.     DlogSelect( 0, "表示図面", msg0, num );
  329.     if( DlogWait() )
  330.     {
  331.         win = DlogAnswer( 0 );
  332.         if( win == 0 )
  333.             Window( WIN_ALL );
  334.         else if( win == 1 )
  335.             Window( WIN_XY );
  336.         else if( win == 2 )
  337.             Window( WIN_YZ );
  338.         else if( win == 3 )
  339.             Window( WIN_ZX );
  340.         else
  341.             Window( WIN_PERS );
  342.     }
  343. }
  344.  
  345. function Invisible()
  346. {
  347.     var    temp;
  348. //    if ( SelectPolygons() > 0 )
  349.     {
  350.         temp = Select();
  351.         SelectAll( TRUE, SELECT_XOR );
  352.         if( SelectPolygons() == 0 )
  353.         {
  354.             Select( temp );
  355.             Warning();
  356.             if( MESSAGE == ON )
  357.                 Message( "非表示にする面が存在しません" );
  358.         }
  359.         else
  360.         {
  361.             Select( temp );
  362.             invisible_flag = TRUE ;
  363.             PolyInvisible( TRUE );
  364.             Update( TRUE );
  365.             prevnext_flag = FALSE;
  366.             pers_rotation_flag = FALSE;
  367.         }
  368.     }
  369. /*
  370.     else
  371.     {
  372.         Warning();
  373.         if( MESSAGE == ON )
  374.         {
  375.             SelectAll( TRUE );
  376.             if( SelectPolygons() != 0 )
  377.                 Message( "すべての面を非表示にすることはできません" );
  378.             else
  379.                 Message( "非表示にする面が存在しません" );
  380.             SelectAll( FALSE );
  381.         }
  382.     }
  383. */
  384. }
  385.  
  386. function Visible()
  387. {
  388.     if( invisible_flag == TRUE )
  389.     {
  390.         invisible_flag = FALSE ;
  391.         PolyInvisible( FALSE );
  392.         Update( TRUE );
  393.         pers_rotation_flag = FALSE;
  394.         prevnext_flag = FALSE;
  395.     }
  396.     else
  397.     {
  398.         Warning();
  399.         if( MESSAGE == ON )
  400.             Message( "非表示されている面は存在しません" );
  401.     }
  402. }
  403.  
  404. function ZoomDown()
  405. {
  406.     var    i;
  407.  
  408.     for( i = 0;i<MAX_ZOOM_NUM;i++ )
  409.     {
  410.         if( zoom_number[i] > zoomsize )
  411.             break;
  412.         else if( zoom_number[i] == zoomsize )
  413.         {
  414.             i++;
  415.             break;
  416.         }
  417.     }
  418.     if( i >= MAX_ZOOM_NUM )
  419.     {
  420.         i = MAX_ZOOM_NUM - 1;
  421.         Warning();
  422.     }
  423.     if( i == ( MAX_ZOOM_NUM - 1 ))
  424.     {
  425.         ButtonEnable( zoomdown_id, BUTTON_DISABLE );
  426.         UpdateButton( zoomdown_id );
  427.     }
  428.     else if( i == 1 )
  429.     {
  430.         ButtonEnable( zoomup_id, BUTTON_ENABLE );
  431.         UpdateButton( zoomup_id );
  432.     }
  433.     zoomsize = zoom_number[i];
  434.     SetZoom( -zoomsize );
  435.     StatusZoom();
  436.     Update( CLEAR, WIN_XY | WIN_YZ | WIN_ZX );
  437. }
  438.  
  439. function ZoomUp()
  440. {
  441.     var    i;
  442.  
  443.     for( i = 0;i<MAX_ZOOM_NUM;i++ )
  444.     {
  445.         if( zoom_number[i] >= zoomsize )
  446.             break;
  447.     }
  448.     i--;
  449.     if( i < 0 )
  450.     {
  451.         i = 0;
  452.         Warning();
  453.     }
  454.     if( i == 0 )
  455.     {
  456.         ButtonEnable( zoomup_id, BUTTON_DISABLE );
  457.         UpdateButton( zoomup_id );
  458.     }
  459.     else if( i == (MAX_ZOOM_NUM -2 ))
  460.     {
  461.         ButtonEnable( zoomdown_id, BUTTON_ENABLE );
  462.         UpdateButton( zoomdown_id );
  463.     }
  464.     zoomsize = zoom_number[i];
  465.     SetZoom( -zoomsize );
  466.     StatusZoom();
  467.     Update( CLEAR, WIN_XY | WIN_YZ | WIN_ZX );
  468. }
  469.  
  470. function InvisibleDisp()
  471. {
  472.     if( DrawInvisible() == FALSE )
  473.     {
  474.         DrawInvisible( TRUE );
  475.         Update( OVERWRITE );
  476.     }
  477.     else
  478.     {
  479.         DrawInvisible( FALSE );
  480.         Update( CLEAR );
  481.     }
  482. //    if( InvisibleFlag == TRUE )
  483. //        Update( CLEAR );
  484. }
  485.  
  486. function MeshDisp()
  487. {
  488.     if( meshdisp_flag == ON )
  489.     {
  490.         meshdisp_flag = OFF;
  491.         SetGrid( 0, mouse_grid );
  492.     }
  493.     else
  494.     {
  495.         meshdisp_flag = ON;
  496.         SetGrid( mesh_grid, mouse_grid );
  497.     }
  498.     Update( CLEAR, WIN_XY | WIN_YZ | WIN_ZX );
  499. }
  500.  
  501. function HousenDisp()
  502. {
  503.     if( housendisp_flag == ON )
  504.     {
  505.         housendisp_flag = OFF;
  506.         VisibleVector( 0 );
  507.     }
  508.     else
  509.     {
  510.         housendisp_flag = ON;
  511.         VisibleVector( vecvisible_len );
  512.     }
  513.     Update( CLEAR, WIN_PERS );
  514. }
  515.  
  516. function HoukouDisp()
  517. {
  518.     if( houkoudisp_flag == ON )
  519.     {
  520.         houkoudisp_flag = OFF;
  521.         VisiblePolyVector( 0 );
  522.     }
  523.     else
  524.     {
  525.         houkoudisp_flag = ON;
  526.         VisiblePolyVector( houkouvisible_len );
  527.     }
  528.     Update( CLEAR, WIN_PERS );
  529. }
  530.  
  531. function TenDisp()
  532. {
  533.     if( tendisp_flag == ON )
  534.     {
  535.         tendisp_flag = OFF;
  536.         VisibleVertex( 0 );
  537.     }
  538.     else
  539.     {
  540.         tendisp_flag = ON;
  541.         VisibleVertex( 1 );
  542.     }
  543.     Update( CLEAR );
  544. }
  545.  
  546. function PersUraDisp()
  547. {
  548.     if( uradisp_flag == ON )
  549.     {
  550.         uradisp_flag = OFF;
  551.         DrawFrontOnly( uradisp_flag );
  552.     }
  553.     else
  554.     {
  555.         uradisp_flag = ON;
  556.         DrawFrontOnly( uradisp_flag );
  557.     }
  558.     Update( CLEAR, WIN_PERS );
  559. }
  560.  
  561. function private Check_flag()
  562. {
  563.     var    temp;
  564.  
  565.     temp = MenuFunction();
  566.     if( temp == MeshDisp )
  567.     {
  568.         if( meshdisp_flag == ON )
  569.             MenuEnable( MENU_CHECK );
  570.         else
  571.             MenuEnable( MENU_NOCHECK );
  572.     }
  573.     else if( temp == HousenDisp )
  574.     {
  575.         if( housendisp_flag == ON )
  576.             MenuEnable( MENU_CHECK );
  577.         else
  578.             MenuEnable( MENU_NOCHECK );
  579.     }
  580.     else if( temp == HoukouDisp )
  581.     {
  582.         if( houkoudisp_flag == ON )
  583.             MenuEnable( MENU_CHECK );
  584.         else
  585.             MenuEnable( MENU_NOCHECK );
  586.     }
  587.     else if( temp == TenDisp )
  588.     {
  589.         if( tendisp_flag == ON )
  590.             MenuEnable( MENU_CHECK );
  591.         else
  592.             MenuEnable( MENU_NOCHECK );
  593.     }
  594.     else if( temp == PersUraDisp )
  595.     {
  596.         if( uradisp_flag == ON )
  597.             MenuEnable( MENU_CHECK );
  598.         else
  599.             MenuEnable( MENU_NOCHECK );
  600.     }
  601. }
  602.  
  603. function private InvisibleCheck()
  604. {
  605.     var    sel, temp;
  606.  
  607.     if( SelectPolygons() == 0 )
  608.         temp = MENU_DISABLE;
  609.     else
  610.     {
  611.         sel = Select();
  612.         SelectAll( TRUE, SELECT_XOR );
  613.         if( SelectPolygons() != 0 )
  614.             temp = MENU_ENABLE;
  615.         else
  616.             temp = MENU_DISABLE;
  617.         Select( sel );
  618.     }
  619.     MenuEnable( temp );
  620. }
  621.  
  622. function private VisibleCheck()
  623. {
  624.     if( invisible_flag == OFF )
  625.         MenuEnable( MENU_DISABLE );
  626.     else
  627.         MenuEnable( MENU_ENABLE );
  628. }
  629.  
  630. function private InvisibleDispCheck()
  631. {
  632.     if( DrawInvisible() == FALSE )
  633.         MenuEnable( MENU_NOCHECK );
  634.     else
  635.         MenuEnable( MENU_CHECK );
  636. }
  637.  
  638. function MeshSetup()
  639. {
  640.     var dispgrid;
  641.  
  642.     dispgrid = sliderconv2( mesh_grid );
  643.     DlogOpen( "メッシュ幅設定", 1 );
  644.     DlogSlider( 0, "メッシュ幅", SLIDER_HABA, MAX_SLIDER_NUM2, dispgrid, gridconv2 );
  645.     if ( DlogWait() )
  646.     {
  647.         dispgrid = DlogAnswer( 0 );
  648.         mesh_grid = gridconv2( dispgrid );
  649.         if( meshdisp_flag == ON )
  650.         {
  651.             SetGrid( mesh_grid, mouse_grid );
  652.             Update( CLEAR, WIN_XY | WIN_YZ | WIN_ZX );
  653.         }
  654.         StatusMesh();
  655.     }
  656. }
  657.  
  658. function HousenSetup()
  659. {
  660.     var dispvec;
  661.  
  662.     dispvec = sliderconv1( vecvisible_len );
  663.     DlogOpen( "法線の長さ設定", 1 );
  664.     DlogSlider( 0, "法線の長さ", SLIDER_HABA, MAX_SLIDER_NUM1, dispvec, gridconv1 );
  665.     if ( DlogWait() )
  666.     {
  667.         dispvec = DlogAnswer( 0 );
  668.         vecvisible_len = gridconv1( dispvec );
  669.         if( housendisp_flag == ON )
  670.         {
  671.             VisibleVector( vecvisible_len );
  672.             Update( CLEAR, WIN_PERS );
  673.         }
  674.     }
  675. }
  676.  
  677. function HoukouSetup()
  678. {
  679.     var dispvec;
  680.  
  681.     dispvec = sliderconv1( houkouvisible_len );
  682.     DlogOpen( "面の方向表示線の長さ設定", 1 );
  683.     DlogSlider( 0, "表示線の長さ", SLIDER_HABA, MAX_SLIDER_NUM1, dispvec, gridconv1 );
  684.     if ( DlogWait() )
  685.     {
  686.         dispvec = DlogAnswer( 0 );
  687.         houkouvisible_len = gridconv1( dispvec );
  688.         if( houkoudisp_flag == ON )
  689.         {
  690.             VisiblePolyVector( houkouvisible_len );
  691.             Update( CLEAR, WIN_PERS );
  692.         }
  693.     }
  694. }
  695.  
  696. function PersInit()
  697. {
  698.     DefaultPers();
  699.     Update( CLEAR, WIN_PERS );
  700. }
  701.  
  702. if( MACHINE == "WINDOWS" )
  703. {
  704.     MenuPosition(
  705.         Menu( " 表示(&D)",
  706.             "作画(&R)",                    Rend,PolyCheck,
  707.             "作画設定...(&O)",            RendSetup,
  708.             "FXGA表示(&F)",                Fxga,PolyCheck,
  709.             "-------------------",        SEPARATE_MENU,
  710.             "選択面のみ表示(&I)    I",        Invisible,InvisibleCheck,
  711.             "全ての面を表示(&A)    シフト+I",    Visible,VisibleCheck,
  712.             "非表示面を薄く表示(&T)",    InvisibleDisp,InvisibleDispCheck,
  713.             "-------------------",        SEPARATE_MENU,
  714.             "表示範囲指定(&Z)    Z",        SelectZoom,
  715.             "表示範囲拡大(&D)",            ZoomDown,
  716.             "表示範囲縮小(&U)",            ZoomUp,
  717.             "-------------------",        SEPARATE_MENU,
  718.             "表示図面変更...(&W)",        WindowChange,
  719.             "-------------------",        SEPARATE_MENU,
  720.             "点を表示(&V)",                TenDisp,Check_flag,
  721.             "-------------------",        SEPARATE_MENU,
  722.             "表の面のみ表示(&B)",        PersUraDisp,Check_flag,
  723.             "-------------------",        SEPARATE_MENU,
  724.             "メッシュを表示(&M)",            MeshDisp,Check_flag,
  725.             "メッシュ幅設定...(&O)",        MeshSetup,
  726.             "-------------------",        SEPARATE_MENU,
  727.             "法線を表示(&N)",            HousenDisp,Check_flag,
  728.             "法線表示長さ設定...(&O)",    HousenSetup,
  729.             "-------------------",        SEPARATE_MENU,
  730.             "面の方向表示(&P)",            HoukouDisp,Check_flag,
  731.             "方向表示長さ設定...(&O)",    HoukouSetup,
  732.             "-------------------",        SEPARATE_MENU,
  733.             "透視図初期化(&I)    HOME",    PersInit,
  734.             "表示初期化(&I)    シフト+HOME",    AllInit
  735.         ), Menu_disp
  736.     );
  737. }
  738. else
  739. {
  740.     MenuPosition(
  741.         Menu( " 表示(&D)",
  742.             "作画               ",        Rend,PolyCheck,
  743.             "作画設定...        ",        RendSetup,
  744.             "-------------------",        SEPARATE_MENU,
  745.             "選択面のみ表示         I",    Invisible,InvisibleCheck,
  746.             "全ての面を表示         シフト+I",    Visible,VisibleCheck,
  747.             "非表示面を薄く表示 ",        InvisibleDisp,InvisibleDispCheck,
  748.             "-------------------",        SEPARATE_MENU,
  749.             "表示範囲指定           Z",    SelectZoom,
  750.             "表示範囲拡大       ",        ZoomDown,
  751.             "表示範囲縮小       ",        ZoomUp,
  752.             "-------------------",        SEPARATE_MENU,
  753.             "表示図面変更...    ",        WindowChange,
  754.             "-------------------",        SEPARATE_MENU,
  755.             "点を表示           ",        TenDisp,Check_flag,
  756.             "-------------------",        SEPARATE_MENU,
  757.             "表の面のみ表示     ",        PersUraDisp,Check_flag,
  758.             "-------------------",        SEPARATE_MENU,
  759.             "メッシュを表示         ",        MeshDisp,Check_flag,
  760.             "メッシュ幅設定...      ",        MeshSetup,
  761.             "-------------------",        SEPARATE_MENU,
  762.             "法線を表示         ",        HousenDisp,Check_flag,
  763.             "法線表示長さ設定...",        HousenSetup,
  764.             "-------------------",        SEPARATE_MENU,
  765.             "面の方向表示       ",        HoukouDisp,Check_flag,
  766.             "方向表示長さ設定...",        HoukouSetup,
  767.             "-------------------",        SEPARATE_MENU,
  768.             "透視図初期化           HOME",    PersInit,
  769.             "表示初期化             シフト+HOME",        AllInit
  770.         ), Menu_disp
  771.     );
  772. }
  773.