Files
envi-code/SourceCode/Code2026/tg_shs/shs_public/Wire.cpp
T
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

726 lines
19 KiB
C++

// Wire.cpp: implementation of the CWire class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "TApi.h"
#include "TelDef.h"
//#include <arxtools.h>
#include "Wire.h"
#include "TelDef.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CString GetWireRemarkByInfo(const TCHAR* szCaption, const TCHAR* szVal)
{
CString csVal = szVal;
CString csCaption = szCaption;
CodeBase db;
int Number;
CString csType, csValue, csRemark;
XString fullFile;
if(!FindFile(_T("DataStore.dbf"), fullFile)) {
Callme(_T("对不起,没有发现DataStore.dbf文件!"));
return CString();
}
XDbfTable *pTable = db.Open(fullFile);
if(!pTable) {
Callme(_T("DataStore.dbf文件出错!"));
return CString();
}
pTable->MoveFirst();
while(!pTable->IsEOF()) {
GET_FIELD(pTable, _T("TypeNumber"), Number);
GET_FIELD(pTable, _T("TypeName"), csType);
GET_FIELD(pTable, _T("TypeValue"), csValue);
GET_FIELD(pTable, _T("REMARK"), csRemark);
if(csType == csCaption && Number == 0 && csValue == csVal){
return csRemark;
}
pTable->MoveNext();
}
return CString();
}
CWire::CWire()
{
}
CWire::CWire(Entity ent)
{
m_ent = ent;
GetWire2Point(ent, m_ptStart, m_ptEnd);
m_csType = ReadXdata(m_ent, _T("ltype")); //导线型号
m_csRadius = ReadXdata(m_ent, _T("ldm")); //穿管直径
m_csMode = ReadXdata(m_ent, _T("lmeth")); //配线方式
m_csPlace = ReadXdata(m_ent, _T("linst")); //敷设部位
m_csArea = ReadXdata(m_ent, _T("lnoar")); //导线规格
m_csNorm = ReadXdata(m_ent, _T("lnorm"));
m_csName = ReadXdata(m_ent, _T("linenum")); //回路编号
if(m_csType == _T("") && m_csArea == _T("") && m_csMode == _T("") && m_csPlace == _T("")){
m_bIsInfoEmpty = TRUE;
return;
}
m_bIsInfoEmpty = FALSE;
if(m_csNorm == _T("0") && m_csType !=_T(""))
m_csDim = m_csType;
else if(m_csNorm == _T("1") && m_csType !=_T(""))
m_csDim = _T("ZR-") + m_csType;
else if(m_csNorm == _T("2") && m_csType !=_T(""))
m_csDim = _T("NH-") + m_csType;
if(m_csDim != _T(""))
m_csDim += _T("-");
m_csDimSimple = m_csDim + m_csArea;
//add comment liaoy 170725 最好的方法是调用TDbWireDimNew::MergeText(m_csDim,m_csArea,m_csMode,m_csRadius,m_csPlace);
if(m_csArea!=_T("") && m_csMode !=_T("") && m_csRadius != _T("") && m_csPlace != _T(""))
m_csDim = m_csDim + m_csArea + _T("-") + m_csMode + m_csRadius + _T("-") + m_csPlace;
else if(m_csArea!=_T("") && m_csMode !=_T("") && m_csRadius != _T("") && m_csPlace == _T(""))
m_csDim = m_csDim + m_csArea + _T("-") + m_csMode + m_csRadius;
else if(m_csArea==_T("") && m_csMode !=_T("") && m_csRadius != _T("") && m_csPlace != _T(""))
m_csDim = m_csDim + m_csMode + m_csRadius + _T("-") + m_csPlace;
else if(m_csArea!=_T("") && m_csMode ==_T("") && m_csRadius == _T("") && m_csPlace == _T(""))
m_csDim = m_csDim + m_csArea;
else if(m_csArea!=_T("") && m_csMode ==_T("") && m_csRadius == _T("") && m_csPlace != _T(""))
m_csDim = m_csDim + m_csArea + _T("-") + m_csPlace;
else if(m_csArea!=_T("") && m_csMode !=_T("") && m_csRadius == _T("") && m_csPlace != _T(""))
m_csDim = m_csDim + m_csArea + _T("-") + m_csMode + _T("-") + m_csPlace;
else if(m_csArea ==_T("") && m_csMode !=_T("") && m_csRadius == _T("") && m_csPlace != _T(""))
m_csDim = m_csDim + m_csMode + _T("-") + m_csPlace;
else if(m_csArea ==_T("") && m_csMode !=_T("") && m_csRadius != _T("") && m_csPlace == _T(""))
m_csDim = m_csDim + m_csMode + m_csRadius;
//comment end
m_csDim2 = m_csDim;
if(m_csName != _T(""))
m_csDim = m_csName + _T("-") + m_csDim;
}
CWire::~CWire()
{
}
void CWire::GetTipInfo(DList<CBlockStruct> &lstInfo)
{
if(m_bIsInfoEmpty){
CBlockStruct *pInfo = new CBlockStruct();
pInfo->m_csRecord = _T("此导线");
pInfo->m_csDesName = _T("无信息");
lstInfo.Append(pInfo);
return;
}
CBlockStruct *pInfo = new CBlockStruct();
pInfo->m_csRecord = _T("回路编号");
pInfo->m_csDesName = m_csName;
lstInfo.Append(pInfo);
CBlockStruct *pInfo1 = new CBlockStruct();
pInfo1->m_csRecord = _T("导线型号");
if(m_csNorm == _T("1"))
m_csType = _T("阻燃") + m_csType;
else if(m_csNorm == _T("2"))
m_csType = _T("耐火") + m_csType;
pInfo1->m_csDesName = m_csType;
lstInfo.Append(pInfo1);
CBlockStruct *pInfo2 = new CBlockStruct();
pInfo2->m_csRecord = _T("配线方式");
m_csMode += GetWireRemarkByInfo(_T("配线方式"), m_csMode);
pInfo2->m_csDesName = m_csMode;
lstInfo.Append(pInfo2);
CBlockStruct *pInfo3 = new CBlockStruct();
pInfo3->m_csRecord = _T("敷设部位");
m_csPlace += GetWireRemarkByInfo(_T("敷设部位"), m_csPlace);
pInfo3->m_csDesName = m_csPlace;
lstInfo.Append(pInfo3);
CBlockStruct *pInfo4 = new CBlockStruct();
pInfo4->m_csRecord = _T("导线规格");
pInfo4->m_csDesName = m_csArea;
lstInfo.Append(pInfo4);
CBlockStruct *pInfo5 = new CBlockStruct();
pInfo5->m_csRecord = _T("穿管直径");
pInfo5->m_csDesName = m_csRadius;
lstInfo.Append(pInfo5);
}
CString CWire::GetWireLayer()
{
CString csLayer;
TCHAR szLayer[256]=_T("");
m_ent.GetData(8, szLayer);
csLayer = szLayer;
return csLayer;
}
CString CWire::GetLineType()
{
CString csLineType;
TCHAR szLineType[256]=_T("");
m_ent.GetData(6, szLineType);
csLineType = szLineType;
return csLineType;
}
double CWire::GetLineThick()
{
if(m_ent.Is(_T("LINE")) || m_ent.Is(_T("ARC")))
return 0;
double nLineThick;
m_ent.GetData(40, &nLineThick);
return nLineThick;
}
void CWire::GetWireFPick(PickSet &ss, RBList &rbMask)
{
if(m_ent.Is(_T("LINE"))){
XLine line(m_ent);
AssureInCurrentView(line.StartPoint(), line.EndPoint());
line.TransUCS(Groups(0),Groups(1)); // 把 UCS 转为 WCS
RBList rbPoint = ads_buildlist(RT3DPOINT, &line.StartPoint(), RT3DPOINT, &line.EndPoint(), NULL);
ss.Get(_T("F"), rbPoint, NULL, rbMask);
}
else if(m_ent.Is(_T("ARC"))){
XArc arc(m_ent);
XCurveSegment seg;
seg = arc;
XPoly2D xPline;
seg.AsPoly2D(xPline);
XPoint pt1, pt2;
pt1 = *xPline[0];
xPline.Length();
pt2 = *xPline[xPline.Length()-1];
AssureInCurrentView(pt1, pt2);
xPline.TransUCS(Groups(0),Groups(1)); // 把 UCS 转为 WCS
RBList rbPoint = xPline.Polygon();
ss.Get(_T("F"), rbPoint, NULL, rbMask);
}
else{
XPoly2D xPline(m_ent);
XPoint pt1, pt2;
pt1 = *xPline[0];
xPline.Length();
pt2 = *xPline[xPline.Length()-1];
AssureInCurrentView_New(pt1, pt2);
xPline.TransUCS(Groups(0),Groups(1)); // 把 UCS 转为 WCS
RBList rbPoint = xPline.Polygon();
ss.Get(_T("F"), rbPoint, NULL, rbMask);
}
}
void CWire::DrawLineWire(XPoint ptStart, XPoint ptEnd, const TCHAR* szLayer, const TCHAR* szLineType, double nWidth)
{
CString csLayer = szLayer;
InitLayer(szLayer);
XPushVarStr clayer(_T("CLAYER"), szLayer);
CString csLineType = szLineType;
if(csLineType != _T("BYLAYER") && csLineType != _T("")){
double nLtScale;
xg_getvar(_T("LTSCALE"), &nLtScale);
if(nLtScale < 100.0){
xg_setvar(_T("LTSCALE"), 1000);
}
}
if(nWidth < 0.001){
AcDbLine *pline = new AcDbLine;
pline->setStartPoint(ptStart);
pline->setEndPoint(ptEnd);
CString csLineType = szLineType;
if(csLineType != _T("BYLAYER") && csLineType != _T("")){
if(AddLineType(szLineType))
pline->setLinetype(szLineType);
}
PostToDb(pline);
pline->close();
}
else{
AcDbPolyline *pll = new AcDbPolyline;
pll->addVertexAt(0, ptStart);
pll->addVertexAt(1, ptEnd);
pll->setConstantWidth(nWidth);
pll->setElevation(ptStart.z);
if(csLineType != _T("BYLAYER") && csLineType != _T("")){
if(AddLineType(szLineType))
pll->setLinetype(szLineType);
}
PostToDb(pll);
pll->close();
}
Entity ent;
ent.GetLast();
int iLayerIndex = 0;
if(csLayer == LAY_WIRE_ILLUME)
iLayerIndex = 0;
else if(csLayer == LAY_WIRE_POWER)
iLayerIndex = 1;
else if(csLayer == LAY_WIRE_FIRE)
iLayerIndex = 2;
else if(csLayer == LAY_WIRE_WEAK)
iLayerIndex = 3;
else if(csLayer == LAY_WIRE_EMERG)
iLayerIndex = 4;
else if(csLayer == LAY_WIRE_TEL)
iLayerIndex = 5;
else if(csLayer == LAY_WIRE_BROAD)
iLayerIndex = 6;
else if(csLayer == LAY_WIRE_CTRL)
iLayerIndex = 7;
else if(csLayer == LAY_WIRE_SOURCE)
iLayerIndex = 8;
else
return;
WriteXdata(ent, _T("ltype"), (const TCHAR*)g_csWireDimType[iLayerIndex]); //导线型号
WriteXdata(ent, _T("ldm"), (const TCHAR*)g_csWireDimRadius[iLayerIndex]); //穿管直径
WriteXdata(ent, _T("lmeth"), (const TCHAR*)g_csWireDimMode[iLayerIndex]); //配线方式
WriteXdata(ent, _T("linst"), (const TCHAR*)g_csWireDimPlace[iLayerIndex]); //敷设部位
WriteXdata(ent, _T("lnoar"), (const TCHAR*)g_csWireDimArea[iLayerIndex]); //规格
WriteXdata(ent, _T("lnorm"), (const TCHAR*)Itoa(g_iWireDimNorm[iLayerIndex])); //规格
}
void CWire::SetLineName(const TCHAR* szLineType)
{
if(!!m_ent)
WriteXdata(m_ent, _T("linenum"), szLineType);
}
void CWire::SetLayer(const TCHAR* szNewLayer)
{
if(!m_ent)
return;
AcDbObjectId eId;
if(m_ent.Is(_T("LINE"))){
AcDbEntity *pEnt = NULL;
acdbGetObjectId(eId, m_ent);
acdbOpenObject(pEnt, eId, AcDb::kForWrite);
if(pEnt){
InitLayer(szNewLayer);
pEnt->setLayer(szNewLayer);
pEnt->setColorIndex(256);
pEnt->close();
}
}
else{
AcDbPolyline *pEnt = NULL;
acdbGetObjectId(eId, m_ent);
acdbOpenObject(pEnt, eId, AcDb::kForWrite);
if(pEnt){
InitLayer(szNewLayer);
pEnt->setLayer(szNewLayer);
double nWidth = g_nWireWidth[GetWireLayerIndex(szNewLayer)] * DocGetPScale();
pEnt->setConstantWidth(nWidth);
pEnt->setColorIndex(256);
pEnt->close();
}
}
}
void CWire::SetColor(int iColor)
{
if(!m_ent)
return;
AcDbObjectId eId;
AcDbEntity *pEnt = NULL;
acdbGetObjectId(eId, m_ent);
acdbOpenObject(pEnt, eId, AcDb::kForWrite);
if(pEnt){
pEnt->setColorIndex(iColor);
pEnt->close();
}
}
void CWire::SetWidth(double nWidth)
{
if(!m_ent)
return;
if(m_ent.Is(_T("LINE")))
return;
AcDbObjectId eId;
AcDbPolyline *pEnt = NULL;
acdbGetObjectId(eId, m_ent);
acdbOpenObject(pEnt, eId, AcDb::kForWrite);
if(pEnt){
pEnt->setConstantWidth(nWidth);
pEnt->close();
}
}
void CWire::SetInfo(const TCHAR* szType, const TCHAR* szMode, const TCHAR* szPlace,
const TCHAR* szArea, const TCHAR* szNorm, const TCHAR* szRadius)
{
if(!m_ent)
return;
WriteXdata(m_ent, _T("ltype"), szType); //导线型号
WriteXdata(m_ent, _T("ldm"), szRadius); //穿管直径
WriteXdata(m_ent, _T("lmeth"), szMode); //配线方式
WriteXdata(m_ent, _T("linst"), szPlace); //敷设部位
WriteXdata(m_ent, _T("lnoar"), szArea); //规格
WriteXdata(m_ent, _T("lnorm"), szNorm); //
}
extern AcDbObjectId GetLinetypeIdFromString2(const TCHAR* pStr);
void CWire::SetLineType(const TCHAR* szLineType)
{
AcDbObjectId id=LoadTgLineType(szLineType);
OPENOBJ_BEGIN(m_ent, AcDb::kForWrite, AcDbEntity, pEnt);
if(pEnt){
pEnt->setLinetype(id);
}
OPENOBJ_END();
}
void CWire::GetBlkByLineWire(Entity& entBlk1, Entity& entBlk2)
{
RBList rbMask = ads_buildlist( -4, _T("<or"),
-4, _T("<and"), RTDXF0, _T("INSERT"), 8, GetLayerNames(_T("设备")), -4, _T("and>"),
-4, _T("<and"), RTDXF0, _T("INSERT"), 8, LAY_TEL_ELEMENT, -4, _T("and>"),
-4, _T("or>"), NULL);
PickSet ss(SS_FREE);
GetPointPickSet(Wcs2Ucs(m_ptStart), ss, rbMask, 2);
if(ss.Length() == 1)
entBlk1 = ss[0L];
ss.Free();
GetPointPickSet(Wcs2Ucs(m_ptEnd), ss, rbMask, 2);
if(ss.Length() == 1)
entBlk2 = ss[0L];
}
BOOL CWire::GetWireAllArea(XStringList &lstArea)
{
if(m_csArea == _T(""))
return FALSE;
CString csTmp = m_csArea;
while(1){
int len = csTmp.GetLength();
int idx = csTmp.Find(_T("+"), 0);
if(idx < 0){
lstArea.Append(tstrnew(csTmp));
break;
}
CString csLeft, csRight;
csLeft = csTmp.Left(idx);
csRight = csTmp.Right(len - idx - 1);
csTmp = csRight;
lstArea.Append(tstrnew(csLeft));
}
return TRUE;
}
int CWire::GetWireNum()
{
int ret = 0;
if(m_csArea == _T(""))
return ret;
XStringList lstArea;
if(!GetWireAllArea(lstArea))
return ret;
int length = lstArea.Length();
for(int i=0;i<length;i++){
CString csAreaTmp = (const TCHAR*)lstArea[i];
int len = csAreaTmp.GetLength();
int idx = csAreaTmp.Find(_T("x"), 0);
if(idx < 0){
idx = csAreaTmp.Find(_T("*"), 0);
if(idx < 0)
break;
}
CString csLeft, csRight;
csLeft = csAreaTmp.Left(idx);
csRight = csAreaTmp.Right(len - idx - 1);
ret += _ttoi(csLeft);
}
return ret;
}
void CWire::SetWire2Point(XPoint ptStart, XPoint ptEnd)
{
if(!m_ent)
return;
m_ptStart = ptStart;
m_ptEnd = ptEnd;
AcDbObjectId eId;
acdbGetObjectId(eId, m_ent);
if(m_ent.Is(_T("LINE"))){
AcDbLine *pEnt = NULL;
acdbOpenObject(pEnt, eId, AcDb::kForWrite);
if(pEnt){
pEnt->setStartPoint(ptStart);
pEnt->setEndPoint(ptEnd);
pEnt->close();
}
}
else{
XPoly2D xPline(m_ent);
if(xPline.Length() > 2)
return;
AcDbPolyline *pEnt = NULL;
acdbOpenObject(pEnt, eId, AcDb::kForWrite);
if(pEnt){
pEnt->setPointAt(0, ptStart);
pEnt->setPointAt(1, ptEnd);
pEnt->close();
}
}
}
//***************************************************************************************
//***************************************************************************************
//TWireEdJig::TWireEdJig(XPoint pt1, XPoint pt2, int iFixMode)
//{
// m_bIsArc = FALSE;
// m_pDrawEnt = NULL;
// m_pDrawLine = NULL;
// m_iFixMode = iFixMode;
// m_ptStart = pt1;
// m_ptEnd = pt2;
// XLine line(pt1, pt2, 1);
// XPoint ptCen;
// line.MidPoint(ptCen);
// m_pline = new AcDbPolyline;
// m_pline->addVertexAt(0, m_ptStart);
// m_pline->addVertexAt(1, ptCen);
// m_pline->addVertexAt(2, m_ptEnd);
//
// XArc arc(m_ptStart, ptCen, m_ptEnd);
// m_pDrawEnt = new AcDbArc(arc.center, arc.radius, arc.startAngle, arc.endAngle);
//
TWireEdJig::TWireEdJig(XPoint pt1, XPoint pt2)
{
m_nLockAng = 0;
// m_iFixMode = -1;
m_pDrawLine = NULL;
// m_pline = NULL;
m_bIsArc = TRUE;
m_ptStart = pt1;
m_ptEnd = pt2;
XLine line(pt1, pt2, 1);
XPoint ptCen;
line.MidPoint(ptCen);
XArc arc(m_ptStart, ptCen, m_ptEnd);
m_pDrawEnt = new AcDbArc(arc.GetCenterPt(), arc.GetRadius(), arc.GetStarAngle(), arc.GetEndAngle());
AcCmColor color;
color.setColorIndex(1);
// m_pline = new AcDbPolyline;
// m_pline->addVertexAt(0, m_ptStart);
// m_pline->addVertexAt(1, ptCen);
// m_pline->addVertexAt(2, m_ptEnd);
// m_pline->setColor(color);
// m_pline->setClosed(Adesk::kFalse);
m_pDrawEnt->setColor(color);
}
TWireEdJig::TWireEdJig(XPoint pt)
{
m_nLockAng = 0;
// m_iFixMode = -1;
m_pDrawEnt = NULL;
// m_pline = NULL;
m_bIsArc = FALSE;
m_ptStart = pt;
m_pDrawLine = new AcDbLine(pt,pt);
AcCmColor color;
color.setColorIndex(1);
m_pDrawLine->setColor(color);
}
TWireEdJig::~TWireEdJig()
{
if(m_pDrawEnt)
delete m_pDrawEnt;
if(m_pDrawLine)
delete m_pDrawLine;
// if(m_pline)
// delete m_pline;
}
AcEdJig::DragStatus
TWireEdJig::GetPoint(XPoint &pt)
{
// if(m_iFixMode > -1)
// return acquirePoint(pt);
if(m_bIsArc){
XPoint ptBase = m_ptStart;
XLine line(m_ptStart, m_ptEnd, 1);
line.MidPoint(ptBase);
AcGePoint3d ptBase2 = asPnt3d(ptBase);
return acquirePoint(pt, ptBase2);
}
if(!m_ptRef)
return acquirePoint(pt);
else
return acquirePoint(pt, m_ptRef);
}
void TWireEdJig::SetStartPoint(XPoint pt)
{
if(m_bIsArc) return;
m_ptStart = pt;
m_pDrawLine->setStartPoint(m_ptStart);
}
int TWireEdJig::DoIt(int *keyIndex)
{
int nRet = TSymbEdJig::DoIt(keyIndex);
return nRet;
}
XPoint TWireEdJig::GetCorrectPt()
{
XPoint ptTmp = m_ptResult;
if(m_nLockAng > 0){
m_ptRef = XPoint();
XPoint ptTmp2 = m_ptStart;
ptTmp2.z = 0;
double nAngle = ads_angle(ptTmp2, m_ptResult) - m_nLockAng;
double nDist = ads_distance(ptTmp2, m_ptResult);
if(nAngle > PI/2 && nAngle < PI/2*3)
ads_polar(m_ptStart, m_nLockAng, -nDist, ptTmp);
else
ads_polar(m_ptStart, m_nLockAng, nDist, ptTmp);
}
return ptTmp;
}
// 更新实体数据
Adesk::Boolean TWireEdJig::update()
{
Adesk::Boolean bRet=Adesk::kTrue;
ptTmp = m_ptResult;
if(m_bIsArc){
XArc arc(m_ptStart, m_ptResult, m_ptEnd);
m_pDrawEnt->setCenter(arc.GetCenterPt());
m_pDrawEnt->setStartAngle(arc.GetStarAngle());
m_pDrawEnt->setEndAngle(arc.GetEndAngle());
m_pDrawEnt->setRadius(arc.GetRadius());
}
else{
if(m_nLockAng > 0){
ptTmp = GetCorrectPt();
m_pDrawLine->setEndPoint(ptTmp);
}
else
m_pDrawLine->setEndPoint(m_ptResult);
}
return bRet;
}
//Adesk::Boolean TWireEdJig::update()
//{
// Adesk::Boolean bRet=Adesk::kTrue;
// ptTmp = m_ptResult;
// if(m_iFixMode > -1){
// double maxX, maxY, minX, minY;
// maxX = m_ptStart.x > m_ptEnd.x ? m_ptStart.x : m_ptEnd.x;
// maxY = m_ptStart.y > m_ptEnd.y ? m_ptStart.y : m_ptEnd.y;
// minX = m_ptStart.x < m_ptEnd.x ? m_ptStart.x : m_ptEnd.x;
// minY = m_ptStart.y < m_ptEnd.y ? m_ptStart.y : m_ptEnd.y;
// if(m_ptResult.x > maxX)
// ptTmp.x = maxX;
// if(m_ptResult.y > maxY)
// ptTmp.y = maxY;
// if(m_ptResult.x < minX)
// ptTmp.x = minX;
// if(m_ptResult.y < minY)
// ptTmp.y = minY;
// }
// if(m_iFixMode == 0){
// m_pline->setPointAt(0, m_ptStart);
// m_pline->setPointAt(1, ptTmp);
// m_pline->setPointAt(2, m_ptEnd);
// }
// else if(m_iFixMode == 1){
//
// XLine xline(m_ptStart, m_ptEnd, 1);
// ads_polar(ptTmp, 0, 1000, ptOnx);
// ads_polar(ptTmp, PI/2, 1000, ptOny);
// XLine line1(ptTmp, ptOnx, 0);
// XLine line2(ptTmp, ptOny, 0);
// line1.Intersection(xline, ptOnx);
// line2.Intersection(xline, ptOny);
// m_pline->setPointAt(0, ptOny);
// m_pline->setPointAt(1, ptTmp);
// m_pline->setPointAt(2, ptOnx);
// }
// else if(m_bIsArc){
// XArc arc(m_ptStart, m_ptResult, m_ptEnd);
// m_pDrawEnt->setCenter(arc.center);
// m_pDrawEnt->setStartAngle(arc.startAngle);
// m_pDrawEnt->setEndAngle(arc.endAngle);
// m_pDrawEnt->setRadius(arc.radius);
// }
// else{
// m_pDrawLine->setEndPoint(m_ptResult);
// }
// return bRet;
//}
AcDbEntity* TWireEdJig::entity() const
{
// if(m_iFixMode > -1)
// return (AcDbEntity *)m_pline;
if(m_bIsArc)
return (AcDbEntity *)m_pDrawEnt;
else
return (AcDbEntity *)m_pDrawLine;
}