美文网首页
API与环境迁移(1)

API与环境迁移(1)

作者: downdemo | 来源:发表于2018-07-27 17:52 被阅读41次

main\include\BwDesign\DrawCell

Annotation

  • BWAnnoLeader\BWAnnoLeaderPoint.h 给一个点注释
  • BWAnnoArrow.h 箭头注释
  • BWAnnoAxis.h 轴线注释
  • BWAnnoBearing.h 支座图例注释
  • BWAnnoBearing.h 折断线注释
  • BWAnnoGSRLeader.h 钢柱编号引出标注
  • BWAnnoLegend.h 钢束图例注释
  • BWAnnoLevel.h 标高注释
  • BWAnnoNorthArrow.h 指北针注释
  • BWAnnoPileNote.h 墩号注释
  • BWAnnoRoadDirect.h 路线方向线注释
  • BWAnnoRoadMat.h 路面材料(铺装)注释
  • BWAnnoSecLine.h 剖面线(angle!=0)、断面线(angle==0)
  • BWAnnoSecLine2.h 任意剖面线、断面线
  • BWAnnoSlope.h 标题坡度箭头注释
  • BWAnnoSoil.h 土壤图例
  • BWAnnoSteelDot.h 钢筋点注释
  • BWAnnoSteelSquare.h 钢筋小方格注释,小方格宽度、高度自动确定
  • BWAnnoSys.h 对称符号注释
  • BWAnnoText.h 直接注释的文字
  • BWAnnoPileNote.h 墩号注释
  • BWAnnoTitle.h 标题注释
  • BWAnnoWeld.h 焊缝注释

BWLineGroup

  • BWLineGroup.h 图元线包类
  • BWLineName.h 图元线包名称类

Dim

  • BWDimDimAngle.h 角度标注
  • BWDimArcLengh.h 弧长标注
  • BWDimContinue.h 连续标注
  • BWDimDiameter.h 直径标注
  • BWDimEnum.h
  • BWDimNode.h
  • BWDimRadius.h 半径标注
  • BWDimSet.h
  • BWDimSingle.h 单个线性标注
  • BWDimTier.h

Hatch

  • BWHatch.h 填充类,用以绘制填充
  • BWRealBlockHatch.h

Note

  • BWNote.h 附注类,用以绘制附注
  • BWNoteChart.h

RealBlock

  • BWDrawCellRealBlock.h

Smp

  • BWBarSmp.h
  • BWBarStirSmp.h
  • BWBarTurnSmp.h
  • BWTendonSmp.h 钢束大样图元(立面、大样)

Table

  • TableBase.h
  • BWSteelData.h
  • BWTableDrawing.h
  • BWTendonData.h

TraitLine

  • BWTraitCenLine.h 一般中心线
  • BWTraitSysLine.h 对称轴线

main\include\geometry

  • THAnyLine.h
    • CTHAnyLine(CDblPoint& start, CDblPoint& end)
    • bool IsPointOnLineBase(CDblPoint&)
    • bool Extend(CTHAnyLine&arrBorder, bool bIsStart);
  • THArc.h 圆弧
    • CTHArc(圆心,半径,起始角度,扫过角度)
    • CTHArc(圆心,半径,起始角度,结束角度,bool 绕向) true逆时针
    • CTHArc(p1,p2,p3) 三点定圆
  • THCircle.h 圆
    • CTHCircle(圆心,半径)
    • CTHCircle(p1,p2) 直径为p1p2
    • CTHCircle(圆心,圆上一点,int unused)
    • 求过三点的三角形的内切圆、外接圆
    • 求过p1p2,p2p3半径为rad的圆
  • THCirCurve.h 几何直线+圆弧组成的圆曲线类
  • THConvolution.h 几何缓和曲线类
  • THCoverRegion.h 覆盖区域类
  • THEllipse.h 几何椭圆类
    • CTHEllipse(轴心,长轴点?,double 短轴/长轴)
  • THEllipseArc.h 几何椭圆弧线类
    • CTHEllipseArc(轴心,x轴和长轴夹角逆时针为正,a轴长,b轴长,椭圆弧线起始角度,覆盖角度逆时针为正)
  • THLine.h
    • CTHLine(x1,x2,y1,y2)
    • CTHLine(p1,p2)
    • CTHLine(起点,角度,长度)
    • CTHLine(角度,终点,长度)
    • bool Extend(CTHAnyLine&arrBorder, bool bIsStart);
    • bool Intersect(另一条线,...) 求交点
    • StartPoint() 起点
    • EndPoint() 终点
    • MiddlePoint(double dscale = 0.5) 中点
  • THLineBase.h 上述形状的基类
  • THLineGroup.h 即lg
    • AddTHLine(CTHLine&)
    • AddTHLine(起点,终点)
    • AddTHCircle(CTHCircle&)
    • AddTHAnyLine(CTHAnyLine&)
    • AddTHLineGroup(CTHLineGroup&)
    • template<class Ty> void AddLineVector(const Ty &LineVec)
      {
      for(Ty::const_iterator it=LineVec.begin();it!=LineVec.end();++it)
      AddLineBase(&*it);
      }
    • TrimByLine 裁剪
    • bool IsEmpty()
    • bool IsOneObj()
    • void Clear()
  • THLineGroupInc.h #pragma once,包含这里大部分头文件
  • THLineTool.h 几何线包工具类,主要是一些类的声明
  • THPoint.h 几何线段类
  • THPolygon.h 几何多边形闭合区域类(按逆时针方向排列)
  • THPolyLine.h 几何多段线类
  • THSpline.h
    • CTHSpline

常用

demo_bwdesignDlg.cpp_line30 m_cale = 400
轴线:
E:\main\include\BwDesign\DrawCell\Annotation\BWAnnoAxis.h
注释:
E:\main\include\BwDesign\DrawCell\Annotation\BWAnnoLeader\BWAnnoLeaderPoint.h
标题坡度箭头注释(桥台处):
E:\main\include\BwDesign\DrawCell\Annotation\BWAnnoSlope.h

CListBox *plst = (CListBox*)GetDlgItem(IDC_LIST1);
plst->AddString("mydraw_line");
CBWDrawGroup dg;
CBWLineGroup lg;
dg.SetScale(m_scale);
CTHLine line(CDblPoint(0,0),5*M_PI_4,150); // 点,角度,长度
lg.AddTHLine(line);
lg.SetByIdStr(GetRuleLineObjName().m_GZLK_Line); //设置图层
CBWDimSingleHor dim; // 横线标注
CBWDimSingleVer dim; // 纵线标注
dim1.set_angle(M_PI_4); // 设倾斜
dim1.set_line(line); // 设基线
const double dimValue = 10000; // 尺寸线位置
dim1.set(dimValue); // 自定义的位置
dg.AddElement(&dim);
dg.AddElement(&lg);
view(dg);
// 连续标注
CTHLine line;
const int nLayer = -1;
CBWDimTier dim;
dim.SetStdLine(line, false);
dim.SetCurStartVer(TD.x3(), false);
dim.Add(TD.x4() - TD.x3()).Add(TD.x5() - TD.x4());
dim.Adjust(0, nLayer, true);
dim.SetAlignType(DAT_HOR);
dg.AddElement(&dim);
// 显示标题
void myData::myTitle(CBWAnnoTitle title, CBWDrawGroup &dg)
{
    CDblPoint insertPoint(totalLine / 2, 3 * verLine[0]);
    CString titleName = "钢板梁立面布置(边跨)";
    title.Set(insertPoint, titleName, "1:120");
    dg.AddElement(&title);
}
// 坡度箭头注释
CTHLine baseLine(x0()-10000, 3 * y2(), x0(), 3 * y2());
CBWAnnoSlope slope;
slope.SetGrad(baseLine);
slope.SetGradText("桥台处");
slope.SetGradArrowType(ARROW_USER);
dg.AddElement(&slope);
// 文字附注
CBWAnnoLeaderPoint note;
note.Set(CDblPoint(x4() + (x5() - x4()) / 3, y0() + 1000), true, -M_PI / 3, 0, 6, 2);
// 坐标,是否为注释,对象引线角度,注释引线角度,注释到点的距离,注释线长度

note.SetText("钢梁", "", ""); // 上、下、侧
dg.AddElement(&note);
// 延伸
CTHLine line;
const double extendValue = 30000; // 延伸长度
CTHAnyLine arrBNorder(CDblPoint start, CDblPoint end); // 延伸边界的端点
line.Extend(arrBNorder, false); // 往上false往下true
// 作轴线
CBWAnnoAxis axisLine;
axisLine.SetBaseLine(axesLine, false, 1);
axisLine.AddTopText("K56+569.5", 1, 1, 3);
axisLine.AddBotText("K56+569.5", 1, 1, 3);
dg.AddElement(&axisLine);

迁移

  • debug、3rd、include文件夹复制到Projects
  • Configuration Properties - General
    • Output Directory..\..\debug\bin
    • Character SetUse Multi-Byte Character Set
  • Configuration Properties - Debugging
    • Command:..\..\debug\bin\xxxD.exe
  • C/C++ - General
    • Additional include Directories..\..\include;..\..\3rd\include;
  • C/C++ - All Options
    • Additional include Directories..\..\include;..\..\3rd\include;
    • Addtional Options:-Zm222 %(AdditionalOptions)
  • Command Line:-Zm222
  • Linker - General
    • Output File:..\..\debug\bin\$(TargetName)D$(TargetExt)
    • Addtional Library Directories..\..\debug\lib;..\..\3rd\debug\lib
  • Linker - Debugging
    • Generate Program Database File..\..\debug\bin\$(TargetName)D.pdb
  • Linker - All Options
    • Additional Library Directories..\..\debug\lib;..\..\3rd\debug\lib
    • Generate Program Database File..\..\debug\bin\$(TargetName)D.pdb
    • Output File..\..\debug\bin\$(TargetName)D$(TargetExt)
  • 修改stdafx.h

// stdafx.h : 标准系统包含文件的包含文件,
// 或是经常使用但不常更改的
// 特定于项目的包含文件

#pragma once

#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN            // 从 Windows 头中排除极少使用的资料
#endif

#include "targetver.h"

#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS      // 某些 CString 构造函数将是显式的

// 关闭 MFC 对某些常见但经常可放心忽略的警告消息的隐藏
#define _AFX_ALL_WARNINGS

#include <afxwin.h>         // MFC 核心组件和标准组件
#include <afxext.h>         // MFC 扩展


#include <afxdisp.h>        // MFC 自动化类



#ifndef _AFX_NO_OLE_SUPPORT
#include <afxdtctl.h>           // MFC 对 Internet Explorer 4 公共控件的支持
#endif
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h>             // MFC 对 Windows 公共控件的支持
#endif // _AFX_NO_AFXCMN_SUPPORT

#include <afxcontrolbars.h>     // 功能区和控件条的 MFC 支持

#ifdef _UNICODE
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif
#endif

#include "THMath/Arc2.h"

#include "geometry/geometryInc.h"
using namespace GEOMETRY;

#define private public
#include "BwDesign/BWDesignInc.h"
using namespace BWDSGNMOD;

#undef private

#include "Rules/RulesInc.h"
using namespace RULES;

using namespace THMATH;

#include "ACADLL\AcadCmdLine.h"
#include "ACADLL\AcadCtrl.h"


class  CompTool : public CBWComponent
{
public:
    //  void SetBlockScale(const CString& BlockName,double scale){CBWComponent::SetBlockScale(BlockName,scale);}
    void Add(IN CBWBlock* pBlock){ CBWComponent::Add(pBlock); }//添加绘图图块
    void CreatPaper(OUT vector<CBWPaper*>& PaperVec);
    void Draw(const CString& BlockName = "");
    void SetGroup(const CBWDrawGroup *group){ m_group = group; }
    CString name;
    CString filename;
    //CGraph *pGraph;
private:
    const CBWDrawGroup *m_group;
};

class  CBWDrawObjTool : public CBWDrawObjBase
{
public:
    CBWDrawObjTool() :m_pGroup(NULL){}
    CBWDrawObjTool(const CBWDrawGroup*group){ m_pGroup = group; }
    void Draw(CBWDrawGroup *group)const;
public:
    const CBWDrawGroup*m_pGroup;
};
  • 修改stdafx.cpp

// stdafx.cpp : 只包括标准包含文件的源文件
// demo_bwdesign.pch 将作为预编译头
// stdafx.obj 将包含预编译类型信息

#include "stdafx.h"


void CompTool::CreatPaper(OUT vector<CBWPaper*>& PaperVec)
{
    //PaperVec.push_back(pnew);
    CBWLayOut* playerout = new CBWLayOut();
    CBWTKProp tk_prop("测试用例", "一", "CS01", 0, 1, 2);
    tk_prop.m_DrawAssistName = "测试用例";// PaperSet.m_DrawAssistName;
    tk_prop.m_DrawMainName = "测试用例";//PaperSet.m_DrawMainName;
    tk_prop.m_Subnumber = 1;//PaperSet.m_Subnumber;
    tk_prop.m_PageIndex = 1;//PaperSet.m_PageIndex;
    tk_prop.m_PageSum = 1;//PaperSet.m_PageSum;
    playerout->SetProp(tk_prop, "测试用例");
    //playerout->SetLengthen(PaperSet.Lenthen - 380);
    SetBlockScale(name, m_group->GetScale());
    playerout->SetExpression(name);//排图,name可以是"(N1-N2)+(N3-(N4+N5))";N1、N2、N.....表示图块名,“+”表示横向关系,“-”表示竖向关系
    //创建图纸对象
    CBWPaper* paper = new CBWPaper();
    paper->SetPaperName(filename);
    paper->AddLayout(playerout);
    PaperVec.push_back(paper);
}

void CBWDrawObjTool::Draw(CBWDrawGroup *group)const
{
    if (m_pGroup)
        group->AddGroup(*m_pGroup);
}

void CompTool::Draw(const CString& BlockName)
{
    //drawobj
    CBWDrawObjTool *objdraw = new CBWDrawObjTool(m_group);
    //block
    CBWBlock *pblock = new CBWBlock(name);
    pblock->Add(std::shared_ptr<CBWDrawObjBase>(objdraw));
    pblock->GetObjBase().SetProp("NotClear", "1");
    pblock->GetObjBase().SetProp(name, "ModelOrg");
    pblock->SetScale(m_group->GetScale());
    Add(pblock);
}

格式

struct input {
    double aLeft, aRight;
    double bLeft, bRight;
    vector<double> dist; // 4500+5000*6+4500
    double slotWidth, slotHeight;
};
struct output {
    input m_data;
    ... getLine(...);
    ...
};
struct draw {
    for(...) ... // vector
    ...
};

相关文章

网友评论

      本文标题:API与环境迁移(1)

      本文链接:https://www.haomeiwen.com/subject/ebvgmftx.html