如何用excel画楼梯?
用插入饼图,如图:
把数据分成两列,日期和数据分开
全选
插入图表,选折线图
补充:明白了,选柱状图,分类间距选为0,也就是去掉柱子之间的间隔
软件:
Office 2007
方法:
1、如果是楼梯的侧面图,可以全选文档---右键”设置单元格格式“将背景填充为白色,
2、之后,将单元格列宽缩小,之后选中两个单元格,填充黑色,向下,依次递增。
3、如果是正面楼梯图,可以将单元格列宽设置为16,行高30 ;之后右键”设置单元格格式“填充--填充效果---双色,颜色1为浅灰,颜色2为黑色,水平。
4、而后向下复制为单数。
5、之后,将双数行进行缩小,效果如图。
作者:Clyde Wang
链接:http://www.zhihu.com/question/29024987/answer/43915171
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
虽然这和BIM好像没什么关系,但是还是简单回答一下吧,本人倒是做过几个CAD,Excel和word开发的项目,也不敢说多在行,但基本原理还是懂一些的,由于非计算机专业出身,所以语言不专业请见谅。上正文。
(对于本解答之中不甚理解之处,或是程序代码运行错误可以私信本人,本人将给与力所能及的帮助。)
===============================================================
其实做这个事情方法有三种:在Excel VBA上调用CAD,在CAD VBA IDE上调用Excel,在自己的平台上调用两者。不过但本质还是一样的,就是运用其他软件提供给你的接口把你想实现的过程接进去就可以了。
下面的一些图解和代码选自原来写的些论文,和您提出的问题可能没直接关系,但可以根据这些实例进行类比,也可以实现您需要的过程。
1 如何获取程序的进程
1.1 添加引用
这一步是多平台交互的基础,没有捕捉到目标平台的进程怎么能在目标平台上操作呢?所以为了实现我们的绘图操作或是数据读取,我们首先要捕捉当前的CAD进程或者Excel进程。这里我采用的是COM程序集的方法,虽然现在的CAD也支持.net的开发模式了,但...(好吧,我不会调用.net开发CAD)...
打开一个VB的集成开发环境(VB6.0,VisualStudio,CAD VBA IDE 或者 Excel VBA)这儿以Excel VBA作为开发环境为例。
在Excel的[工具]中单击[宏]选项,在子菜单中单击[VisualBasic编辑器]即可打开VB编辑器,单击[工具]选项中的[引用]打开以下对话框,将上面所述的两个组件勾选便成功添加了对CAD的引用。
<img data-rawheight="334" data-rawwidth="437" src="https://pic4.zhimg.com/3804d8983f280519426e03bba673cabf_b.jpg" class="origin_image zh-lightbox-thumb" width="437" data-original="https://pic4.zhimg.com/3804d8983f280519426e03bba673cabf_r.jpg">图1 添加工程引用图1 添加工程引用
引用了以上的两个COM组件后,我们就可以开始调用CAD的一些对象和命令了。
1.2 获取COM对象
AutoCAD在COM组件中的架构如下图所示,要想在CAD的模型空间中进行操作则必须先获取CAD应用和模型空间所依附的文档。
<img data-rawheight="213" data-rawwidth="720" src="https://pic1.zhimg.com/635dacf8438925566c4b84958dbf163c_b.jpg" class="origin_image zh-lightbox-thumb" width="720" data-original="https://pic1.zhimg.com/635dacf8438925566c4b84958dbf163c_r.jpg">图2 CAD的结构图2 CAD的结构
具体实现获取模型空间的代码如下:
首先定义变量:
Dim myCADapp As AcadApplication
Dim myCADdoc As AcadDocument
Dim space As AcadModelSpace
在过程中输入以下代码即可得到AutoCAD进程:
On Error Resume Next
'如果当前有CAD正在运行,则捕捉当前程序进程
Set myCADapp = GetObject(, "AutoCAD.Application")
'如果当前CAD未运行,则创建一个CAD的程序进程
If Err.Number > 0 Then
Err.Clear
Set myCADapp = CreateObject("AutoCAD.Application")
'此时创建的CAD进程可见性为[假],需将其改为[真]
myCADapp.Visible = True
End If
myCADdoc = myCADapp.ActiveDocument '获取当前活动文档
space = myCADdoc.ModelSpace '获取该文档的模型空间
获取了模型空间,我们就可以对模型空间里面的图元进行一些操作了。
2. CAD自动化绘图的基本原理
2.1 利用代码控制CAD的基本原理
如果我们打开对象管理器,我们会发现其实CAD提供给我们的所有的类、接口和他们派生的一些方法,函数在结构上和CAD的交互界面设计的结构是一个样的,也就是说,比如,UI里一个文档有好多图层,你就可以在AcadDocument里面找到AcadLayers这个对图层进行管理的类;同样你在模型空间里面可以添加各种图元,你就可以利用AcadModelSpace派生的各种Add***函数来添加图元。本质来说,在你不需要一些智能算法辅助的情况下,其实我们的程序无非是把我们手工过程等效成了一个自动化的流程,其实也没啥区别,只是人家计算机处理的比我们手工的要快多了。
<img data-rawheight="173" data-rawwidth="645" src="https://pic2.zhimg.com/b4d6bb6d0b3dd7df5df58836d2121c19_b.jpg" class="origin_image zh-lightbox-thumb" width="645" data-original="https://pic2.zhimg.com/b4d6bb6d0b3dd7df5df58836d2121c19_r.jpg">图3 CAD代替人工实现自动化的基本原理图3 CAD代替人工实现自动化的基本原理
2.2 向模型空间添加一个图元
理解了这个,我们就可以尝试去向模型空间中添加一条线了。
AutoCAD的界面操作中,用户需要指定两点,才能生成一条直线;同样对于外部程序,想在AutoCAD中生成一条直线,除了调用生成直线的命令外,还应给予必要的参数(对于直线,就是两个端点),实例如下:
Public Sub AddLine()
' 定义起点和终点并给其赋值
Dim StartPt(0 To 2) As Double, EndPt(0 To 2) As Double
StartPt(0) = 0: StartPt(1) = 4: StartPt(2) = 3
EndPt(0) = 2: EndPt(1) = 3: EndPt(2) = 1
' 定义直线,并赋值 #另:ThisDrawing是本地全局变量,代指本工程文件
Dim ln As AcadLine
Set ln = ThisDrawing.ModelSpace.AddLine(StartPt, EndPt)
End Sub
需要注明的是ThisDrawing这个关键词只在CAD VBA中才有用,其他的平台还是得按照第一节给的方法捕捉模型空间,并赋予某个变量才行。
如果不出意外,运行完该代码应该就能完成添加命令了。下面是我运行得到的结果。
<img data-rawheight="205" data-rawwidth="187" src="https://pic3.zhimg.com/bb4cd1c2902272ff11b28b5ceffd80ee_b.jpg" class="content_image" width="187">图4 代码运行结果图4 代码运行结果
2.3 所以说CAD实现绘图的自动化该怎么做
其实非常囧的就是,如果是一次性的任务,运用这种自动化程序的效率其实并不高,因为它需要将所有关键的点的坐标都表达出来,而且还时不时蹦出个bug...但没办法啊,程序就是这样的...比如要绘制一个倾斜的矩形,首先就是要把这个矩形的长宽及中心的表达式算出来,然后绘制一个直立的矩形,然后通过它派生的Rotate函数将它旋转。(说白了,和CAD界面操作基本上还是没啥区别的,而且...有些操作在界面上完成好像还更简单啊!!!=-=伤不起)
给一个画歪着的矩形的一个代码段吧:
主程序如下:
Public Sub AddRect()
Dim StartPt(0 To 1) As Double
Dim EndPt(0 To 1) As Double
StartPt(0) = 0: StartPt(1) = 0
EndPt(0) = 2000: EndPt(1) = 4000
Dim Rect As AcadLWPolyline
Set Rect = RectAngle(StartPt, EndPt, ThisDrawing.ModelSpace)
Dim Centre(0 To 2) As Double
Centre(0) = 0: Centre(1) = 0: Centre(2) = 0
'旋转多段线LWpln
Const Degree = 3.1415926 / 180
Rect.Rotate Centre, 30 * Degree
End Sub
自定义函数如下:
Public Function RectAngle(Point1() As Double, Point2() As Double,
_Space As AcadModelSpace) As AcadLWPolyline
Dim Pt(0 To 9) As Double
Pt(0) = Point1(0): Pt(1) = Point1(1)
Pt(2) = Point1(0): Pt(3) = Point2(1)
Pt(4) = Point2(0): Pt(5) = Point2(1)
Pt(6) = Point2(0): Pt(7) = Point1(1)
Pt(8) = Point1(0): Pt(9) = Point1(1)
Set RectAngle = Space.AddLightWeightPolyline(Pt)
End Function
运行出来大概就是这个样子了:
<img data-rawheight="574" data-rawwidth="594" src="https://pic1.zhimg.com/115d0f738b7cee3c09227187e0650cc4_b.jpg" class="origin_image zh-lightbox-thumb" width="594" data-original="https://pic1.zhimg.com/115d0f738b7cee3c09227187e0650cc4_r.jpg">图5 代码运行结果图5 代码运行结果
基本上简单一点的CAD的自动化也就是这样了,把所有的关键点的坐标求出来,写好每个图元的表达式,然后把参数接进去,运行。就完了...
3. Excel
忘了说Excel,其实Excel比CAD要知道的少许多,因为基本上如果你只将他做一个数据来源的话,记着一个sheet派生的cells属性就足够解决所有问题了。(毕竟是有了单元格里面的数据)
Excel的捕捉和CAD差不多的,引用的话就引用下图的这么几个文件就可以了。(哦,我用的是WPS,MS的Excel引用文件名和这个是不一样的~)
<img data-rawheight="428" data-rawwidth="592" src="https://pic2.zhimg.com/af6752017cb77503fbf440856c38a555_b.jpg" class="origin_image zh-lightbox-thumb" width="592" data-original="https://pic2.zhimg.com/af6752017cb77503fbf440856c38a555_r.jpg">引用之后和CAD差不多,用GetObject函数捕捉进程,其中的那个ProgID改成“Excel.Application”就可以。捕捉了进程后,捕捉你想用的Workbook和WorkSheet,引用之后和CAD差不多,用GetObject函数捕捉进程,其中的那个ProgID改成“Excel.Application”就可以。捕捉了进程后,捕捉你想用的Workbook和WorkSheet,使用Sheet派生的Cells(单元格)来获取数据。基本上和Excel的交互也就完了...
================================================================
回答时默认题主的设计是二维的所以没涉及三维图元的添加和修改,但CAD自动程序在三维图形上的设计能力也是可以接受的。比如下图是本人在一个平台开发时利用软件生成的实体。效果也还不错。
<img data-rawheight="313" data-rawwidth="472" src="https://pic1.zhimg.com/d4de96fa3e2866574c81925fc633f1e8_b.jpg" class="origin_image zh-lightbox-thumb" width="472" data-original="https://pic1.zhimg.com/d4de96fa3e2866574c81925fc633f1e8_r.jpg">但是经过开发CAD后,基于对CAD的天生缺陷的理解,我非常支持题主多去了解BIM,并不是说三维的就一定好,而是BIM从软件平台上来说,已经比CAD要高许多了。现在我也无心在去做什么CAD开发了,原因也非常简单,但是经过开发CAD后,基于对CAD的天生缺陷的理解,我非常支持题主多去了解BIM,并不是说三维的就一定好,而是BIM从软件平台上来说,已经比CAD要高许多了。现在我也无心在去做什么CAD开发了,原因也非常简单,当我想做的事情其实别人早就做完了,或者就算别人没做或者没做好,我也能在他通过的平台上通过了了百句的代码完成我的目标,而非像现在拼了老命写了上万句还只能实现些基础的功能,更可悲的是还增加了很多人为的限制。有时候我在想,牛顿的话也是至理了:
如果说我看得比别人更远些,那是因为我站在巨人的肩膀上。
祝在BIM的路上共进!
Ps:
如果觉得我说的太啰嗦当然也可以参考这篇:
龙晓林,王国顺.使用VB应用程序调用AutoCAD和Excel软件的方法[J].武汉理工大学学报(信息与管理工程版),2001,23(4).
以及这两本书
曾洪飞,卢择临,张帆.AutoCAD VBA&http://VB.Net开发基础与实例教程[M].北京:中国电力出版社,2008.
佟士懋,邢芳芳等.AutoCAD ActiveX/VBA二次开发技术基础及应用实例[M].北京:国防工业出版社,2006(4).
要画成什么效果呢,如果可以的话可以用CAD画,简单也便捷,用EXCEL画楼梯不理解为什么这样做呢
但是也可以画好CAD之后再链接过去呢
参考资料:http://www.zhihu.com/question/29024987
请问excel如何单独调整一个单元格的长度,和高度
对该区域进行单元格合并。3、合并后即可实现与其他单元格不同的高度和宽度的样式显示了。二、插入文本框:1、首先点击工具栏中的“插入”选项,并选择其中的“文本框”插入一个“横向文本框”。2、然后在需要的位置拖动鼠标光标,画出一个需要的高度和宽度的文本框,该文本框可以自行调整高度和宽度。
怎么在Excel中画斜线的具体步骤是什么?
但每个人的Excel使用习惯可能略有不同,对于复杂的需求,可能需要寻求专业人士的指导。希望这些信息能帮助你顺利地在Excel中绘制出想要的斜线,提升你的工作效率。这就是关于在Excel中绘制斜线的详尽指南,希望它能为你的工作带来灵感和便利!现在就动手尝试,让你的Excel技能再上一层楼吧!
word ,excel ,powerpoint各有什么功能
word主要用于制作文字文件,内容必须详尽,比如一个单位的文件、通知,介绍、信函等等。excel主要用于制作表格,让统计数据列表表示,比如通讯录、销售表、统计表、财务报表等等。可辅以图来表示以达到更直观的效果。powerpoint多用于制作幻灯片、演示稿,用于汇报、讲话等等,一般只列要点、提纲等。比如讲义、...
excel表格里面怎么插入图画并置于最底层
视图---工具---勾选“绘图”。选中图片,点“绘图”右边的三角,叠放次序---置于底层。插入的图片要盖住表格的文字,所谓“置于底层”,是指几个图片的关系。
excelr如何画格子
如果打不到1楼说的边框,你可以先做:视图——工具——格式——在填充颜色旁就有边框。你还可以做:选中你要画格子的区域——右键——设置单元格格式——边框——选中内边框和外边框——确定。
如何用excel表做曲线图
方法 1,打开Excel,框选将要生成图表的数据。2,在工具栏中选择“插入”——“图表”。3,这时,选择图表类型,如三维簇状柱形图,并点击“下一步”。4,这时将叫你选择图表源数据,由于我们第一步已经选择了,这时直接点击“下一步”。5,这时输入图表标题和各轴所代表的数据含义(默认为没有)。
怎么用excel画人物肖像怎么用excel画人物肖像
这个需要考虑逻辑能力 比如单元格有行列宽度,楼主可以将单元格的行列设置的很小,最后变成一个小格子 然后可以设置单元格内底色,就跟十字绣有点类似的,不过应该挺累的 另外就是菜单有插入-形状,里面有线条什么,可以看看是否能满足作画的需求了 ...
在Excel表格中如何绘制出柱状图来?
由于楼主没有给出具体的数据,以奖学金为例,Ctrl+A选中数据,按下快捷键Alt+F1或F11,一键生成簇状图,具体请看下图:接着插入形状,点击插入,形状,选择圆柱体,拖动鼠标画出形状,如下图所示:然后,选择插入到表格的圆柱体,复制,再选中图表里的条形图,粘贴即可,簇状柱形图完成。如下图所示...
关于用EXCEL表格里数据画图问题(需要只显示部分数据标记)
再把系列1的数据点格式设为无就可以了.见附图 回补充: 你把数据删除了,无法保证曲线的平滑度,用我的方法可以避免.至于系列,不过是多了一个辅助系列,在图例中,点那个辅助系列的图例,右键,清除,可以清除单一图例,完全可以隐藏.活学活用,没有做不到,只有想不到.子易空间站 - Excel培训专家 ...
如何快速有效地提高 Excel 技能水平
为了偷懒和提高财务模型的健壮性,将上面的各类索引函数及数组函数用到极致,于是实现自动配平以及检查。 三、高阶工具 Excel中有许多高阶工具也能大幅提高效率和美观。首先是图表绘制工具,因为作为视觉动物的人类越来越需要利用图表来理解和表达。在文章(RIO是如何席卷大江南北的? - 数据冰山 - 知乎专栏)中,为了表达...
台府陈香: 用插入饼图,如图:
献县15182697362: excel中怎么使用XY散点图绘制阶梯图 - ?
台府陈香: 1、在B列输入19、18、17、……、2、1 2、选择散点图,以B列为纵坐标 3、出现图形后,调整X、Y轴的格式,注意将Y轴翻转 基本就这样了……
献县15182697362: Excel中绘制图表时阶梯线怎么做? - ?
台府陈香: 1. 添加辅助列:X轴误差线——后一日期减去前一日期.最后一个为1.Y轴误差线——后一金额减去前一金额.第一个为本身值. 2. 选中表格的数据区域——点击插入——推荐的图表. 3. 所有图表——散点图. 4. 点击图表工具——设计——添...
献县15182697362: 怎么用excel制作柱状阶梯图 - ?
台府陈香: 设置柱状图数据系列格式,将间隙设为0
献县15182697362: 如何用excel绘制阶梯曲线 - ?
台府陈香: 在每个点的后面再增加一个点(水平),然后绘制折线即可.
献县15182697362: excel2013生成阶梯图 - ?
台府陈香: 梯形图是散点图,另外一条虚线是折线图 参照附件
献县15182697362: 请问excel 如何绘制梯形单元格,谢谢. - ?
台府陈香: 将单元格按照你要求的阶梯形状进行合并.
献县15182697362: 天正建筑标注快捷键 - 天正建筑文字标注快捷键 ?
台府陈香: 1. 天正建筑文字标注快捷键在天正左侧的菜单中点击轴网柱子--标注轴网.在图形中... 2. 天正建筑如何一键标注如果是立面或剖面图,可以用天正菜单符号标注——标高标...
献县15182697362: 天正标高标注快捷键 - 天正标注快捷键命令大全 ?
台府陈香: 天正标注快捷键命令大全1.在命令行打开标注样式管理器(快捷键:d)2.点击修改.3.... SWDX 套内面积 TNMJ 攒尖屋顶 ZJWD4、 楼梯其他电 梯 DT 多跑楼梯 DPLT 连接...
献县15182697362: 怎么画阶梯图,如下,最好用office画 - ?
台府陈香: 这个用CDR挺好画的,很简单的就画下线打几个字就可以了