首页 > 其他分享 >创建简单图元-示例代码

创建简单图元-示例代码

时间:2022-12-08 13:47:20浏览次数:41  
标签:DPoint pHatch 示例 代码 pDb pDraw pText 图元 pPloy

#include "AcDrawManage.h"
#include "AcDbPlotSettings.h"

void AppBowen::create2dDraw()
{
	// draw 2d
	AfxMessageBox("draw 2d");



	// 获取当前活动的Draw
	AcDrawManage* pDraw = AppClient::GetActiveDrawing();

	// 清屏
	pDraw->ClearViewport();

	// 获取当前活动的db
	AcDbDatabase*pDb=pDraw->getActiveDb();

	// 设置布局
	AcDbBlockTableRecord* pRecord = pDb->getLayoutManage()->getBlockRecordAt(1);

	// 设置打印信息
	{
		AcDbPlotSettings* pSetting = pRecord->getPlotSettings();
		pSetting->m_mashineName = "Fax";
		pSetting->m_paperName = "A0";
	}
	

	// 创建线条
	{
		// 标记撤销起点
		pDraw->StartUndo();
		// AcDb3DPolyline* pPloy = new AcDb3DPolyline(DPoint(0,0,0), DPoint(1,0,0));// 绘制简单的线条

		AcDb3DPolyline* pPloy = new AcDb3DPolyline(); // 绘制一个复杂线条,多边形
		// 对该线条设置样式
		// 精度0.1,四舍五入
		pPloy->m_lineGloableWidth = 0.2765;
		pPloy->setColor(RGB(255, 0, 0)); // RGB颜色模式

		// AcGePolyVertix 顶点信息 参数1:点信息,参数2:曲率,0为直线,>0为曲率,参数3:属性,字符串
		pPloy->m_pList.push_back(AcGePolyVertix(DPoint(0, 0, 0), 2, "大头兵"));
		pPloy->m_pList.push_back(AcGePolyVertix(DPoint(0, 10, 0), 0.5));
		pPloy->m_pList.push_back(AcGePolyVertix(DPoint(10, 10, 0), 0));

		// 获取该db的块表记录,并向其添加新Entity,参数1:要添加的AcDbEntity,参数2:是否支持撤销
		pDb->getModelSpaceRecord()->addNewEntity(pPloy, true);


		// 创建的对象需要close才能正常显示
		pPloy->close();
	}

	// 创建文字
	{
		AcDbText* pText = new AcDbText(); // 绘制一个复杂线条
		pText->m_alignmentPoint = DPoint(0, 0, 0); // 文字插入点信息
		pText->m_height = 10;// 文字高度
		pText->m_widthFactor = 2;// 宽度
		pText->m_textString = "普罗米修斯";// 文字字符串
		pDb->getModelSpaceRecord()->addNewEntity(pText, true);
		pText->close();
	}

	// 填充图案
	{
		AcDbHatch* pHatch = new AcDbHatch(); // 绘制一个填充图案
		pHatch->m_patternName = "我是粉刷匠,把这里填充一个好看的图案";
		pHatch->appendPoint2D(DPoint(0, 0, 0));
		pHatch->appendPoint2D(DPoint(100, 0, 0));
		pHatch->appendPoint2D(DPoint(100, 100, 0));
		pHatch->appendPoint2D(DPoint(0, 100, 0));
		pHatch->appendPoint2D(DPoint(0, 0, 0));

		pHatch->setPatternDefinitionByName("ANGLE");// 设置图案,参数字符串,来自/resource/pat/acadiso.pat

		//pDb->getModelSpaceRecord()->addNewEntity(pHatch, true);
		pRecord->addNewEntity(pHatch, true);// 将图案绘制到布局1
		pHatch->close();
	}
	

	// 这个Update加不加没什么区别,但教程说是要加
	pDraw->Update();
}

标签:DPoint,pHatch,示例,代码,pDb,pDraw,pText,图元,pPloy
From: https://www.cnblogs.com/SpringBreath/p/16965835.html

相关文章

  • 【代码随想录】第8章 二叉树
    第8章二叉树1.二叉树理论基础二叉树种类(1)满二叉树(2)完全二叉树(3)二叉搜索树或称二叉查找树中序遍历是递增序列(4)平衡二叉搜索树二叉树的存储方式可以链式存储,也可以顺序存......
  • 排查github上有无代码泄露的两大不错的工具
    排查github上有无代码泄露的两大不错的工具,分别是:1)Gitrob(介绍文章:​​http://www.91ri.org/11928.html​​) 2)​​https://github.com/MiSecurity/x-patrol​​  ......
  • 十二、NHibernate之代码生成工具
    说明​这篇文章是完全转载自李永京的博客我看了下,也跟着实际操作了下,生成代码确实很方便,但是生成的代码却很难令人满意,不论从代码量还是从结构抑或复杂度来说,对我都是很大的......
  • 11、代码与配置分离
    1、 基于反射的工厂设计模式在前面的设计模式中,我们展示了简单的工厂模式,但是它有个弊端,就是如果我们要增加一个子类的话,我们必须修改我们的对象工厂(增加新类的判断)而通过......
  • 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素
    tag:#二分#循环不变量leetcode地址:704.二分查找代码:functionsearch(nums:number[],target:number):number{ letleft=0,right=nums.length-1 //我们......
  • 文件上传后端 随堂代码1208
    packageservlet;importorg.apache.commons.fileupload.FileItem;importorg.apache.commons.fileupload.FileItemFactory;importorg.apache.commons.fileupload.FileUplo......
  • 损失高达3亿美元|如何保护源代码安全?
    源代码是所有软件开发公司最宝贵的资产之一。因此,如果源代码被盗或泄露,可能会对企业的业务造成巨大损失。从长远来看,源代码盗窃可能会对企业的财务和声誉造成不可估量的损......
  • 代码随想录训练营第五十六天 | 动态规划
     今天是第五十六天,是距离问题的动态规划 583.两个字符串的删除操作 classSolution{publicintminDistance(Stringword1,Stringword2){int......
  • 代码随想录训练营第五十五天 | (动态规划)
     今天是第五十五天,依旧是动态规划问题的子序列问题 392.判断子序列 classSolution{publicbooleanisSubsequence(Strings,Stringt){intn......
  • slam14(1) v4_1 卡尔曼滤波3 使用例子和代码 ardunio mpu6050
     代码https://github.com/TKJElectronics/KalmanFilter   原理剖析原理2卡尔曼融合滤波https://zhuanlan.zhihu.com/p/36374943 关键点1他的偏置和噪声......