Recent Posts

最近,遇到一个新概念:应变渗透(Strain Penetration)。名字听起来很高深的样子,同时发现知乎上也有人在问这个概念,于是通过查阅文献给自己科普了一下。

原理简述

假设一根钢筋充分锚固于混凝土中(这里充分锚固一般指满足规范的锚固长度),当有一个非常大的拉力作用于钢筋端头并使钢筋屈服,很明显拉力是通过钢筋逐渐传递到混凝土中去的,沿着钢筋的长度方向由外到内钢筋的拉应力逐渐减小,混凝土的粘接力整体上逐渐增加,直到某一点钢筋拉应力为零时,可以认为完成了拉力的传递。在拉力传递的过程中,钢筋的应变和混凝土的应变均是逐渐变化的,因此形象地称之为应变渗透(Strain Penetration)

继续阅读

前段时间总结过一次Revit二次开发的调试方法,实际用的过程中还是觉得不够方便。只到最近发现了超方便的开发模板——Revit 2017 Add-In Template Set

这是一款俄罗斯朋友开发的Revit 2017 插件开发模板,针对Visual Studio 2015,开源于Github。使用这个模板,可以一键解决引用位置自动匹配、启动Revit或使用Addin Manager免启动调试等问题。具体请看作者的readme.md吧。 内容主要包括:

继续阅读

有些时候(比如在绘制专利示意图时),需要将三维的CAD模型投影为二维,以方便插入word文档。AutoCAD中自带的FLATSHOT 多数情况下是可以满足我们的需求的,但当三维模型从Revit转过来时,FLATSHOT命令可能会不起作用,那这时怎么办呢?

没关系,AutoCAD还提供了另外一种更通用的方法:将三维(3D)模型打印成DXB文件。只是这种方法有点繁琐罢了,具体记录如下:

继续阅读

最近遇到一个乱码的问题,在用SQLite Expert打开SQLite数据库时,如果记录中有中文,通常显示乱码,而偶又很想知道这个结乱码的是什么。于是就想到用python读取这些数据是否能显示正常呢?用以下代码进行了测试:

# -*- coding: UTF-8 –*-
import sqlite3

conn=sqlite3.connect('e:\test.db')
with conn:
    curs=conn.cursor()    
    curs.execute("XXX")#XXX为SQL查询语句
    datas=curs.fetchall()
    fout=file('dbout.txt','w')
    for data in datas:
        print data[0],data[1],data[2],data[3]
        fout.write("%s\t%s\t%s\t%s\n" % (str(data[0]),str(data[1]),str(data[2]),str(data[3])))
    fout.close()

继续阅读

Revit模型可以说是“一切皆族,一切皆有参数”。今天就说说Revit中的参数。 ####参数的种类 Revit中项目(即Project)可以看作是一个特殊的族(即Family),项目中可载入别的族文件,族文件还可以嵌套另一个族,以此类推。相应的,Revit中的参数在项目层级可分为项目参数和共享参数两类;在族层级也可分为族参数和共享参数两类。族层级的族参数类似于项目参数,是依附于族而特有的参数。 另一方面,族又可分为多种不同的族实例,所以根据参数的作用范围不同,上述两类参数均又可分为类型参数和实例参数。类型参数只在类型中可见,实例参数只在族实例中可见。

继续阅读