设为首页收藏本站

中国膜结构网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

膜结构车棚
膜结构车棚膜结构资质国产膜材 膜结构网中国膜结构协会
查看: 185|回复: 2

ARX 函数

[复制链接]
  • TA的每日心情
    开心
    2021-6-22 09:39
  • 签到天数: 1542 天

    [LV.Master]伴坛终老

    发表于 2021-2-1 17:44 | 显示全部楼层 |阅读模式
    #include "StdAfx.h"
    #include "CrpRectangle.h"

    CrpRectangle::CrpRectangle(DataMap &tvmap):AcDbPolyline(4)
    {
      AcGePoint2d pt;
      double width;
      double height;
      short location;

      tvmap[1000].getPoint2d(pt);
      tvmap[1001].getDouble(width);
      tvmap[1002].getDouble(height);
      tvmap[1003].getShort(location);

      AcGePoint2d pt1 (pt.x + width,pt.y);
      AcGePoint2d pt2 (pt.x + width, pt.y + height);
      AcGePoint2d pt3 (pt.x, pt.y + height);
      if(this->isWriteEnabled())
      {
        this->addVertexAt(0,pt);
        this->addVertexAt(1,pt1);
        this->addVertexAt(2,pt2);
        this->addVertexAt(3,pt3);
        this->setClosed(Adesk::kTrue);
      }
      calcLocation(pt, width, height, (PCode:ocation)location);
    }

    CrpRectangle::CrpRectangle(const AcGePoint2d &pt, double width, double height, PCode:ocation loc):AcDbPolyline(4)
    {
      AcGePoint2d pt1 (pt.x + width,pt.y);
      AcGePoint2d pt2 (pt.x + width, pt.y + height);
      AcGePoint2d pt3 (pt.x, pt.y + height);
      if(this->isWriteEnabled())
      {
        this->addVertexAt(0,pt);
        this->addVertexAt(1,pt1);
        this->addVertexAt(2,pt2);
        this->addVertexAt(3,pt3);
        this->setClosed(Adesk::kTrue);
      }
      calcLocation(pt, width, height, loc);
    }

    CrpRectangle::~CrpRectangle(void)
    {
    }

    Acad::ErrorStatus CrpRectangle::getWidth(double &width) const
    {
      Acad::ErrorStatus res;
      AcGePoint2d p0;
      AcGePoint2d p1;
      if((res = this->getPointAt(0,p0)) != Acad::eOk)
        return res;
      if((res = this->getPointAt(1,p1)) != Acad::eOk)
        return res;
      width = fabs(p0.x - p1.x);
      return Acad::eOk;
    }

    Acad::ErrorStatus CrpRectangle::setWidth(double width)
    {
      Acad::ErrorStatus res;
      AcGePoint2d p0;
      AcGePoint2d p1;
      AcGePoint2d p2;

      if((res = this->getPointAt(0,p0)) != Acad::eOk)
        return res;

      if((res = this->getPointAt(1,p1)) != Acad::eOk)
        return res;

      if((res = this->getPointAt(2,p2)) != Acad::eOk)
        return res;

      p1.x = p0.x + width;
      p2.x = p0.x + width;

      if(!this->isWriteEnabled())
        return Acad::eNotOpenForWrite;

      if((res = this->setPointAt(1,p1)) != Acad::eOk)
        return res;

      if((res = this->setPointAt(2,p2)) != Acad::eOk)
        return res;

      return Acad::eOk;
    }

    Acad::ErrorStatus CrpRectangle::getHeight(double &height) const
    {
      Acad::ErrorStatus res;
      AcGePoint2d p0;
      AcGePoint2d p4;
      if((res = this->getPointAt(0,p0)) != Acad::eOk)
        return res;
      if((res = this->getPointAt(4,p4)) != Acad::eOk)
        return res;
      height = fabs(p4.y - p0.y);
      return Acad::eOk;
    }

    Acad::ErrorStatus CrpRectangle::setHeight(double height)
    {
      Acad::ErrorStatus res;
      AcGePoint2d p0;
      AcGePoint2d p2;
      AcGePoint2d p3;

      if((res = this->getPointAt(0,p0)) != Acad::eOk)
        return res;

      if((res = this->getPointAt(2,p2)) != Acad::eOk)
        return res;

      if((res = this->getPointAt(3,p3)) != Acad::eOk)
        return res;

      p2.y = p0.y + height;
      p3.y = p0.y + height;

      if(!this->isWriteEnabled())
        return Acad::eNotOpenForWrite;

      if((res = this->setPointAt(2,p2)) != Acad::eOk)
        return res;

      if((res = this->setPointAt(3,p3)) != Acad::eOk)
        return res;

      return Acad::eOk;
    }

    void CrpRectangle::calcLocation( const AcGePoint2d &startPoint, double width,
                                     double height, PCode:ocation loc )
    {
      AcGePoint2d point;
      switch ((int)loc)
      {
      case (int)PCode::kLowerLeft:
        {
          point = startPoint;
        }
        break;
      case (int)PCode::kLowerMid:
        {
          point = AcGePoint2d((startPoint[0] - (width / 2)), startPoint[1]);
        }
        break;
      case (int)PCode::kLowerRight:
        {
          point = AcGePoint2d((startPoint[0] - width), startPoint[1]);
        }
        break;
      case (int)PCode::kRightMid:
        {
          point = AcGePoint2d((startPoint[0] - width), (startPoint[1] - (height / 2)));
        }
        break;
      case (int)PCode::kUpperRight:
        {
          point = AcGePoint2d((startPoint[0] - width), (startPoint[1] - height));
        }
        break;
      case (int)PCode::kUpperMid:
        {
          point = AcGePoint2d((startPoint[0] - (width / 2)), (startPoint[1] - height));
        }
        break;
      case (int)PCode::kUpperLeft:
        {
          point = AcGePoint2d(startPoint[0], (startPoint[1] - height));
        }
        break;
      case (int)PCode::kLeftMid:
        {
          point = AcGePoint2d(startPoint[0], (startPoint[1] - (height / 2)));
        }
        break;
      }
      drawFrom(point);
    }

    Acad::ErrorStatus CrpRectangle::drawFrom( const AcGePoint3d &point )
    {
      return drawFrom(AcGePoint2d(point.x,point.y));
    }

    Acad::ErrorStatus CrpRectangle::drawFrom( const AcGePoint2d &point )
    {
      return drawFrom(point.asVector());
    }

    Acad::ErrorStatus CrpRectangle::drawFrom( const AcGeVector2d &vec )
    {
      Acad::ErrorStatus res;

      if(!this->isWriteEnabled())
        return Acad::eNotOpenForWrite;

      AcGePoint2d pt0;
      AcGePoint2d pt1;
      AcGePoint2d pt2;
      AcGePoint2d pt3;

    ISEOK(this->getPointAt(0,pt0));
    ISEOK(this->getPointAt(1,pt1));
    ISEOK(this->getPointAt(2,pt2));
    ISEOK(this->getPointAt(3,pt3));
    ISEOK(this->setPointAt(0, pt0 + vec));
    ISEOK(this->setPointAt(1, pt1 + vec));
    ISEOK(this->setPointAt(2, pt2 + vec));
    ISEOK(this->setPointAt(3, pt3 + vec));

    return Acad::eOk;
    }

    AcGePoint2d CrpRectangle::getPt1(void) const
    {
      AcGePoint2d pt;
      this->getPointAt(0,pt);
      return pt;
    }

    AcGePoint2d CrpRectangle::getPt2(void) const
    {
      AcGePoint2d pt;
      this->getPointAt(1,pt);
      return pt;
    }

    AcGePoint2d CrpRectangle::getPt3(void) const
    {
      AcGePoint2d pt;
      this->getPointAt(2,pt);
      return pt;
    }

    AcGePoint2d CrpRectangle::getPt4(void) const
    {
      AcGePoint2d pt;
      this->getPointAt(3,pt);
      return pt;
    }

    AcGePoint2d CrpRectangle::getMPB() const
    {
      AcGePoint2d pt0;
      this->getPointAt(0,pt0);
      AcGePoint2d pt1;
      this->getPointAt(1,pt1);
      return AcGePoint2d((pt1[0] - pt0[0]) / 2.0, pt0[1]);
    }

    AcGePoint2d CrpRectangle::getMPL() const
    {
      AcGePoint2d pt1;
      this->getPointAt(0,pt1);
      AcGePoint2d pt4;
      this->getPointAt(3,pt4);
      return AcGePoint2d(pt1[0], (pt4[1] - pt1[1]) / 2.0);
    }

    AcGePoint2d CrpRectangle::getMPR() const
    {
      AcGePoint2d pt2;
      this->getPointAt(1,pt2);
      AcGePoint2d pt3;
      this->getPointAt(2,pt3);
      return AcGePoint2d(pt2[0], (pt3[1] - pt2[1]) / 2.0);
    }

    AcGePoint2d CrpRectangle::getMPT() const
    {
      AcGePoint2d pt3;
      this->getPointAt(2,pt3);
      AcGePoint2d pt4;
      this->getPointAt(3,pt4);
      return AcGePoint2d((pt3[0] - pt4[0]) / 2.0, pt3[1]);
    }

    AcGePoint2d CrpRectangle::getCenter() const
    {
      AcGePoint2d pt1;
      this->getPointAt(0,pt1);
      AcGePoint2d pt2;
      this->getPointAt(1,pt2);
      AcGePoint2d pt4;
      this->getPointAt(3,pt4);
      return AcGePoint2d((pt2[0] - pt1[0]) / 2.0, (pt4[1] - pt1[1]) / 2.0);
    }
    回复


    http://www.mjgw.org/ 专业从事膜结构设计、制作加工、施工安装的膜结构工程服务,能够为客户提供专业的膜结构整体解决方案。做中国最好的膜结构综合服务平台。欢迎大家联系电话:198-7840-1958,QQ:463017170.
    相关关键词:膜结构车棚,膜结构车棚覆盖,膜结构车棚公司,膜结构车棚多少钱,膜结构车棚厂家,膜结构车棚价格,社区膜结构车棚,膜结构车棚膜布厂家 ,膜结构车棚哪家好,膜结构车棚多少钱一米,膜结构车棚报价,膜结构车棚哪里有,膜结构车棚定制,膜结构车棚安装,膜结构车棚设计,膜结构车棚电话,膜结构车棚加工,膜结构车棚膜布价格,膜结构车棚批发,膜结构车棚制造商,膜结构车棚生产厂家,膜结构车棚设计,膜结构车棚施工,膜结构车棚多少钱一平米,膜结构车棚订制,张拉膜车棚,张拉膜车棚覆盖,张拉膜车棚公司,张拉膜车棚多少钱,张拉膜车棚厂家,张拉膜车棚价格,社区张拉膜车棚,张拉膜车棚膜布厂家 ,张拉膜车棚哪家好,张拉膜车棚多少钱一米,张拉膜车棚报价,张拉膜车棚哪里有,张拉膜车棚定制,张拉膜车棚安装,张拉膜车棚设计,张拉膜车棚电话,张拉膜车棚加工,张拉膜车棚膜布价格,张拉膜车棚批发,张拉膜车棚制造商,张拉膜车棚生产厂家,张拉膜车棚设计,张拉膜车棚施工,张拉膜车棚多少钱一平米,张拉膜车棚订制,常用膜材品牌:德国杜肯、法国法拉利、德国海德斯、德国米乐、日本平岗、韩国秀博、比利时希运、美国赫虏伯、中国科宝、上海慧遥。

    使用道具 举报

  • TA的每日心情
    开心
    2021-6-22 09:39
  • 签到天数: 1542 天

    [LV.Master]伴坛终老

     楼主| 发表于 2021-2-1 19:49 | 显示全部楼层
            static void get_LocalInfo ( void )
            {
                    // Retrieves the active input locale identifier.   
                    HKL hKl = ::GetKeyboardLayout( 0 );

                    // LOWORD of the returned value contains the language identifier.   
                    LANGID langID = LOWORD((DWORD) hKl );

                    // Retirieve the information about the locale
                    LCID lcID = MAKELCID( langID, SORT_DEFAULT );
                   
                    const int kLen = 7;
                    const int sLen = 100;

                    TCHAR chPage         [ kLen     ];
                    TCHAR szCurrency     [ kLen     ];
                    TCHAR szVal          [ MAX_PATH ];
                    TCHAR szFormatString [ sLen     ];

                    // Get currently ised code page.   
                    ::GetLocaleInfo(lcID, LOCALE_IDEFAULTANSICODEPAGE, chPage, kLen);
                    int m_iCodePage = atoi((const char *)chPage);

                    // Get default OEM code page.   
                    ::GetLocaleInfo(lcID, LOCALE_IDEFAULTCODEPAGE, chPage, kLen);
                    int m_iOEMCodePage = atoi((const char *) chPage);

                    // Get country name in english.   
                    ::GetLocaleInfo(lcID, LOCALE_SENGCOUNTRY, szVal, MAX_PATH);
                    CString m_strCountry = szVal;

                    // Get country code -- not sure if this works   
                    ::GetLocaleInfo(lcID, LOCALE_ICOUNTRY, chPage, kLen);
                    int m_iCountryCode = atoi((const char *)chPage);

                    // Get language name.   
                    ::GetLocaleInfo(lcID, LOCALE_SENGLANGUAGE, szVal, MAX_PATH);
                    CString m_strLanguage = szVal;

                     // Get TimeFormat String   
                    ::GetLocaleInfo(lcID, LOCALE_STIMEFORMAT, szFormatString, sLen);
                    CString m_strTimeFormat = szFormatString;

                    // Get Date Format String   
                    ::GetLocaleInfo(lcID, LOCALE_SLONGDATE, szFormatString, sLen);
                    CString m_strDateFormat = szFormatString;

                    // Get the string used for local currency.   
                    ::GetLocaleInfo(lcID, LOCALE_SCURRENCY, szCurrency, kLen);
                    CString m_strCurrency = szCurrency;


                    // Get time format specifier i.e. 12 hour (AM/PM) or 24 hour format   
                    // is used to indicate time.   
                    ::GetLocaleInfo(lcID, LOCALE_ITIME, szVal, 3);
            
                    CString m_strTimeFormatSpecifier = ( atoi ( (const char *) szVal ) == 0 ) ? "AM / PM 12-hour format" : "24-hour format";

                    // Get calendar type
                    ::GetLocaleInfo( lcID, LOCALE_ICALENDARTYPE, szVal, 3 );

                    CString m_strCalendarType;

                    switch ( atoi( (const char *) szVal ) )
                    {
                            case 1:
                                    m_strCalendarType = ("Gregorian - Localized");
                                    break;
                            case 2:
                                    m_strCalendarType = ("Gregorian - English strings always");
                                    break;
                            case 3:
                                    m_strCalendarType = ("Year of the Emperor - Japan");
                                    break;
                            case 4:
                                    m_strCalendarType = ("Year of Taiwan");
                                    break;
                            case 5:
                                    m_strCalendarType = ("Tangun Era - Korea");
                                    break;
                            case 6:
                                    m_strCalendarType = ("Hijri - Arabic lunar");
                                    break;
                            case 7:
                                    m_strCalendarType = ("Thai");
                                    break;
                            case 8:
                                    m_strCalendarType = ("Hebrew - Lunar");
                                    break;
                            case 9:
                                    m_strCalendarType = ("Gregorian Middle East French");
                                    break;
                            case 10:
                                    m_strCalendarType = ("Gregorian Arabic");
                                    break;
                            case 11:
                                    m_strCalendarType = ("Gregorian Transliterated English");
                                    break;
                            case 12:
                                    m_strCalendarType = ("Gregorian Transliterated French");
                                    break;
                            default:
                                    m_strCalendarType = ("Unknown");
                    }
                   
                    // Get the ID of the language identifier.   
                    LANGID langId = ::GetSystemDefaultLangID();
                   
                    DWORD dwSize, dwError, dwReturnedSize;

                    ACHAR szLanguage[ MAX_PATH ];

                    // Get the string for the language identifier.   
                    dwSize = MAX_PATH;
                    dwReturnedSize = VerLanguageName(langId, szLanguage, dwSize);

                    CString m_strLocaleLocalLanguage;

                    if ( dwReturnedSize <= dwSize )
                    {
                            m_strLocaleLocalLanguage = szLanguage;
                    }
                   
                    // Get time zone information.   
                    TIME_ZONE_INFORMATION info;
                    TCHAR szTimezone[31];

                    dwError = ::GetTimeZoneInformation(&info);

                    CString m_strLocaleTimeZone;

                    if ( TIME_ZONE_ID_INVALID != dwError )
                    {
                            wsprintf( szTimezone, L"%s", info.StandardName );

                            m_strLocaleTimeZone = szTimezone;
                    }

                     ::acutPrintf(_T("\n------------------   ") );
                     ::acutPrintf(_T("\nLOCALE INFORMATION   ") );
                     ::acutPrintf(_T("\n------------------   ") );
                     ::acutPrintf(_T("\nCodePage:      %d    "), m_iCodePage              );
                     ::acutPrintf(_T("\nOEMCodePage:   %d    "), m_iOEMCodePage           );
                     ::acutPrintf(_T("\nLanguage:      %s    "), m_strLanguage            );
                     ::acutPrintf(_T("\nDateFormat:    %s    "), m_strDateFormat          );
                     ::acutPrintf(_T("\nCountry:       %s    "), m_strCountry             );
                     ::acutPrintf(_T("\nCountryCode:   %d    "), m_iCountryCode           );
                     ::acutPrintf(_T("\nTimeFormat:    %s    "), m_strTimeFormat          );
                     ::acutPrintf(_T("\nCurrency:      %s    "), m_strCurrency            );
                     ::acutPrintf(_T("\nTimeFrmSpec.:  %s    "), m_strTimeFormatSpecifier );
                     ::acutPrintf(_T("\nCalendarType:  %s    "), m_strCalendarType        );
                     ::acutPrintf(_T("\nLocalLanguage: %s    "), m_strLocaleLocalLanguage );
                     ::acutPrintf(_T("\nTimeZone:      %s    "), m_strLocaleTimeZone      );
                     ::acutPrintf(_T("\n"));

            }
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-6-22 09:39
  • 签到天数: 1542 天

    [LV.Master]伴坛终老

     楼主| 发表于 2021-2-1 19:59 | 显示全部楼层
    //                ------------------
    //                        LOCALE INFORMATION
    //                        ------------------
    //CodePage:      9
    //OEMCodePage:   9
    //Language:      Chinese (Simplified)
    //DateFormat:    yyyy'年'M'月'd'日'
    //Country:       China
    //CountryCode:   8
    //TimeFormat:    H:mm:ss
    //Currency:      ¥
    //                           TimeFrmSpec.:  24-hour format
    //CalendarType:  Gregorian - Localized
    //LocalLanguage: 中文(简体,中国)
    //TimeZone:      中国标准时间
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    推荐膜材品牌上一条 /6 下一条

    进口膜材 国产膜材 pvdf膜材ptfe膜材ETFE膜材
    最好的膜结构公司 一级膜结构资质 膜结构一级资质
    膜结构设计-膜结构十大品牌-etfe设计-充气膜结构
    诺科膜结构
    遨都膜结构设计
    中国膜结构网
    中国空间膜结构

    QQ|申请友链|手机版|中国膜结构论坛