CAD创建不规则形状视口
选择CAD模型空间中多段线,在指定的布局中创建视口,方法如下:
/// <summary>
/// 创建视口
/// </summary>
/// <param name="roundLine">模型空间多段线</param>
/// <param name="curentLayout">当前布局名称</param>
/// <param name="insertPoint">布局空间视口插入点</param>
/// <param name="scale">缩放比例</param>
private void MakeViewport(Polyline roundLine, string curentLayout, Point3d insertPoint, double scale)
{
Database db = HostApplicationServices.WorkingDatabase;
using (Transaction tran = db.TransactionManager.StartTransaction())
{
BlockTable bt = tran.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;
BlockTableRecord btr = tran.GetObject(bt[BlockTableRecord.PaperSpace], OpenMode.ForWrite) as BlockTableRecord; Polyline bound = roundLine.Clone() as Polyline;
bound.Closed = true;
Point3d maxPoint = bound.GeometricExtents.MaxPoint;
Point3d minPoint = bound.GeometricExtents.MinPoint;
Point3d centerPoint = new Point3d((maxPoint.X + minPoint.X) / , (maxPoint.Y + minPoint.Y) / , );
bound.TransformBy(Matrix3d.Scaling(scale, centerPoint));
bound.TransformBy(Matrix3d.Displacement(centerPoint.GetVectorTo(insertPoint)));
btr.AppendEntity(bound);
tran.AddNewlyCreatedDBObject(bound, true); Viewport vp = new Viewport();
btr.AppendEntity(vp);
tran.AddNewlyCreatedDBObject(vp, true);
vp.NonRectClipEntityId = bound.Id; vp.CenterPoint = insertPoint; //视口插入位置
vp.ViewCenter = new Point2d(centerPoint.X, centerPoint.Y); //模型空间中心位置 vp.ViewHeight = maxPoint.Y - minPoint.Y; //模型空间高度
vp.Height = scale * vp.ViewHeight; //视口高度
vp.NonRectClipOn = true;
vp.Locked = true;
vp.On = true;
tran.Commit();
}
}
CAD创建不规则形状视口的更多相关文章
- 使用Win32 API创建不规则形状&带透明色的窗口
前一阵突然想起了9月份电面某公司实习时的二面题,大概就是说怎么用Win32 API实现一个透明的窗口,估计当时我的脑残答案肯定让面试官哭笑不得吧.所以本人决定好好研究下这个问题.经过一下午的摸索,基本 ...
- 使用CSS 3创建不规则图形 文字围绕
前言 CSS 创建复杂图形的技术即将会被广泛支持,并且应用到实际项目中.本篇文章的目的是为大家开启它的冰山一角.我希望这篇文章能让你对不规则图形有一个初步的了解. 现在,我们已经可以使用CSS 3 常 ...
- 使用CSS 3创建不规则图形
前言 CSS 创建复杂图形的技术即将会被广泛支持,并且应用到实际项目中.本篇文章的目的是为大家开启它的冰山一角.我希望这篇文章能让你对不规则图形有一个初步的了解. 现在,我们已经可以使用CSS 3 常 ...
- cocos2d-x 不规则形状按钮的点击判定
cocos2d-x 不规则形状按钮的点击判定 原理: 1.OpeGL ES提供了glReadPixels[^footnote]函数,来获取当前framebuffer上的像素数据 2.cocos2d-x ...
- 不规则形状的Mask动画
不规则形状的Mask动画 效果 源码 https://github.com/YouXianMing/Animations // // MaskShapeViewController.m // Anim ...
- html5 svg实现不规则形状图片触发事件
html5 svg实现不规则形状图片触发事件<pre><!DOCTYPE html><html lang="en"> <head> ...
- 不规则形状的Ifc构件顶点坐标获取
不规则形状的Ifc构件顶点坐标获取 今天有人问我,ifc构件的顶点坐标怎么获取,自己前年的时候写过类似的程序,但有点记不清了,最近一直用C++解析ifc,慎重起见,还是重新再写一次,java版本的获取 ...
- Unity 制作不规则形状button
在游戏开发中,我们有时需要制作不规则形状的按键. Unity3d中使用UGUI的Button控件只能实现规则的长方形按钮.而通过给Button的Image组件添加对应的贴图(sprite)我们可以实现 ...
- 利用C#轻松创建不规则窗体
1.准备一个不规则的位图 可以使用任意一种你喜欢的作图工具,制作一个有形状的位图,背景使用一种其他的颜色.这个颜色在编程中用得着,所以最好使用一种容易记忆的颜色.如黄色,文件名为bk.bmp 2.创建 ...
随机推荐
- sqlprofiler 常用调试方法
- 网易云课堂_C++程序设计入门(上)_第5单元:万类霜天竞自由 – 对象和类的更多内容_第5单元作业【4】 - 在线编程(难度:难)
第5单元作业[4] - 在线编程(难度:难) 查看帮助 返回 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系 ...
- Duanxx的STM32学习:STM32下载方式选择
前几天熟悉了STM32的启动方式.主要由Boot0和Boot1设置 如今须要解决的就是STM32的下载的问题. 一開始的时候,我选择的是SWD下载.这样的下载方式须要Boot0=0.Boot1=0.占 ...
- android 实现静默安装、卸载
方法1:[使用调用接口方法,由于安装卸载应用程序的部分API是隐藏的,所以必须下载Android系统源码,在源码下开发并编译之后使用MM命令编译生成APK文件] import java.io.File ...
- jQuery Custom Selector JQuery自定义选择器
什么是JQuery的选择器呢,详见JQuery中的Selector: http://docs.jquery.com/Selectors 比如 $("div:contains('John')& ...
- Mps与Mrp区别
MPS是完成品的计划表,描述一个特定的完成品的生产时间和生产数量.MPS是一个决定完成品生 产排程及可答应量(ATP)的程序.依据MPS,MRP得以计算在该完成品需求之下,所有组件,零件以 至原材 ...
- base64图片在各种浏览器的兼容性处理
IE浏览器目前最高的版本是v11,而微软放弃了IE,转向新的浏览器开发,并取名为Edge.base64图片在IE9及以后的图片均能显示没有问题,而Firefox, Chrome, Safari等非IE ...
- sql语句批量处理Batch
package Statement批量处理; import java.sql.Connection; import java.sql.DriverManager; import java.sql.St ...
- zookeeper_04:curator
定义 Curator是Netflix公司开源的一个Zookeeper客户端,与Zookeeper提供的原生客户端相比,Curator的抽象层次更高,简化了Zookeeper客户端的开发量. <d ...
- C++中内存分配详解
转载自51CTO.com http://developer.51cto.com/art/201107/276154.htm 我们都知道,内存基本上分为静态存储区.堆区和栈区三大部分 ...