• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            eryar

            PipeCAD - Plant Piping Design Software.
            RvmTranslator - Translate AVEVA RVM to OBJ, glTF, etc.
            posts - 603, comments - 590, trackbacks - 0, articles - 0

            船舶軟件建立三維管道模型后,需要自動(dòng)生成管子加工信息,這樣就提高了設(shè)計(jì)效率。其中彎管參數(shù)主要是下料長(zhǎng)度,彎角和轉(zhuǎn)角。

            下料長(zhǎng)度是由各管段實(shí)長(zhǎng),即管子中心線長(zhǎng)度,減去彎管部分切線長(zhǎng)再加上彎管部分。實(shí)長(zhǎng)就是向量的模。

            彎角用向量的點(diǎn)乘來求解,即余弦定理。

            轉(zhuǎn)角用向量的叉乘來求解,比用兩面角的方法精度要高。因?yàn)橄蛄坎娉诉\(yùn)算時(shí)的數(shù)字運(yùn)算比三角函數(shù)精度高點(diǎn)。

            因?yàn)槎际鞘噶看鷶?shù)運(yùn)算,所以需要一個(gè)矢量類,類定義如下:

               1:  //------------------------------------------------------------------------------
               2:  //    Copyright (c) 2011 eryar All Rights Reserved.
               3:  //
               4:  //        File    :    Vector.h
               5:  //        Author    :    eryar@163.com
               6:  //        Date    :    2011-12-2 21:34
               7:  //        Version    :    1.0v
               8:  //
               9:  //    Description    :    
              10:  //
              11:  //==============================================================================
              12:   
              13:  #ifndef _VECTOR_H_
              14:  #define _VECTOR_H_
              15:   
              16:  #pragma once
              17:   
              18:  #include <cmath>
              19:  #include <string>
              20:  #include <iostream>
              21:  using namespace std;
              22:   
              23:  class CVector  
              24:  {
              25:  public:
              26:      CVector();
              27:      CVector(const CVector& v);
              28:      CVector(double x, double y, double z);
              29:      virtual ~CVector();
              30:   
              31:      // Overload operators
              32:      CVector& operator =  (const CVector& v);
              33:      bool     operator == (const CVector& v) const;
              34:      bool     operator != (const CVector& v) const;
              35:      CVector  operator +  (const CVector& v) const;
              36:      CVector  operator -  (const CVector& v) const;
              37:      CVector  operator *  (double k) const;
              38:      // 向量點(diǎn)乘
              39:      double   operator *  (const CVector& v) const;
              40:   
              41:      // 向量叉乘
              42:      CVector CrossProduct(const CVector& v);
              43:   
              44:      // 求向量的模
              45:      double Magnitude(void) const;
              46:   
              47:      // 
              48:      void    Show(void) const;
              49:   
              50:  private:
              51:      double  m_x;
              52:      double  m_y;
              53:      double  m_z;
              54:  };
              55:   
              56:  #endif // _VECTOR_H_

            求解轉(zhuǎn)角代碼如下:

               1:  //------------------------------------------------------------------------------
               2:  //    Copyright (c) 2011 eryar All Rights Reserved.
               3:  //
               4:  //        File    :    Main.cpp
               5:  //        Author    :    eryar@163.com
               6:  //        Date    :    2011-12-2 21:33
               7:  //        Version    :    1.0v
               8:  //
               9:  //    Description    :    
              10:  //
              11:  //==============================================================================
              12:   
              13:  #include "Vector.h"
              14:   
              15:  int main(int argc, char* argv[])
              16:  {
              17:      // One Pipe piece
              18:      CVector aVector(287, 0, 0);
              19:      CVector bVector(313, 204, 165);
              20:      CVector cVector(0, 746, 0);
              21:   
              22:      // Another pipe piece
              23:  //     CVector aVector(150, 0, 0);
              24:  //     CVector bVector(50, 150, 150);
              25:  //     CVector cVector(50, 250, 0);
              26:   
              27:      CVector alpha;
              28:      CVector beta;
              29:      double  phi = 0;
              30:   
              31:      aVector.Show();
              32:      bVector.Show();
              33:      cVector.Show();
              34:   
              35:      alpha   = aVector.CrossProduct(bVector);
              36:      beta    = bVector.CrossProduct(cVector);
              37:   
              38:      phi = (alpha * beta) / (alpha.Magnitude() * beta.Magnitude());
              39:      cout<<"Rotate : "<<acos(phi) * 180 / 3.1416<<endl;
              40:   
              41:      return 0;
              42:  }
            亚洲伊人久久大香线蕉苏妲己| 女人香蕉久久**毛片精品| 亚洲精品无码专区久久同性男| 亚洲国产精品一区二区三区久久| 久久只有这精品99| 狠狠色丁香久久婷婷综合| 久久精品国产亚洲AV无码偷窥| 99re久久精品国产首页2020| 色综合久久88色综合天天| 日本久久中文字幕| 久久精品国产亚洲AV无码麻豆| 久久www免费人成精品香蕉| 国内精品人妻无码久久久影院导航 | 国产免费久久精品99re丫y| 婷婷综合久久中文字幕蜜桃三电影| 亚洲乱码中文字幕久久孕妇黑人| 国产精品久久久久9999高清| 久久免费99精品国产自在现线 | 久久中文字幕精品| 国产欧美久久久精品| 国产精品久久久久蜜芽| 999久久久国产精品| 久久人妻少妇嫩草AV无码专区| 久久精品国产99国产精品澳门| 性做久久久久久久久久久| 久久99国产精品99久久| 久久久久久久久久久久久久| 精品久久国产一区二区三区香蕉 | 久久免费视频一区| 久久99国产综合精品女同| 久久久久免费精品国产| 欧美日韩精品久久久久| 精品欧美一区二区三区久久久 | 久久综合九色综合网站| 久久99精品久久久久久不卡| 精品999久久久久久中文字幕 | 国产精品成人无码久久久久久| 久久久久久无码Av成人影院| 亚洲AV无码1区2区久久| 亚洲va久久久噜噜噜久久天堂| 国产精品久久久久久五月尺|