CAD创建不规则形状视口

选择CAD模型空间中多段线,在指定的布局中创建视口,方法如下:

 1         /// <summary>
 2         /// 创建视口
 3         /// </summary>
 4         /// <param name="roundLine">模型空间多段线</param>
 5         /// <param name="curentLayout">当前布局名称</param>
 6         /// <param name="insertPoint">布局空间视口插入点</param>
 7         /// <param name="scale">缩放比例</param>
 8         private void MakeViewport(Polyline roundLine, string curentLayout, Point3d insertPoint, double scale)
 9         {
10             Database db = HostApplicationServices.WorkingDatabase;
11             using (Transaction tran = db.TransactionManager.StartTransaction())
12             {
13                 BlockTable bt = tran.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;
14                 BlockTableRecord btr = tran.GetObject(bt[BlockTableRecord.PaperSpace], OpenMode.ForWrite) as BlockTableRecord;
15
16                 Polyline bound =  roundLine.Clone() as Polyline;
17                 bound.Closed = true;
18                 Point3d maxPoint = bound.GeometricExtents.MaxPoint;
19                 Point3d minPoint = bound.GeometricExtents.MinPoint;
20                 Point3d centerPoint = new Point3d((maxPoint.X + minPoint.X) / 2, (maxPoint.Y + minPoint.Y) / 2, 0);
21                 bound.TransformBy(Matrix3d.Scaling(scale, centerPoint));
22                 bound.TransformBy(Matrix3d.Displacement(centerPoint.GetVectorTo(insertPoint)));
23                 btr.AppendEntity(bound);
24                 tran.AddNewlyCreatedDBObject(bound, true);
25
26                 Viewport vp = new Viewport();
27                 btr.AppendEntity(vp);
28                 tran.AddNewlyCreatedDBObject(vp, true);
29                 vp.NonRectClipEntityId = bound.Id;
30
31                 vp.CenterPoint = insertPoint;  //视口插入位置
32                 vp.ViewCenter = new Point2d(centerPoint.X, centerPoint.Y); //模型空间中心位置
33
34                 vp.ViewHeight = maxPoint.Y - minPoint.Y; //模型空间高度
35                 vp.Height = scale * vp.ViewHeight;  //视口高度
36                 vp.NonRectClipOn = true;
37                 vp.Locked = true;
38                 vp.On = true;
39                 tran.Commit();
40             }
41         }
时间: 2024-08-10 17:01:04

CAD创建不规则形状视口的相关文章

使用CSS 3创建不规则图形 文字围绕

前言 CSS 创建复杂图形的技术即将会被广泛支持,并且应用到实际项目中.本篇文章的目的是为大家开启它的冰山一角.我希望这篇文章能让你对不规则图形有一个初步的了解. 现在,我们已经可以使用CSS 3 常见不规则复杂图形了(点击链接查看),如下图所示: 使用CSS创建的图形,无法内置文字或实现文字环绕效果.因此,如何实现不规则图形和文字复杂布局也成为了一个热议话题. 今天我们就来介绍一下如何实现这个效果.文章中我们将阐述如何使用 CSS创建不规则图形,实现不规则的文本布局.学会如何创建不规则图形之后

C#创建不规则窗体的3种方式详解

现在,C#创建不规则窗体不是一件难事,下面总结一下: 一.自定义窗体 一般为规则的图形,如圆.椭圆等. 做法:重写Form1_Paint事件(Form1是窗体的名字),最简单的一种情况如下: System.Drawing.Drawing2D.GraphicsPath shape = new System.Drawing.Drawing2D.GraphicsPath(); shape.AddEllipse(0,0,this.Height, this.Width); this.Region = ne

NGUI不规则形状点击

PolygonCollider2D 我们的地图是这样的不规则形状,最开始简单用Box Collider处理点击,但是点击地图边缘时命中率很差.今天查到Unity有多边形Collider可以支持不规则形状,PolygonCollider2D. 给地图[变异的开端]加上PolygonCollider2D,然后根据地图形状编辑Collider多边形,编辑好之后下图这样子. 点击实现 需要注意的是NGUI中检测射线碰撞用的是Physics.RayCast,不支持2D Collider,也就是无法响应to

如何查询CAD创建时间和更新时间

我们在日常的CAD相关工作中,常常会需要接触.绘制.修改.查询大量的CAD图纸.有时候,为了了解一张CAD图纸素材的详细信息,去查询CAD图纸创建时间和更新时间是我们非常需要的方法.但是我们该如何去了解创建时间和更新时间呢?小编今天就给大家简单的演示一下,如何快速查询CAD创建时间和更新时间的.具体演示步骤如下:步骤一:先打开一张CAD图纸素材 我们先运行迅捷CAD编辑器专业版软件:然后操作: 1.点击菜单栏"文件-打开"命令选项,打开一张需要查询创建时间.更新时间的CAD图纸. 2.

C# 创建不规则窗体

要求: 1 使得窗体或按钮的形状跟图片一致. 效果图: 2 代码: 参考文档:  修改或添加部分,已经用" 此处为添加部分"标注, 缺少则不能达到效果 http://wenku.baidu.com/view/9bdf813f767f5acfa0c7cd3e.html using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Dr

CAD创建和组织数据库

用户可以使用 new命令创建 一个数据库,使用 delete命令删除 一个数据库. 可以使用下面的函数读取一个图形文件: Mcad::ErrorStatus McDbDatabase::readDwgFile(LPCTSTR filename); 注意:一定不要删除由Mx::mcdbHostApplicationServices()->workingDatabase()函数返回的数据库,因为它返回的是当前工作的数据库. 原文地址:https://www.cnblogs.com/yzy0224/p

Duiib 创建不规则窗口(转载)

方法一: 转载:http://blog.csdn.net/chenlycly/article/details/46447297 转载:http://blog.csdn.net/harvic880925/article/details/8925650 方法二: 转载:http://blog.csdn.net/xdrt81y/article/details/22063479

css3-radio不规则形状动画

利用质数做随机图形 参考网站 http://2016.uxlondon.com/speakers .list { margin: 10px; display: inline-block; width: 168px; height: 168px; border: 4px solid #00C7E9; border-radius: 87% 91% 98% 100%; -webkit-transition: all .35s; transition: all .35s; overflow: hidde

不规则形状的Mask动画

效果 源码 https://github.com/YouXianMing/Animations // // MaskShapeViewController.m // Animations // // Created by YouXianMing on 16/7/10. // Copyright © 2016年 YouXianMing. All rights reserved. // #import "MaskShapeViewController.h" #import "Ap