⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exhcad.h

📁 《管状换热器计算机辅助设计系统ExhCAD绘图系统(版本:1.01a Final)》为自由软件
💻 H
📖 第 1 页 / 共 2 页
字号:
	pt2.x=startpoint.x+lenwidth/2,pt2.y=startpoint.y;
    pt3.x=startpoint.x+lenwidth/2,pt3.y=startpoint.y-height;
    pt4.x=startpoint.x-lenwidth/2,pt4.y=startpoint.y-height;
    pLine1=new AcDbLine(pt1,pt2); 
	pLine2=new AcDbLine(pt2,pt3);  
    pLine3=new AcDbLine(pt3,pt4);  
	pLine4=new AcDbLine(pt4,pt1);  

    pBlock->appendAcDbEntity(objId, pLine1); 
	pBlock->appendAcDbEntity(objId, pLine2);
    pBlock->appendAcDbEntity(objId, pLine3);
	pBlock->appendAcDbEntity(objId, pLine4);


           pBlockTable->close();
           pBlock->close();
           pLine1->close();
 pLine2->close();
 pLine3->close();
 pLine4->close();
	
		
	return OK;
}


Status ExhCAD::DrawUContainer(void){
    AcGePoint3d startpoint,pt1,pt2,pt3,pt4;
	AcDbLine *pLine1,*pLine2,*pLine3,*pLine4;
    ads_real lenwidth=1556.5,height=200; 
    AcDbObjectId objId;	
	AcDbBlockTableRecord *pBlock;
    AcDbBlockTable *pBlockTable; 	 

		 
	ads_getreal(PromptUCLW,&lenwidth);
	ads_getreal(PromptUCH,&height);    
    lenwidth=lenwidth/10,height=height/10;
    pDb->setOsmode(2);//mid
    ads_getpoint(asDblArray(basepoint),PromptUContainerBasePoint,asDblArray(startpoint));   
    
	acdbCurDwg()->getBlockTable(pBlockTable,
                    AcDb::kForRead);   
    pBlockTable->getAt(ACDB_MODEL_SPACE, pBlock,
               AcDb::kForWrite);  

	startpoint.y=startpoint.y+5;
    pt1.x=startpoint.x-lenwidth/2,pt1.y=startpoint.y;
	pt2.x=startpoint.x+lenwidth/2,pt2.y=startpoint.y;
    pt3.x=startpoint.x+lenwidth/2,pt3.y=startpoint.y+height;
    pt4.x=startpoint.x-lenwidth/2,pt4.y=startpoint.y+height;

    pLine1=new AcDbLine(pt1,pt2);  
	pLine2=new AcDbLine(pt2,pt3);  
    pLine3=new AcDbLine(pt3,pt4);  
	pLine4=new AcDbLine(pt4,pt1);  

    pBlock->appendAcDbEntity(objId, pLine1);
	pBlock->appendAcDbEntity(objId, pLine2);
    pBlock->appendAcDbEntity(objId, pLine3);
	pBlock->appendAcDbEntity(objId, pLine4);


           pBlockTable->close();
           pBlock->close();
           pLine1->close();
 pLine2->close();
 pLine3->close();
 pLine4->close();
	
	
	return OK;
}

Status ExhCAD::DrawSteel(void){
   
	AcGePoint3d startpoint,endpoint,pt1,pt2,pt3,pt4;
	AcGePoint2d pt5,pt6,pt7,pt8;
    ads_real len=3298,width=310,thick=10; 
    AcDbObjectId objId1,objId2,objId3,objId4,objId5;
	AcDbLine *pLine4,*pLine5;
	AcDbBlockTableRecord *pBlock;
    AcDbBlockTable *pBlockTable; 	
	AcDbHatch *pHatch=new AcDbHatch();
	AcDbPolyline *pPolyline=new AcDbPolyline(5);
	AcGePoint2dArray vertices1,vertices2;
    AcGeDoubleArray bulges1,bulges2;

	ads_getreal(PromptSL,&len);
	ads_getreal(PromptSW,&width);
    ads_getreal(PromptST,&thick);
    len=len/10,width=width/10,thick=thick/10;

    pDb->setOsmode(32);//int
    ads_getpoint(asDblArray(basepoint),PromptSteelLeftBasePoint,asDblArray(startpoint));   
	endpoint.x=startpoint.x,endpoint.y=0;
    pLine4=new AcDbLine(startpoint,endpoint);
	pLine4->setLinetype("Dashed");
	pLine4->setLinetypeScale(10,0);
	pDb->setOsmode(4);//cen
	ads_getpoint(asDblArray(basepoint),PromptSteelHMBasePoint,asDblArray(startpoint));
    endpoint.x=0,endpoint.y=startpoint.y;
    pLine5=new AcDbLine(startpoint,endpoint);
	pLine5->setLinetype("Dashed");
	pLine5->setLinetypeScale(10,0);
   	acdbCurDwg()->getBlockTable(pBlockTable,
                    AcDb::kForRead);   
    pBlockTable->getAt(ACDB_MODEL_SPACE, pBlock,
               AcDb::kForWrite); 
    pBlock->appendAcDbEntity(objId4, pLine4);
    pBlock->appendAcDbEntity(objId5, pLine5);
    pBlockTable->close();
    pBlock->close();
	pLine4->close();
    pLine5->close();
    pDb->setOsmode(32);
	ads_getpoint(asDblArray(basepoint),PromptSteelBasePoint,asDblArray(startpoint));

	acdbCurDwg()->getBlockTable(pBlockTable,
                    AcDb::kForRead);   
    pBlockTable->getAt(ACDB_MODEL_SPACE, pBlock,
               AcDb::kForWrite); 
    pt1.x=startpoint.x,pt1.y=startpoint.y+width/2;
	pt2.x=startpoint.x+len,pt2.y=startpoint.y+width/2;
    pt3.x=startpoint.x+len,pt3.y=startpoint.y-width/2;
    pt4.x=startpoint.x,pt4.y=startpoint.y-width/2;
	pt5.x=pt1.x,pt5.y=pt1.y;
    pt6.x=pt2.x,pt6.y=pt2.y;
	pt7.x=pt3.x,pt7.y=pt3.y;
	pt8.x=pt4.x,pt8.y=pt4.y;
	pPolyline->addVertexAt(0,pt5);
	pPolyline->addVertexAt(0,pt6);
	pPolyline->addVertexAt(0,pt7);
	pPolyline->addVertexAt(0,pt8);
	pPolyline->addVertexAt(0,pt5);
	pBlock->appendAcDbEntity(objId1, pPolyline);
	vertices1.append(pt5),vertices1.append(pt6);
	vertices1.append(pt7),vertices1.append(pt8);
	vertices1.append(pt5);
	bulges1.append(0),bulges1.append(0);
	bulges1.append(0),bulges1.append(0);
	bulges1.append(0);
	pHatch->appendLoop(AcDbHatch::kExternal,vertices1,bulges1);	
	pt1.x=pt1.x+thick,pt1.y=pt1.y-thick;
	pt2.x=pt2.x-thick,pt2.y=pt2.y-thick;
	pt3.x=pt3.x-thick,pt3.y=pt3.y+thick;
    pt4.x=pt4.x+thick,pt4.y=pt4.y+thick;
	pt5.x=pt1.x,pt5.y=pt1.y;
    pt6.x=pt2.x,pt6.y=pt2.y;
	pt7.x=pt3.x,pt7.y=pt3.y;
	pt8.x=pt4.x,pt8.y=pt4.y;
	pPolyline->addVertexAt(0,pt5);
	pPolyline->addVertexAt(0,pt6);
	pPolyline->addVertexAt(0,pt7);
	pPolyline->addVertexAt(0,pt8);
	pPolyline->addVertexAt(0,pt5);
	pBlock->appendAcDbEntity(objId2, pPolyline);
	vertices2.append(pt5),vertices2.append(pt6);
	vertices2.append(pt7),vertices2.append(pt8);
	vertices2.append(pt5);
	bulges2.append(0),bulges2.append(0);
	bulges2.append(0),bulges2.append(0);
	bulges2.append(0);
	pHatch->appendLoop(AcDbHatch::kDefault,vertices2,bulges2);
	pHatch->setPatternScale(0.1);
    pHatch->evaluateHatch();
	pHatch->setPattern(AcDbHatch::kPreDefined, "ANSI31"); 
	pBlock->appendAcDbEntity(objId3, pHatch);
           pBlockTable->close();
           pBlock->close();    
		   pPolyline->close();
		   pHatch->close();

	
	return OK;
}

Status ExhCAD::DrawLinker(void){

    AcGePoint3d startpoint,pt1,pt2,pt3;
	AcDbArc *pArc;    
    AcDbObjectId objId;	
	AcDbBlockTableRecord *pBlock;
    AcDbBlockTable *pBlockTable; 	

	double radius;	

	pDb->setOsmode(32);//int
    ads_getpoint(asDblArray(basepoint),PromptLinkerCenLBasePoint,asDblArray(startpoint));   
    pt1.x=startpoint.x,pt1.y=startpoint.y;
    ads_getpoint(asDblArray(basepoint),PromptLinkerCenRBasePoint,asDblArray(startpoint));
    pt2.x=startpoint.x;
	pt3.x=pt1.x+(pt2.x-pt1.x)/2,pt3.y=pt1.y;
    radius= (pt2.x-pt1.x)/2;
     
    pArc=new AcDbArc(pt3,radius,0.0,PI);
    
   	acdbCurDwg()->getBlockTable(pBlockTable,
                    AcDb::kForRead);   
    pBlockTable->getAt(ACDB_MODEL_SPACE, pBlock,
               AcDb::kForWrite); 
    pBlock->appendAcDbEntity(objId, pArc);  
    pBlockTable->close();
    pBlock->close();
	pArc->close();     

   return OK;

}

Status ExhCAD::Title(char *FileTitle){
	ads_hdlg hdlg;
	int dcl_id,what_next;
	AcDbTextStyleTable *pStyleTable;
    AcDbTextStyleTableIterator *pIterator;
	AcDbObjectId styleId,objId;;
	AcDbBlockTableRecord *pBlock;
    AcDbBlockTable *pBlockTable;

	AcGePoint3d authorpoint(506.0,11.0,0.0),schoolpoint(442.0,11.0,0.0),
		        scalepoint(532.0,18.0,0.0),checkpoint(506.0,21.0,0.0),
				teacherpoint(506.0,14.0,0.0),sizepoint(532.0,14.0,0.0),
				datepoint(519.0,11.0,0.0),projectpoint(442.0,18.0,0.0);   

	ads_load_dialog(FileTitle,&dcl_id);
	ads_new_dialog("Title",dcl_id,NULLCB,&hdlg); 
	
	InitTitle(hdlg);	
    SetTitle(hdlg);
	
    ads_start_dialog(hdlg,&what_next);

	if(what_next==DLGOK){
          
           acdbCurDwg()->getTextStyleTable(pStyleTable,
           AcDb::kForRead);
		   pStyleTable->newIterator(pIterator);
           pIterator->getRecordId(styleId);
           delete pIterator;
		   pStyleTable->close();

		   AcDbText *pauthor=new AcDbText(authorpoint,Titles->Author,
	                         styleId,
			                	2,0);	
		   AcDbText *pschool=new AcDbText(schoolpoint,Titles->School,
	                         styleId,
			                	5,0);
		   AcDbText *pscale=new AcDbText(scalepoint,Titles->Scale,
	                         styleId,
			                	2,0);
		   AcDbText *pcheck=new AcDbText(checkpoint,Titles->Check,
	                         styleId,
			                	3,0);
		   AcDbText *pteacher=new AcDbText(teacherpoint,Titles->Teacher,
	                         styleId,
			                	2,0);
		   AcDbText *psize=new AcDbText(sizepoint,Titles->Size,
	                         styleId,
			                	2,0);
		   AcDbText *pdate=new AcDbText(datepoint,Titles->Date,
	                         styleId,
			                	2,0);
		   AcDbText *pproject=new AcDbText(projectpoint,Titles->Project,
	                         styleId,
			                	8,0);
           acdbCurDwg()->getBlockTable(pBlockTable,
                    AcDb::kForRead);    
           pBlockTable->getAt(ACDB_MODEL_SPACE, pBlock,
               AcDb::kForWrite);    
           pBlock->appendAcDbEntity(objId, pauthor);
           pBlock->appendAcDbEntity(objId, pschool);
		   pBlock->appendAcDbEntity(objId, pscale);
		   pBlock->appendAcDbEntity(objId, pcheck);
		   pBlock->appendAcDbEntity(objId, pteacher);
		   pBlock->appendAcDbEntity(objId, psize);
		   pBlock->appendAcDbEntity(objId, pdate);
		   pBlock->appendAcDbEntity(objId, pproject);
           pBlockTable->close();
           pBlock->close();
           pauthor->close();
		   pschool->close();
		   pscale->close();
		   pcheck->close();
		   pteacher->close();
           psize->close();
		   pdate->close();
		   pproject->close();
    }	 
	ads_unload_dialog(dcl_id);
	return OK;
}

Status ExhCAD::DeTable(char *FileDeTable){
	ads_hdlg hdlg;
	int dcl_id,what_next;
	AcDbTextStyleTable *pStyleTable;
    AcDbTextStyleTableIterator *pIterator;
	AcDbObjectId styleId,objId;;
	AcDbBlockTableRecord *pBlock;
    AcDbBlockTable *pBlockTable;

	AcGePoint3d areapoint(508.0,77.0,0.0),insertpoint(508.0,73.0,0.0),
		        fumeouttpoint(508.0,70.0,0.0),fumeintpoint(508.0,65.0,0.0),
				fumeqpoint(508.0,60.0,0.0),airouttpoint(508.0,56.0,0.0),
				airintpoint(508.0,52.0,0.0),airqpoint(508.0,48.0,0.0);   

	ads_load_dialog(FileDeTable,&dcl_id);
	ads_new_dialog("DeTable",dcl_id,NULLCB,&hdlg); 
	
	InitDeTable(hdlg);	
    SetDeTable(hdlg);
	
    ads_start_dialog(hdlg,&what_next);

	if(what_next==DLGOK){
          
           acdbCurDwg()->getTextStyleTable(pStyleTable,
           AcDb::kForRead);
		   pStyleTable->newIterator(pIterator);
           pIterator->getRecordId(styleId);
           delete pIterator;
		   pStyleTable->close();

		   AcDbText *parea=new AcDbText(areapoint,Detables->Area,
	                         styleId,
			                	2,0);	
		   AcDbText *pinsert=new AcDbText(insertpoint,Detables->Insert,
	                         styleId,
			                	2,0);
		   AcDbText *pfumeoutt=new AcDbText(fumeouttpoint,Detables->Fumeoutt,
	                         styleId,
			                	2,0);
		   AcDbText *pfumeint=new AcDbText(fumeintpoint,Detables->Fumeint,
	                         styleId,
			                	2,0);
		   AcDbText *pfumeq=new AcDbText(fumeqpoint,Detables->Fumeq,
	                         styleId,
			                    2,0);
		   AcDbText *pairoutt=new AcDbText(airouttpoint,Detables->Airoutt,
	                         styleId,
			                	2,0);
		   AcDbText *pairint=new AcDbText(airintpoint,Detables->Airint,
	                         styleId,
			                	2,0);
		   AcDbText *pairq=new AcDbText(airqpoint,Detables->Airq,
	                         styleId,
			                	2,0);
           acdbCurDwg()->getBlockTable(pBlockTable,
                    AcDb::kForRead);    
           pBlockTable->getAt(ACDB_MODEL_SPACE, pBlock,
               AcDb::kForWrite);    
           pBlock->appendAcDbEntity(objId, parea);
           pBlock->appendAcDbEntity(objId, pinsert);
		   pBlock->appendAcDbEntity(objId, pfumeoutt);
		   pBlock->appendAcDbEntity(objId, pfumeint);
		   pBlock->appendAcDbEntity(objId, pfumeq);
		   pBlock->appendAcDbEntity(objId, pairoutt);
		   pBlock->appendAcDbEntity(objId, pairint);
		   pBlock->appendAcDbEntity(objId, pairq);
           pBlockTable->close();
           pBlock->close();
           parea->close();
		   pinsert->close();
		   pfumeoutt->close();
		   pfumeint->close();
		   pfumeq->close();
           pairoutt->close();
		   pairint->close();
		   pairq->close();
    }	  
	ads_unload_dialog(dcl_id);
	return OK;
}



ExhCAD::~ExhCAD(void){
	  
	
}

void ExhCADAbout(void){    
  
    ExhCAD *pExhCAD = new ExhCAD;
    
    if(!pExhCAD) {
        ads_printf(IDS_ExhCAD_Object);
        return;
    }
    pExhCAD->About(IDS_ExhCAD_About);
    delete pExhCAD;   
}

void ExhCADHelp(void){
	ExhCAD *pExhCAD = new ExhCAD;
    
    if(!pExhCAD) {
        ads_printf(IDS_ExhCAD_Object);
        return;
    }
    
    pExhCAD->Help(pExhCAD->GetExhCADFile(ExhCADHelpFile) ,"",HELP_CONTEXTS);
    delete pExhCAD;   	 

}

void ExhCADDraw(void){
	 ExhCAD *pExhCAD = new ExhCAD;
   
    if(!pExhCAD) {
        ads_printf(IDS_ExhCAD_Object);
        return;
    }
    pExhCAD->Draw(); 
    delete pExhCAD;   

}

void ExhCADDimension(void){
	 ExhCAD *pExhCAD = new ExhCAD;
    
    if(!pExhCAD) {
        ads_printf(IDS_ExhCAD_Object);
        return;
    }
    pExhCAD->Dimension();
    delete pExhCAD;  
}

void ExhCADTitle(void){
	 
	 ExhCAD *pExhCAD = new ExhCAD;
    
     if(!pExhCAD) {
        ads_printf(IDS_ExhCAD_Object);
        return;
     }  
     pExhCAD->Title(pExhCAD->GetExhCADFile(TitleDclFile));

     delete pExhCAD;     
}

void ExhCADDeTable(void){

	 ExhCAD *pExhCAD = new ExhCAD;
    
     if(!pExhCAD) {
        ads_printf(IDS_ExhCAD_Object);
        return;
     }  
     pExhCAD->DeTable(pExhCAD->GetExhCADFile(DeTableDclFile));

     delete pExhCAD;           
}

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -