论坛首页    职业区    学术与写作    工程技术区    软件区    资料区    商务合作区    社区办公室
 您好! 欢迎 登录 或 注册 最新帖子 邀请注册 活动聚焦 统计排行 社区服务 帮助
 
  • 帖子
  • 日志
  • 用户
  • 版块
  • 群组
帖子
  • 401492阅读
  • 666回复

[热点探讨]我对岩土工程专业的理解----悲喜二重天? [复制链接]

上一主题 下一主题
离线fanmingchan

发帖
402
土币
1
威望
2683
原创币
0
只看该作者 336楼 发表于: 2008-10-24
第三章    岩浆作用及岩浆岩
                    §1  概 念
一、    岩浆——上地幔或地壳深处,天然产出的成分以硅酸盐为主的高温溶融
            物质。   
      化学成分:    SiO2为主 Al2O3、Go、FeO¬¬¬  ……
              依SiO2多少分:
超基性<45%、基性45-52%、中性53-65% 酸性>65%
        富含挥发份:H2O、CO2、NH3、H2S
物理性质:T高(650°-1400℃)P大(几千大气压)粘稠流体
            基性—— T高、P小、稀
            酸性—— T小、P大、 稠
二. 岩浆作用——岩浆形成、运移、冷凝的全部过程。
        喷出作用
        侵入作用
                                         
  三、岩浆岩¬——
   
熔融岩浆冷凝后形成的岩石

§2    喷出作用与喷出岩
    一、岩浆活动与火山构造
(一)    喷出活动(火山活动、火山爆发)——岩浆形成,向上运移并喷出地表,
                在地表冷凝的全部过程。
      火山喷发是一种极为壮观而又令人生畏的自然现象,但由于喷发前征擦兆明显,有一定的地形标志,一般不会给人类生命带来大危害。现代火山活动,内陆不多,常见一些岛国、沿海地区。
        根据火山活动情况分:
  活火山active volcano——现代仍在活动或周期性活动。
                            美(圣海伦斯)意(维苏威、埃特纳)
  休眠火山dormant volcano ——人类史后喷发过,但长期以来静止。
                                                (五大莲池)
  死火山extinct volcano ——  人类史前喷发过,史后从未喷发的火山。
                                                  (江宁方山)
(二)    火山喷发类型
    裂隙式喷发——岩浆沉地表狭长的裂隙溢出。
                地史早期多。通常地球形成初期,地壳薄,此方式较多。
                现代洋脊附近,冰岛是洋脊在陆地上延伸通过的地方,有较多
                的裂隙式喷发。
    中心式喷发——岩浆沿火山通道上移从火山口喷出。
1.    猛烈式:突然喷发(酸性粘度大易发生)喷发开始时,火山突然爆炸,大量的气体、围岩、岩浆一齐喷出,危害大。1902年西印度群岛的培雷火山喷发,高4000米,山角下圣佩尔城倾刻间被摧毁,死亡达40000人。
2.    宁静式(夏威夷式):基性岩浆容易发生。
3.    递进式:猛烈——宁静
(三)    火山构造
火山锥:熔岩锥、集块锥、复合锥
火山口、火山通道及火山颈
二、    火山喷出物及喷出岩

(一)    喷出物:气体、液体、固体
1.  气体:在岩浆向上运移的过程中,遭受到上伏岩层的压力越来越小,这时,在深处高压下,溶于岩浆的挥发份,首先成为气体并沿岩层的孔隙、裂隙、逸出地表,且量浓度越来越大。成分主要为H2O>60%、 CO2 、 H2S、  SO2 、  NH3。
        喷发前,大量气体;喷发中,仍有大量气体随岩浆喷出;喷发后期,
          当岩浆停止喷发后,气体仍徐徐逸出。
2 .  固体(火山碎屑)




          火山弹  >50m m
              砾      2—50mm
              灰>      2mm(凝灰岩)
          火山渣    大小不一、多孔、渣状

3.  液体(熔岩)
火山喷发的主体。喷出地表后失去一些挥发份的岩浆称熔浆,熔浆冷凝后成岩称为熔岩。熔岩是熔浆流动过程中冷凝的,具各种形态(熔岩被、舌状熔岩流,绳索状溶岩,枕状熔岩,熔岩瀑布,均反映出流动痕迹。
地表熔岩可组成大面积高原,如印度的德高原,由玄武岩组成, 厚3000米,
面积100平方公里。

(二)    喷出岩(火山岩)
              ——由火山喷出物形成的岩石。



三、世界火山分布  现代世界上活火山500多座,主要分布:



     
我国台湾处于环太平洋带上,有火山十六座——活火山;
      黑龙江德都五大莲池,二百多年仍有喷发——休眠火山;
      南京江宁方山、六合桂子山、燕山期火山——死火山。

§3.侵入作用及侵入岩

一、    侵入作用——岩浆由地下深处向上运移,未达到地表而而在地下占
                    居一定空间并冷凝成岩的全部过程。
二、    侵入体产状:
              描述侵入体在地下的空间位置,按形态、大小、与围岩的关系等
              划分成:
1.    岩墙(岩脉):狭长板状侵入体。
            切割围岩层理,规模可大可小,是岩浆沿围岩裂隙挤入冷凝成
            岩,可根据切割地层判断形成的大致时代。
2.    岩床:板状侵入体。
            延展方向与围岩层理平行,顺层侵入,岩浆沿围岩的层间裂隙
            挤入冷凝成岩,常为基性岩浆。煤层中常见有岩床侵入。
3.    岩盆与岩盖:侵入体似盆状,中凹边凸延展方向与水平层理一致
            围岩为水平层理———岩盆
侵入体似盖状、蘑菇状、中凸边凹———岩盖。
常见中、酸性岩浆岩。
4、  岩基与岩株:

三、岩浆的演化
从岩浆侵入活动开始,即形成向上运移,直最后冷凝成岩结束,是一系列物理、化学性质的演化过程。在这个过程中,一方面岩浆挤入围岩向上运移,同时将热量传给围岩,本身温度降低,引起矿物的结晶。 

(一)    同化及混染作用
同化作用———岩浆侵入过程中,以本身的高温,溶化了围岩,将围岩改造
        成岩浆的一部分。故围岩被同化了。
同化作用在岩浆侵入中普遍存在,同化作用的强弱与侵入体的规模有关,与岩浆温度有关,同时与围岩性质有关。

侵入体与围岩接触,接触带附近常见有捕虏体,
捕虏体 ——  尚未完全同化的围岩。
混染作用 ——— 由于围岩熔入岩浆中,使岩浆成分发生了改变。故岩浆被
      混染了。因此侵入不同岩性的岩层使得岩浆成分发生不同的改变。
同化与混染作用是同一事物的两个方面,出现是相伴相随的,发生同化作用的同时也就发生了混染作用。

(二)    结晶分异作用
结晶分异作用——高温熔融的岩浆成分非常复杂,含有多种矿物成分,在其温度降低、冷凝的过程中,按矿物熔点高低、比重大小、先后结晶析出不同的矿物

当岩浆冷凝的速度缓慢,也就是说温度逐渐降低,结晶分异作用最彻底(矿物结晶程度好)。
通常,是一些熔点高、比重大的矿物首先结晶,随着岩浆冷却到适当温度的时候,又有相应的矿物折出。
美国岩石学家N.L.Bowen.用实验证实了上述的结晶分过程实验表明:在万分复杂的玄武岩浆温度逐渐降低的过程中,不同阶段结晶出的矿物分别是这样的:
图略

由于鲍温本人证实了这个反应系列,因此他认为,虽然岩浆岩可根据成分不同分为四大类,但原始岩浆只有一种,玄武岩浆,各种不同的岩浆岩是同一种岩浆结晶分异中不同阶段形成的。例如:超基性、基性、中性。但目前认为,结晶分异作用是存在的,玄武岩浆可以结晶分异出不同类岩浆碉,但并不是所有中性,酸性岩浆岩都是以这种方式形成的。
原始的岩浆应有四大种超基、中、酸,相应的岩浆可形成成分相应的岩浆岩。

§4    岩浆的起源

岩浆是熔融的液体(火山喷发)。岩浆是地下深处的向上运移的。源于深处,那么是不是说地下深处就存在一个范围很大的甚至于环绕整个地球的液体的岩浆层呢?回答是否定的。
我们知道,岩浆冷凝能形成岩浆岩,显然岩浆岩熔化后就是岩浆,实事上,岩浆就是地壳深处及上地幔顶部岩石熔化后形成的。下面我们先看看岩石熔融需要哪些条件:
              温度高 (地表压力下>800℃岩石开始熔化)
              压力低  ( 熔点低)
          最好有水加入  降低熔点,利于岩石熔化
只有符合了上述一定条件,才能发生熔化,形成岩浆。
同时,我们讲过,岩浆在冷凝时有结晶分异作用,岩石受热熔化过程中也有分熔现象。(受热后首先是熔点低的矿物先熔化,然后依次到熔点最高的矿物)。
受热——酸性岩浆——中性岩浆——基性岩浆。
因此同一种岩石在不同的温度条件下,可以形成不同的岩浆类型。这就是为什么岩浆有四大类。
    显然,岩石在一定条件下,熔成了不同类型的岩浆,因此在地球上,什么地方能保证这种条件,就有岩浆活动。








§5岩浆岩的特征及类型

一、    结构、构造特征
(一)结构———组成岩石的矿物颗粒本身的特点(结晶程度、形态、大小及颗粒之间相互关系)


  (二)构造——岩石中不同矿物集合体的分布与排列的特点。某一部分颗粒与
              其它部分颗粒之间的关系。
二、成分特征
      化学成分以硅酸盐为主,按SiO2含量分为四大类:
      超基性岩、基性岩、中性岩、酸性岩。(与岩浆分类一致)
                     


三 、岩石类型:    不同的化学成分岩石类型不同,且同种化学成分
                  形成环境不同则岩石类型不同。

      成
        分
形成环境    超基性    基性    中性    酸性
喷出岩    科马提岩    玄武岩    安山岩    流纹岩
浅成岩    苦橄玢岩    辉绿岩    闪长玢岩    花岗斑岩
深成岩    橄榄岩    辉长石    闪长岩    花岗岩
           
实验课: 常见岩浆岩的观察与鉴定
离线fanmingchan

发帖
402
土币
1
威望
2683
原创币
0
只看该作者 337楼 发表于: 2008-10-24
第三章    岩浆作用及岩浆岩
                    §1  概 念
一、    岩浆——上地幔或地壳深处,天然产出的成分以硅酸盐为主的高温溶融
            物质。   
      化学成分:    SiO2为主 Al2O3、Go、FeO¬¬¬  ……
              依SiO2多少分:
超基性<45%、基性45-52%、中性53-65% 酸性>65%
        富含挥发份:H2O、CO2、NH3、H2S
物理性质:T高(650°-1400℃)P大(几千大气压)粘稠流体
            基性—— T高、P小、稀
            酸性—— T小、P大、 稠
二. 岩浆作用——岩浆形成、运移、冷凝的全部过程。
        喷出作用
        侵入作用
                                         
  三、岩浆岩¬——
   
熔融岩浆冷凝后形成的岩石

§2    喷出作用与喷出岩
    一、岩浆活动与火山构造
(一)    喷出活动(火山活动、火山爆发)——岩浆形成,向上运移并喷出地表,
                在地表冷凝的全部过程。
      火山喷发是一种极为壮观而又令人生畏的自然现象,但由于喷发前征擦兆明显,有一定的地形标志,一般不会给人类生命带来大危害。现代火山活动,内陆不多,常见一些岛国、沿海地区。
        根据火山活动情况分:
  活火山active volcano——现代仍在活动或周期性活动。
                            美(圣海伦斯)意(维苏威、埃特纳)
  休眠火山dormant volcano ——人类史后喷发过,但长期以来静止。
                                                (五大莲池)
  死火山extinct volcano ——  人类史前喷发过,史后从未喷发的火山。
                                                  (江宁方山)
(二)    火山喷发类型
    裂隙式喷发——岩浆沉地表狭长的裂隙溢出。
                地史早期多。通常地球形成初期,地壳薄,此方式较多。
                现代洋脊附近,冰岛是洋脊在陆地上延伸通过的地方,有较多
                的裂隙式喷发。
    中心式喷发——岩浆沿火山通道上移从火山口喷出。
1.    猛烈式:突然喷发(酸性粘度大易发生)喷发开始时,火山突然爆炸,大量的气体、围岩、岩浆一齐喷出,危害大。1902年西印度群岛的培雷火山喷发,高4000米,山角下圣佩尔城倾刻间被摧毁,死亡达40000人。
2.    宁静式(夏威夷式):基性岩浆容易发生。
3.    递进式:猛烈——宁静
(三)    火山构造
火山锥:熔岩锥、集块锥、复合锥
火山口、火山通道及火山颈
二、    火山喷出物及喷出岩

(一)    喷出物:气体、液体、固体
1.  气体:在岩浆向上运移的过程中,遭受到上伏岩层的压力越来越小,这时,在深处高压下,溶于岩浆的挥发份,首先成为气体并沿岩层的孔隙、裂隙、逸出地表,且量浓度越来越大。成分主要为H2O>60%、 CO2 、 H2S、  SO2 、  NH3。
        喷发前,大量气体;喷发中,仍有大量气体随岩浆喷出;喷发后期,
          当岩浆停止喷发后,气体仍徐徐逸出。
2 .  固体(火山碎屑)




          火山弹  >50m m
              砾      2—50mm
              灰>      2mm(凝灰岩)
          火山渣    大小不一、多孔、渣状

3.  液体(熔岩)
火山喷发的主体。喷出地表后失去一些挥发份的岩浆称熔浆,熔浆冷凝后成岩称为熔岩。熔岩是熔浆流动过程中冷凝的,具各种形态(熔岩被、舌状熔岩流,绳索状溶岩,枕状熔岩,熔岩瀑布,均反映出流动痕迹。
地表熔岩可组成大面积高原,如印度的德高原,由玄武岩组成, 厚3000米,
面积100平方公里。

(二)    喷出岩(火山岩)
              ——由火山喷出物形成的岩石。



三、世界火山分布  现代世界上活火山500多座,主要分布:



     
我国台湾处于环太平洋带上,有火山十六座——活火山;
      黑龙江德都五大莲池,二百多年仍有喷发——休眠火山;
      南京江宁方山、六合桂子山、燕山期火山——死火山。

§3.侵入作用及侵入岩

一、    侵入作用——岩浆由地下深处向上运移,未达到地表而而在地下占
                    居一定空间并冷凝成岩的全部过程。
二、    侵入体产状:
              描述侵入体在地下的空间位置,按形态、大小、与围岩的关系等
              划分成:
1.    岩墙(岩脉):狭长板状侵入体。
            切割围岩层理,规模可大可小,是岩浆沿围岩裂隙挤入冷凝成
            岩,可根据切割地层判断形成的大致时代。
2.    岩床:板状侵入体。
            延展方向与围岩层理平行,顺层侵入,岩浆沿围岩的层间裂隙
            挤入冷凝成岩,常为基性岩浆。煤层中常见有岩床侵入。
3.    岩盆与岩盖:侵入体似盆状,中凹边凸延展方向与水平层理一致
            围岩为水平层理———岩盆
侵入体似盖状、蘑菇状、中凸边凹———岩盖。
常见中、酸性岩浆岩。
4、  岩基与岩株:

三、岩浆的演化
从岩浆侵入活动开始,即形成向上运移,直最后冷凝成岩结束,是一系列物理、化学性质的演化过程。在这个过程中,一方面岩浆挤入围岩向上运移,同时将热量传给围岩,本身温度降低,引起矿物的结晶。 

(一)    同化及混染作用
同化作用———岩浆侵入过程中,以本身的高温,溶化了围岩,将围岩改造
        成岩浆的一部分。故围岩被同化了。
同化作用在岩浆侵入中普遍存在,同化作用的强弱与侵入体的规模有关,与岩浆温度有关,同时与围岩性质有关。

侵入体与围岩接触,接触带附近常见有捕虏体,
捕虏体 ——  尚未完全同化的围岩。
混染作用 ——— 由于围岩熔入岩浆中,使岩浆成分发生了改变。故岩浆被
      混染了。因此侵入不同岩性的岩层使得岩浆成分发生不同的改变。
同化与混染作用是同一事物的两个方面,出现是相伴相随的,发生同化作用的同时也就发生了混染作用。

(二)    结晶分异作用
结晶分异作用——高温熔融的岩浆成分非常复杂,含有多种矿物成分,在其温度降低、冷凝的过程中,按矿物熔点高低、比重大小、先后结晶析出不同的矿物

当岩浆冷凝的速度缓慢,也就是说温度逐渐降低,结晶分异作用最彻底(矿物结晶程度好)。
通常,是一些熔点高、比重大的矿物首先结晶,随着岩浆冷却到适当温度的时候,又有相应的矿物折出。
美国岩石学家N.L.Bowen.用实验证实了上述的结晶分过程实验表明:在万分复杂的玄武岩浆温度逐渐降低的过程中,不同阶段结晶出的矿物分别是这样的:
图略

由于鲍温本人证实了这个反应系列,因此他认为,虽然岩浆岩可根据成分不同分为四大类,但原始岩浆只有一种,玄武岩浆,各种不同的岩浆岩是同一种岩浆结晶分异中不同阶段形成的。例如:超基性、基性、中性。但目前认为,结晶分异作用是存在的,玄武岩浆可以结晶分异出不同类岩浆碉,但并不是所有中性,酸性岩浆岩都是以这种方式形成的。
原始的岩浆应有四大种超基、中、酸,相应的岩浆可形成成分相应的岩浆岩。

§4    岩浆的起源

岩浆是熔融的液体(火山喷发)。岩浆是地下深处的向上运移的。源于深处,那么是不是说地下深处就存在一个范围很大的甚至于环绕整个地球的液体的岩浆层呢?回答是否定的。
我们知道,岩浆冷凝能形成岩浆岩,显然岩浆岩熔化后就是岩浆,实事上,岩浆就是地壳深处及上地幔顶部岩石熔化后形成的。下面我们先看看岩石熔融需要哪些条件:
              温度高 (地表压力下>800℃岩石开始熔化)
              压力低  ( 熔点低)
          最好有水加入  降低熔点,利于岩石熔化
只有符合了上述一定条件,才能发生熔化,形成岩浆。
同时,我们讲过,岩浆在冷凝时有结晶分异作用,岩石受热熔化过程中也有分熔现象。(受热后首先是熔点低的矿物先熔化,然后依次到熔点最高的矿物)。
受热——酸性岩浆——中性岩浆——基性岩浆。
因此同一种岩石在不同的温度条件下,可以形成不同的岩浆类型。这就是为什么岩浆有四大类。
    显然,岩石在一定条件下,熔成了不同类型的岩浆,因此在地球上,什么地方能保证这种条件,就有岩浆活动。








§5岩浆岩的特征及类型

一、    结构、构造特征
(一)结构———组成岩石的矿物颗粒本身的特点(结晶程度、形态、大小及颗粒之间相互关系)


  (二)构造——岩石中不同矿物集合体的分布与排列的特点。某一部分颗粒与
              其它部分颗粒之间的关系。
二、成分特征
      化学成分以硅酸盐为主,按SiO2含量分为四大类:
      超基性岩、基性岩、中性岩、酸性岩。(与岩浆分类一致)
                     


三 、岩石类型:    不同的化学成分岩石类型不同,且同种化学成分
                  形成环境不同则岩石类型不同。

      成
        分
形成环境    超基性    基性    中性    酸性
喷出岩    科马提岩    玄武岩    安山岩    流纹岩
浅成岩    苦橄玢岩    辉绿岩    闪长玢岩    花岗斑岩
深成岩    橄榄岩    辉长石    闪长岩    花岗岩
           
实验课: 常见岩浆岩的观察与鉴定
离线fanmingchan

发帖
402
土币
1
威望
2683
原创币
0
只看该作者 338楼 发表于: 2008-10-24
第四章    外动力地质作用与沉积岩

§1.外动力地质作用

一、    定义:大气、水和生物在太阳辐射下能、重力能和明引力能的影响下
  产生的动,对地表所进行的各种作用。
结果:减小地表起伏、夷平高差。
二、    外动力地质作用的类型
(一)    风化作用
    岩石受外力作用后发生机械崩解和化学分解,破坏产物基本残留原地,使坚硬的岩石变为松散的碎屑及土壤。(化学风化、物理风化、生物风化)
(二)  剥蚀作用
岩石受外力作用而破坏,破坏产物同时被搬走。(侵蚀、刨蚀、潜蚀…….)
(三)  搬运作用
  将风化、剥蚀物搬运到它处。(机械搬运、化学搬运、生物搬运)
(四) 沉积作用
      搬运物在条件适宜的地方发生沉积,。条件适宜是指搬运能力减弱,如流水搬运泥砂时,流速减小时,动能减少,过载而沉积。化学沉积受化学反应规律支配,过饱和沉积胶体凝胶作用。CACO3+CO2+H2O      Ca[HCO3]2
(五) 固结成岩作用
松散沉积物(任何动力搬来的机械的或化学的)转变为坚硬的沉积岩。
沉积物是松散的,颗粒之间富含孔隙和水分,颗粒之间相互无坚密的连接力,

从沉积物    沉积岩经历以不几个阶段:
1.    压固作用
    上覆沉积物的重量作用于下部使其压实
                                (孔隙减少,水分排除,体积减小)。
2.    胶结作用(只发生在碎屑沉积物中)
经压固后的沉积物仍有些孔隙(粒间),由胶结物质充真到孔隙中,使沉
积颗粒胶结在一起变坚硬。
胶结物主要是化学沉淀物:硅质 (SiO2);                 
                        铁质 (Fe2O3.nH2O);                 
                        钙质 (CaCO3);               
                        (粘土矿物)               
  不同的化学成分的胶结物坚硬程度不同:硅质铁质 〉钙质泥质
胶结类型可分为:接触式胶结,孔隙式胶结,基底式胶结。
              图略
  胶结类型不同坚硬程度不同: 接触式胶结〉孔隙式胶结〉基底式胶结

3.    重结晶作用
在化学和生物化学沉积物中,沉积物埋藏后,在新的环境下,受一定温度和压力的影响(T<150°),矿物晶粒在原基础上增生、扩大形成较大晶粒紧密相嵌的过程。(石英、方解石等)。
4.    新矿物生长
沉积物中不稳定矿物在成岩过程中溶解或发生化学变化,形成新的稳定矿物使沉积变坚硬,成岩石作用T<150℃  P<14巴。

经过以上阶段,纵观外动力地质作用的类型。实际上是岩石在地表环境下转变的几个阶段(外动力地质作用的几个阶段),经过这几个阶段后形成了地表环境下稳定的坚硬的沉积岩。沉积岩是外动力地质作用的产物。

在外动力中,流水是极为重要的动力,是沉积物、沉积岩形成的主要场所,因此沉积岩可谓“水成”,相反岩浆岩可谓为“火成”。在地质学发展早期,300多年前,人们对地表岩石的形成曾有过“水成论”与“火成论”的一场论战,持续了三十多年。

“水成论”以德魏尔纳为代表,主张地球上岩石都是水中结晶沉淀的形成的。“火成论”以赫屯(英)为代表,主张地球岩石并非全由水成,主要是熔融岩浆冷凝而成。最终以“火成论”的胜利而告终。

                §2  沉积岩的特征

沉积岩是次生岩石,地壳中第一块岩石不可能是沉积岩。
一、     矿物特征:特点是适应常T、常P的环境,
        沉积岩形成于地表,必须适应常T常  P才能成为成分稳定的岩石。
    常见矿物:石英、长石、白云母、方解石、粘土矿物、白云石、
                鲕绿泥石、绿泥石等。
    几乎无: 橄榄石、辉石、角闪石(适应高温高压环境)
二、     结构:(组成岩石颗粒的性质、大小、形态及其相互关系)
(一)    碎屑结构:常见结构类型
                    组成岩石的颗粒是机械沉积的碎屑物。

分选性——岩石中碎屑颗粒粗细均匀程度
好>75%; 中50-75%; 差<50%
磨圆度——碎屑颗粒棱角的磨损程度。
分为圆状、次圆状、次棱角状、棱角状。
    分选性、磨圆度反映了搬运介质的性质及距离的远近。可以结构成熟度的高、低来综合描述。成熟度高说明分选性、磨圆度好搬运距离远;成熟度低说明分选性、磨圆度不好搬运距离近。
      碎屑(颗粒)——机械成因;
      胶结物——化学成因,Si质,Ca质,泥质;
      基质(杂基)——机械成因。


三、沉积岩的原生构造
          指沉积岩形成时所生成的岩石各个组成部分之间关系。
(一)    层理构造
1.    概念——指由沉积物的成分、结构、颜色及颗粒形状等沿垂向的
  变化而显示出来的成层现象。
    层与层的差异,是由于不同时期沉积作用的,环境及性质的变化而造成的,每一层为同时、同沉积条件下形成的,所以表现为层内的均一性,而层间由于条件变化,表现为差异性。
分隔不同性质的沉积层的界面称层面,面标志着沉积作用的短暂停顿或间断.每层顶、底面垂直厚度为层厚,根据厚度不同分:
      块层  >1米 ;  中厚层 0.5-0.1米  ;
      厚层  1-0.5米 ;  薄层0.1-0.01米;  纹层 <0.01米。
  2.  主要层理类型
    水平层理:层面平行(原始水平)
      细碎屑岩中常见(泥岩、粉砂岩),反映水动力弱,低能,深水环境。
        交错层理:
        韵律层理:

实验课:常见沉积岩的原生构造
实验课:常见沉积岩的观察与鉴定
离线fanmingchan

发帖
402
土币
1
威望
2683
原创币
0
只看该作者 339楼 发表于: 2008-10-24
第五章    变质作用与变质岩
§1.变质作用概述

前面我们讲了岩浆岩和沉积岩,这两类大岩石是人们最先认识的两类组成地壳的岩石,在地质学的萌芽时期(约三百年前,十九世纪)曾经发生过所谓“火成论”与“水成论”的论战。
以德国人魏尔纳为代表的一些地质学家,认为所有的岩石都是从海水中结晶沉淀而成的(沉积岩)——“水成论”。
以苏格兰学者郝屯为代表的认为并非所有岩石都是水成的,而多数是像花岗岩,玄武岩这样的岩石,由地下熔融物质冷凝形成的。——“火成论”。
这两大学派的争论持续了大约三十年,最后以“火成论”胜利告终。现在我们知道,组成地球的岩石,不仅有“水成”的沉积岩,“火成都市”的岩浆岩,还有经变质作用形成的变质岩。三大岩类在地壳中分布大致是:
                岩浆岩占地壳总体积的64.7%;
                沉积岩占地壳总体积的7.9%,占地表面积的75%;
                变质岩占地壳总体积的27.4%。
  一、概念
变质作用——岩石基本上在固态下,由于温度、压力及化学活动性流体
          的作用 ,发生成分、结构、构造等变化的地质作用。
    变质岩 —— 由变质作用形成的岩石。
二、引起变质作用的因素
    (一) 温度: 影响变质作用的最基本因素  150°-180°~800°-900°
        升温意味着获得了新的能量,矿物中质点活性增强,可使原来的非晶质
变为晶质,原来小晶粒长大。
(二)     压力:
1.    静压力——上覆岩石自重引起的,各向等同。
                  每公里厚的岩石压力为275巴;
                  地下10 公里        约2750巴;
                  地下 20公里        约5500巴。
        静压力是各向同性的,作用结果使岩石中矿物变为密度大,体积小
        的新矿物。
2.定向压力 —— 作用于地壳岩石的侧向挤压力,具有方向性,主要是
构造力的作用造成。
      定向压力的作用结果使岩石中片、柱状矿物定向排列。
    (三)化学活动性流体
            以H2O、CO2为主,并含有易挥发的物质
 
      在变质作用过程中各种因素是相互配合的,而在不同的地质条件下,
      主导因素不同,显出有不同的变质特征 。

三、    原岩在变质作用中的变化方式(变质方式)

(一)    重组合
      沉积岩在常温、常压环境下形成,进入变质作用环境后,矿物中的H2O、CO2等在新环境下失去,而转化为新矿物。
  岩浆岩在高温、高压环境下形成,进入相对较低的温压环境后,转为新矿物。
   
    (二)、 重结晶
固态下,矿物岩矿经有限的粒间溶解,迁移、重新结晶,使原岩矿物中的晶粒增大且紧密相嵌的作用。
                      石英砂岩      石英岩
                        石灰岩      大理岩
(三)    交代作用
    主要由于化学活动性流体的作用,使得某些成分的原子、离子、分子从原岩中带出,另一些成分的原子、离子、分子被带入原岩中,从而改变了原岩的
成分。

交代作用是岩石在固态下发生的物质交换。由于化学活动性流体在岩石空隙中渗透或扩散,促成了交代作用的进行。
交代作用因为有新的成分带入,因此,是变质过程中原岩物质成分变化的最重要因素。
                    §2.变质岩的特征

一、    变质岩中的矿物
      特有矿物变质矿物: 石榴子石、 红柱石、夕线石、蓝晶石、蓝闪石、
                      十字石、蛇纹石……
        共有矿物: 石英、长石、云母
二、    变质岩的结构

(一)    变晶结构
            由于原岩在变质过程中的重结形成的结构。
1.    按变晶的大小可分为

2.  按变晶的形态可以分为



      (二) 变余结构:变质程度浅,保留了部分原岩的结构。
                    变余斑状结构
变余砂状结构……

三、    变质岩的构造

(一)    变成构造:原岩构造消失,形成新的构造。
斑点构造: 炭质、硅质、铁质、红柱石等呈斑点状。
板状构造: 岩石具平行、密集、平坦的破裂面,沿此面岩石
          易分裂成薄板状。
片理构造: 片、柱、长条状矿物平行定向排列。
片麻状构造: 片柱状矿物(常为深色)与粒状矿物(常为浅色)
            相间排列。
块状构造:  矿物均匀分布。

(二)     变余构造:
变质岩中残留了原岩的构造,变余气孔构造、变余杏仁构造、变余层状构造等。
§3.变质作用类型及其代表性岩石
根据引起变质作用的地质条件和主导因素不同,可分为接触变质作用,区域变质作用,动力变质作用,混合岩化作用。
一、    接触变质作用
          发生在火成岩与围岩之间的接触带上。
  引起变质的主导因素: 温度(300°-800℃)、  挥发性物质(岩浆分泌)           
(一)    接触热变质作用
      主要因素是温度
      岩石受热后有重结晶,重组合现象,但化学成分无显著改变。
      代表性岩石,斑点板岩、角岩、石英岩、大理岩。
    接触变质晕——围绕侵入体,变质程度不同的岩石呈环带状分布,
              由内向外变质程度加深
(二)  接触交代变质作用
        引起变质的因素:除温度外,岩浆分泌的挥发性物质很重要。
      原岩岩石的化学成分显著变化,大量新生矿物产生。
      代表岩石:矽卡岩。
                矽卡岩成分复杂:暗色矽卡岩常含铁镁质硅酸盐矿物
            (石榴子石、绿帘石)浅色矽卡岩常含硅灰石,透闪石等
          矽卡岩中常伴随有金属元素的富集,形成金属矿床。
        蚀变 —— 地壳内热液(含某些化学元素)在岩石裂隙和孔隙中进行
              渗透扩散,与围岩  发生的交代作用。
二、    区域变质作用
    在广大范围内发生,并由温度、压力、化学活动性流体等多种因素引起的变质作用。
        影响范围几千——几万平方公里
    区域变质作用与大构造运动有关:
对岩石施加强大定向压力;
下降到地下深处,上升到地表;
裂隙为岩浆活动及化学活动性流体提供有利条件。
      代表性岩石:板岩、片岩、千枚岩、片麻岩。
我们知道了不同的原岩可以变质为不同的变质岩(石灰岩——大理岩;
                                            石英砂岩——石英岩)
在区域变质岩中,经常有同一类原岩在不同的变质条件下,形成不同的变质岩的现象,(表现为不同的变质程度):
页岩    板岩      千板岩    片岩    斜长角闪岩
        较低温              300℃        600℃
        变质程度浅                变质程度深

三、 混合岩化作用(超深变质作用)                                           
      长英质的矿物溶解浸透、扩散、贯入组成脉体(浅色);
      铁镁质的矿物组成基体(深色);
      代表岩石:    混合岩
    四、 动变质作用(碎裂变质作用)
由于构造运动产生的定向压力作用,岩石发生的变质作用。经常出现在断裂带的两侧。
        原岩变形,破碎、粉碎、导致了结构、构造的改变。
        代表岩石:断层角砾岩、糜棱岩、千糜岩。

§4.岩石的演化
离线fanmingchan

发帖
402
土币
1
威望
2683
原创币
0
只看该作者 340楼 发表于: 2008-10-24
伯努利方程
设在右图的细管中有理想流体在做定常流动,且流动方向从左向右,我们在管的a1处和a2处用横截面截出一段流体,即a1处和a2处之间的流体,作为研究对象.设a1处的横截面积为S1,流速为V1,高度为h1;a2处的横截面积为S2,流速为V2,高度为h2.
思考下列问题:
①a1处左边的流体对研究对象的压力F1的大小及方向如何
②a2处右边的液体对研究对象的压力F2的大小及方向如何
③设经过一段时间Δt后(Δt很小),这段流体的左端S1由a1移到b1,右端S2由a2移到b2,两端移动的距离分别为ΔL1和ΔL2,则左端流入的流体体积和右端流出的液体体积各为多大 它们之间有什么关系 为什么
④求左右两端的力对所选研究对象做的功
⑤研究对象机械能是否发生变化 为什么
⑥液体在流动过程中,外力要对它做功,结合功能关系,外力所做的功与流体的机械能变化间有什么关系
推导过程:
如图所示,经过很短的时间Δt,这段流体的左端S1由a1移到b1,右端S2由a2移到b2,两端移动的距离为ΔL1和ΔL2,左端流入的流体体积为ΔV1=S1ΔL1,右端流出的体积为ΔV2=S2ΔL2.
因为理想流体是不可压缩的,所以有
ΔV1=ΔV2=ΔV
作用于左端的力F1=p1S1对流体做的功为
W1=F1ΔL1 =p1•S1ΔL1=p1ΔV
作用于右端的力F2=p2S2,它对流体做负功(因为右边对这段流体的作用力向左,而这段流体的位移向右),所做的功为
W2=-F2ΔL2=-p2S2ΔL2=-p2ΔV
两侧外力对所选研究液体所做的总功为
W=W1+W2=(p1-p2)ΔV
又因为我们研究的是理想流体的定常流动,流体的密度ρ和各点的流速V没有改变,所以研究对象(初态是a1到a2之间的流体,末态是b1到b2之间的流体)的动能和重力势能都没有改变.这样,机械能的改变就等于流出的那部分流体的机械能减去流入的那部分流体的机械能,即
E2-E1=ρ()ΔV+ρg(h2-h1)ΔV
又理想流体没有粘滞性,流体在流动中机械能不会转化为内能
∴W=E2-E1
(p1-p2)ΔV=ρ(-))ΔV+ρg(h2-h1)ΔV
整理后得:整理后得:
又a1和a2是在流体中任取的,所以上式可表述为
上述两式就是伯努利方程.
当流体水平流动时,或者高度的影响不显著时,伯努利方程可表达为
该式的含义是:在流体的流动中,压强跟流速有关,流速V大的地方压强p小,流速V小的地方压强p大
1.经常存盘
这是每一个设计人员必须牢记的一条准则,突然断电、死机等都有可能让你的作品及灵感消失得无影无踪。在AutoCAD中,我们也可以让CAD自动存盘:点击“工具→选项”,出现“选项”对话框,进入“文件”选项卡,设置“自动保存路径”,然后在“打开和保存”选项卡里设置“自动保存”及保存时间间隔。注意:不要把时间间隔设得太短,那样会浪费系统资源,一般设5分钟就可以了。
2.多看提示
AutoCAD软件是一套比较人性化的软件,每一步操作都会有提示指导。就算某个命令你原来从未使用过,只要根据提示一步一步做下去,也能完成。AutoCAD软件的提示行区域高度,一般要两到三行,这样就能完全看到每一步的提示。多看提示的好处:可以学习从未用过的命令,学习同一命令的多种用法。
3.巧用命令
命令可以理解为快捷键。AutoCAD有很多方便我们使用的快捷方法,而且同一个命令往往又有好几种使用方式,如点击菜单、点击工具图标、输入键盘命令、回车、空格键重复命令等方式。好多人都觉得用工具图标比较快,其实用键盘输入命令是最快的。我们一定要记住常用的命令。如直线“L”、多段线“PL”、复制“CO、CP”、删除“E”、移动“M”、列表“LIST”、镜像“MI”等。掌握键盘命令有一个简便方法,那就是在点击菜单或图标时,命令行都会出现该命令的键盘命令全称,我们可以试着输入命令全称的前一至两个字母,一般那就是该命令的缩写。
4.良好习惯
养成良好的作图习惯,作品的可移植性和可读性会大大提高。笔者指的良好习惯有:
①能用多段线(PLINE)作图就不要用直线(LINE),因为多段线是一个物件,在以后选择或二次加工时会很方便。
②用好图层(LAYER)功能,把不同类型的物件分配到不同的图层中,以便以后分类加工。
③灵活运用分组(GROUP)及块定义(BLOCK)功能,力求把同一组物件一次性选中,以防编辑时漏掉其中某一部分。
④常用的作图界限、尺寸、标注样式、文字样式等要做好模板,以便快速调用。
⑤不要轻易打散(EXPLODE)系统生成的填充样式、标注等,这对你以后编辑有帮助。
⑥尽量不要使用系统默认字体以外的字体,以防传输至其他电脑里时产生乱码。
⑦模型空间只用来作图,图纸空间只用来放置图框。
5.精确作图
四然在其他作图软件(如Photoshop、3DSMAX等)里,精确作图也是一个重要的规范,但是这一条在AutoCAD中尤其重要。CAD里面所有的物体,系统都会严格按作图者给定的尺寸绘制,即使你的尺寸是随便给出的。有些朋友在作图时忽视尺寸,标注时尺寸就不正确,然后再把标注打散后改正,这是要严格禁止的,因为这时的图已经没有实际尺寸的比例了,也不会再根据你的编辑改动而实时自动改正了。精确作图对我们以后进行标注、打印输出、图像调入调出和与他人分享都非常重要。根据笔者的经验,我们要注意以下几点:
①作图时严格按1:1比例,在最后打印输出时再调整比例。
②灵活运用点捕捉功能,不要以为自己眼力过人,随便一点就能点中直线的端点,那是不可能的。
③该闭合的线一定要用命令闭合(CLOSE)。
④对于已知的长度,我们可以用键盘直接输入。
⑤灵活运用正交模式、栅格与捕捉。
6.用“心”作图
这一条是献给所有奋战在设计岗位上的朋友们的,只有用心作图,我们才能作出正确、合乎规范、漂亮的图纸,我们的劳动成果才会更容易被认可,效率才能得到真正提高。
使用AutoCAD软件其实不难,只要记住笔者上面的“二十四字秘诀”,在实践中经常练习,你的CAD水平一定会在短时间内提高一个台阶。
七个命令让你成为CAD高手
            一、绘制基本图形对象
1、几个基本常用的命令
1.1、鼠标操作
通常情况下左键代表选择功能,右键代表确定“回车”功能。如果是3D鼠标,则滚动键起缩放作用。拖拽操作是按住鼠标左键不放拖动鼠标。但是在窗口选择时从左往右拖拽和从右往左拖拽有所不同。
窗选:左图从左往右拖拽选中实线框内的物体,只选中了左边的柱子。
框选:右图从右往左拖拽选中虚线框内的物体和交叉的物体,选中了右边的柱子和梁。
1.2、Esc取消操作:当正在执行命令的过程中,敲击Esc键可以中止命令的操作。
1.3、撤销放弃操作:autocad支持无限次撤销操作,单击撤销按钮 或输入u,回车。
1.4、AutoCAD中,空格键和鼠标右键等同回车键,都是确认命令,经常用到。
1.5、经常查看命令区域的提示,按提示操作。
2、绘制图形的几个操作
这是cad的绘图工具条,在使用三维算量往往不需要使用,因此已把该工具条隐藏。为了了解cad概念,以下介绍几个基本的命令。
2.1绘制直线:单击工具条直线命令或在命令行中输入L,回车。在绘图区单击一点或直接输入坐标点,回车,接着指定下一点,回车,重复下一点,或回车结束操作。或者输入C闭合。
举例:绘制一个三角形的三个边:
命令行输入:L 回车 指定第一个点:
单击一点:回车。重复单击另一点,回车。
输入:C回车。直线闭合,形成一个三角形。
2.2绘制多段线:多段线是由一条或多条直线段和弧线连接而成的一种特殊的线,还可以具备不同宽度的特征。快捷键:PL。在三维算量中定义异形截面、手绘墙、梁等时常用。
举例:绘制一个异形柱截面
命令行输入:PL,回车。指定下一点,输入w(宽度),输入1,回车,修改了多段线线的宽度为1。输入快捷键F8,使用cad的正交功能,,保持直线水平,输入:500。输入:A,开始绘制圆弧,单击另一点绘制一个圆弧。输入:L,切换到绘制直线,单击一点,绘制一段直线。输入:A,绘制一个圆弧与开始点闭合为一个界面形状。
接下来就可以定义一个异形截面的柱,来选择该多段性即可。
二、图形对象的修改
由于三维算量软件对绘图功能已针对算量特点改进的很傻瓜化操作,不需要掌握太多的绘图命令,但是修改命令就使用很频繁了。常用的有:
1、 删除:符合windows操作,Del键最方便。
2、 复制:是把一个或多个对象复制到指定的位置,也可以将一个对象连续复制。
快捷键:CP。例子:复制柱子。单击 或输入CP,选择一个柱子,回车或单击鼠标右键,指定基点,利用cad的捕捉功能单击柱的中心点,右键。输入1000,回车。一个柱子复制成功。在选择完对象后,根据提示单击M,可以多重复制。
3、 移动:快捷键:M。操作与“复制”相同,与复制功能不同的是,复制是多了一个对象,移动只是改变了对象的位置。
4、 修剪:快捷键:TR。可以按指定的边界剪切不需要的部分。
单击修剪工具或输入TR,提示选择对象,选择边界对象,单击右键,提示选择对象,左键单击选择剪切后不需要的那部分,单击右键,确定。
5、 延伸:快捷键:EX。用于把延伸对象精确的延伸到目标边界上。
操作与剪切相同。这两个命令的特点是:都是先选择目标界限对象,再选择被修改的对象。
三、对象捕捉
用户在绘图时,靠鼠标和眼睛很难精确控制,利用cad的捕捉功能可以很好结合解决这个问题。对象捕捉属于透明命令,意即:在不退出其他操作的过程中,可以同时使用的命令。绘制直线等其他图形时可以使用捕捉命令。
1、 对象捕捉设置
在软件界面下方,右键单击对象捕捉,左键单击设置,弹出对话窗后可以一一进行设置需要的捕捉方式。
四、正交模式:
正交模式是绘图时常用的工具之一,快捷键:F8。可以利用绘制直线时,键入F8测试。
五、图层模式:
图层是就像一张张透明的硫酸纸,为了更好管理所有的对象,每张上面分别画着墙、柱子、梁等不同类别的对象。为了避免图形太复杂,选择错误。可以从中把不需要看到的这一张先抽出来,也就是关闭。同样也可以锁定、冻结或者设置不同的颜色等等。
快捷键:LA
六、视图缩放命令:
1、 实时平移:快捷键:P。
单击 或输入P,回车,或者按下3D鼠标的滚动键,鼠标会变成像手一样的图标,按下鼠标左键拖动,平移图形。
2 、实时缩放:利用3D鼠标的滚动键滚动可以实现实时缩放。也可以单击 ,前后移动鼠标实时缩放。
3 、窗口缩放:单击窗口缩放 ,按下鼠标左键拖动框选需要缩放的区域。
4 、缩放到上一次:单击 ,视图将恢复到上一个缩放的视图。
5 、范围缩放:单击 ,系统将所有图形全部显示在屏幕上,并最大限度充满整个屏幕。
使用VBA创建应用程序
分类:VBA教程
使用VBA创建应用程序
分类:ACAD
摘要:实例1 最简单的VBA程序—“Hello。dvb”Step 1 创建新文件运行AutoCAD 2002系统,以“acadiso。dwt”为样板创建图形文件,并调用“vbaide”命令进入VBA环境。Step 2 创建窗体(1) 选择菜单【Insert(插入)】→【UserForm(用户窗体)】,编辑器将创建一个新的窗体,并显示在窗体窗口中。
    实例1 最简单的VBA程序—“Hello.dvb”
    Step 1 创建新文件
    运行AutoCAD 2002系统,以“acadiso.dwt”为样板创建图形文件,并调用“vbaide”命令进入VBA环境;
    Step 2 创建窗体
    (1) 选择菜单【Insert(插入)】→【UserForm(用户窗体)】,编辑器将创建一个新的窗体,并显示在窗体窗口中。选择该窗体,然后在属性窗口中将“Caption”项改为“Draw Text”。
    (2) 在控件工具箱中单击 按钮,并在窗体的适当位置拖动鼠标,创建一个编辑框控件。
    (3) 在控件工具箱中单击 按钮,并在窗体的适当位置拖动鼠标,创建一个按钮控件。选择该控件后,在属性窗口中将“Caption”项改为“Click”。
    创建结果见图37-6。
    Step 3 编写代码
    (1) 在窗体窗口中双击按钮控件,编辑器显示代码窗口,并提示用户输入代码,如图37-7所示。代码清单如下:
    Private Sub CommandButton1_Click()
    Dim TextObj As AcadText '定义文字对象变量
    Dim TextString As String '定义字符串变量
    Dim InsPnt(0 To 2) As Double '定义文字插入点数组变量
    Dim Height As Double '定义文字高度变量
    TextString = TextBox1.Text '字符串取值为编辑框中输入的文字
    '指定文字插入点位置和文字高度
    InsPnt(0) = 100: InsPnt(1) = 100: InsPnt(2) = 0
    Height = 15
  '在模型空间创建文字对象
    Set TextObj = ThisDrawing.ModelSpace.AddText(TextString, InsPnt, Height)
    TextObj.Color = acGreen '指定文字对象的颜色为绿色
    ZoomAll '缩放视图
    Unload Me '关闭窗体
    End Sub
    (2) 单击“Standard(标准)”工具栏中的  按钮,以“Hello.dvb”为名保存该文件。    Step 4 运行VBA程序
    (1) 单击“Standard(标准)”工具栏中的  按钮运行该程序,系统将切换到AutoCAD窗口,并显示如图37-8所示的对话框。用户可在该对话框的编辑框中输入“Hello, VBA!”,并单击按钮,则将在当前图形中创建文字对象,结果如图37-9所示。
    实例说明
    如果用户退出VBA环境并返回AutoCAD系统窗口,则需要对该程序进行加载后才能运行。加载VBA程序的方式有如下几种:
    1. 选择菜单【Tools(工具)】→【Load Appcation…(加载应用程序)】,弹出“Load/Unload Applications(加载/卸载应用程序)”对话框。利用该对话框进行加载的过程与加载LISP程序相同。
    2. 选择菜单【Tools(工具)】→【Macro(宏)】→【Load Project…(加载工程)】,弹出“Open VBA Project(打开VBA工程)”对话框,用户可选择“Hello.dvb”文件并单击Open按钮进行加载。
    3. 选择菜单【Tools(工具)】→【Macro(宏)】→【VBA Manager…(VBA管理器)】,弹出“VBA Manager(VBA管理器)”对话框,如图37-10所示。
    该对话框中的“Drawing(图形)”下拉列表中显示了加载的所有图形文件。对于该列表中指定的图形文件,“Projects(工程)”列表显示了该文件中已加载的VBA程序,用户可单击 按钮载入其他的VBA程序。小 结
    本章主要介绍了AutoCAD ActiveX和VBA的概念和作用,并通过一个简单的实例讲述了在AutoCAD系统中开发VBA程序的过程。
你可以通过这个链接引用该篇文章:http://xyz9999.bokee.com/tb.b?diaryId=13476517
合并一根直线上的两根线段
分类:VBA教程
Sub uniteline()
    Dim returnobj As AcadEntity, basepnt As Variant, pnt1 As Variant, pnt2 As Variant, pnt3 As Variant, pnt4 As Variant
    Dim line1 As Variant, line2 As Variant
choose1:
    ActiveDocument.Utility.GetEntity returnobj, basepnt, "选择第一根线段:"
    Select Case returnobj.ObjectName
        Case "AcDbLine" '第一根为line
            Set line1 = returnobj
            pnt1 = line1.StartPoint: pnt2 = line1.EndPoint
        Case "AcDbPolyline" '第一根为lwpolyline
            Set line1 = returnobj
            If line1.Area > 0.000001 Then '判断是否为直线
                ActiveDocument.Utility.Prompt "您选择的不是一根线段,请重新选择"
                GoTo choose1
              Else
            End If
            pnt1 = basepnt
            pnt2 = basepnt
            basepnt = line1.Coordinates
            pnt1(0) = basepnt(0): pnt1(1) = basepnt(1)
            pnt2(0) = basepnt(2): pnt2(1) = basepnt(3)
            If pnt1(0) = pnt2(0) Then '垂直
                For i = 1 To (UBound(basepnt) + 1) / 2
                    If pnt1(1) > basepnt(2 * i - 1) Then pnt1(1) = basepnt(2 * i - 1)
                    If pnt2(1) < basepnt(2 * i - 1) Then pnt2(1) = basepnt(2 * i - 1)
                Next i
              Else '不垂直
                For i = 1 To (UBound(basepnt) + 1) / 2
                    If pnt1(0) > basepnt(2 * i - 2) Then
                        pnt1(0) = basepnt(2 * i - 2)
                        pnt1(1) = basepnt(2 * i - 1)
                      Else
                    End If
                    If pnt2(0) < basepnt(2 * i - 2) Then
                        pnt2(0) = basepnt(2 * i - 2)
                        pnt2(1) = basepnt(2 * i - 1)
                      Else
                    End If
                Next i
            End If
        Case Else
            ActiveDocument.Utility.Prompt "您选择的不是一根线段,请重新选择"
            GoTo choose1
    End Select
choose2:
    ActiveDocument.Utility.GetEntity returnobj, basepnt, "选择第二根线段:"
    If returnobj.Handle = line1.Handle Then
      ActiveDocument.Utility.Prompt "线段二与线段一重复,请重新选择"
      GoTo choose2
    Else
    End If
    Select Case returnobj.ObjectName
        Case "AcDbLine" '第二根为line
            Set line2 = returnobj
            pnt3 = line2.StartPoint: pnt4 = line2.EndPoint
        Case "AcDbPolyline" '第二根为lwpolyline
            Set line2 = returnobj
            If line2.Area > 0.000001 Then '判断是否为直线
                ActiveDocument.Utility.Prompt "您选择的不是一根线段,请重新选择"
                GoTo choose2
              Else
            End If
            pnt3 = basepnt
            pnt4 = basepnt
            basepnt = line2.Coordinates
            pnt3(0) = basepnt(0): pnt3(1) = basepnt(1)
            pnt4(0) = basepnt(2): pnt4(1) = basepnt(3)
            If pnt3(0) = pnt4(0) Then '垂直
                For i = 1 To (UBound(basepnt) + 1) / 2
                    If pnt3(1) > basepnt(2 * i - 1) Then pnt3(1) = basepnt(2 * i - 1)
                    If pnt4(1) < basepnt(2 * i - 1) Then pnt4(1) = basepnt(2 * i - 1)
                Next i
              Else '不垂直
                For i = 1 To (UBound(basepnt) + 1) / 2
                    If pnt3(0) > basepnt(2 * i - 2) Then
                        pnt3(0) = basepnt(2 * i - 2)
                        pnt3(1) = basepnt(2 * i - 1)
                      Else
                    End If
                    If pnt4(0) < basepnt(2 * i - 2) Then
                        pnt4(0) = basepnt(2 * i - 2)
                        pnt4(1) = basepnt(2 * i - 1)
                      Else
                    End If
                Next i
            End If
        Case Else
            ActiveDocument.Utility.Prompt "您选择的不是一根线段,请重新选择"
            GoTo choose2
    End Select
    If pnt2(0) = pnt1(0) Then '垂直
      If (pnt2(0) = pnt3(0)) And (pnt3(0) = pnt4(0)) Then
          If pnt1(1) > pnt2(1) Then
            basepnt = pnt1: pnt1 = pnt2: pnt2 = basepnt
          End If
          If pnt1(1) > pnt3(1) Then
            basepnt = pnt1: pnt1 = pnt3: pnt3 = basepnt
          End If
          If pnt1(1) > pnt4(1) Then
            basepnt = pnt1: pnt1 = pnt4: pnt4 = basepnt
          End If
          If pnt4(1) < pnt2(1) Then
            basepnt = pnt4: pnt4 = pnt2: pnt2 = basepnt
          End If
          If pnt4(1) < pnt3(1) Then
            basepnt = pnt4: pnt4 = pnt3: pnt3 = basepnt
          End If
          GoTo unite '合并
        Else
          ActiveDocument.Utility.Prompt "线段一与线段二不在同一直线上,无法合并."
      End If
    Else '不垂直
      If pnt1(0) > pnt2(0) Then
          basepnt = pnt1: pnt1 = pnt2: pnt2 = basepnt
      End If
      If pnt1(0) > pnt3(0) Then
          basepnt = pnt1: pnt1 = pnt3: pnt3 = basepnt
      End If
      If pnt1(0) > pnt4(0) Then
          basepnt = pnt1: pnt1 = pnt4: pnt4 = basepnt
      End If
      If pnt4(0) < pnt2(0) Then
          basepnt = pnt4: pnt4 = pnt2: pnt2 = basepnt
      End If
      If pnt4(0) < pnt3(0) Then
          basepnt = pnt4: pnt4 = pnt3: pnt3 = basepnt
      End If
      If (Abs((pnt3(1) - pnt1(1)) * (pnt2(0) - pnt1(0)) - (pnt3(0) - pnt1(0)) * (pnt2(1) - pnt1(1))) + Abs((pnt4(1) - pnt1(1)) * (pnt2(0) - pnt1(0)) - (pnt4(0) - pnt1(0)) * (pnt2(1) - pnt1(1)))) < 0.000001 Then
          GoTo unite '合并
        Else
          ActiveDocument.Utility.Prompt "线段一与线段二不在同一直线上,无法合并."
      End If
    End If
    End
unite:
    Select Case line1.ObjectName
          Case "AcDbLine"
                line1.StartPoint = pnt1: line1.EndPoint = pnt4
                line2.Delete
                ActiveDocument.Utility.Prompt "线段一与线段二已合并."
          Case "AcDbPolyline"
                Do While UBound(line1.Coordinates) > 4  '新增
                  pnt2 = line1.Coordinates
                  For i = 1 To (UBound(pnt2) - 2)
                      ReDim basepnt(0 To (UBound(pnt2) - 2))
                      basepnt(i) = pnt2(i)
                  Next i
                  line1.Coordinates = basepnt
                Loop  '新增


                ReDim basepnt(0 To 3)
                basepnt(0) = pnt1(0): basepnt(1) = pnt1(1)
                basepnt(2) = pnt4(0): basepnt(3) = pnt4(1)
                line1.Coordinates = basepnt
                line2.Delete
                ActiveDocument.Utility.Prompt "线段一与线段二已合并."
        Case Else
    End Select
End Sub
Excel表格到CAD
分类:VBA教程
Sub Test()
    On Error Resume Next
      ' 连接Excel应用程序
      Dim xlApp As Excel.Application
    Set xlApp = GetObject(, "Excel.Application")
    If Err Then
        MsgBox " Excel 应用程序没有运行。请启动 Excel 并重新运行程序。"
        Exit Sub
    End If
    Dim xlSheet As Worksheet
    Set xlSheet = xlApp.ActiveSheet
      ' 当初考虑将表格做成块的方式,可以根据需要取舍。
    'Dim iPt(0 To 2) As Double
    'iPt(0) = 0: iPt(1) = 0: iPt(2) = 0
    Dim BlockObj As AcadBlock
    Set BlockObj = ThisDrawing.Blocks("*Model_Space")
    Dim iPt As Variant
    iPt = ThisDrawing.Utility.GetPoint(, "指定表格的插入点: ")
    If IsEmpty(iPt) Then Exit Sub
    Dim xlRange As Range
    Debug.Print xlSheet.UsedRange.Address
    For Each xlRange In xlSheet.UsedRange
        AddLine BlockObj, iPt, xlRange
        AddText BlockObj, iPt, xlRange
    Next
    Set xlRange = Nothing
    Set xlSheet = Nothing
    Set xlApp = Nothing
End Sub
'边框线条粗细
Function LineWidth(ByVal xlBorder As Border) As Double
    Select Case xlBorder.Weight
        Case xlThin
            LineWidth = 0
        Case xlMedium
            LineWidth = 0.35
        Case xlThick
            LineWidth = 0.7
        Case Else
            LineWidth = 0
    End Select
End Function
'边框线条颜色,处理的颜色不全,请自己添加
Function LineColor(ByVal xlBorder As Border) As Integer
    Select Case xlBorder.ColorIndex
        Case xlAutomatic
            LineColor = acByLayer
        Case 3
            LineColor = acRed
        Case 4
            LineColor = acGreen
        Case 5
            LineColor = acBlue
        Case 6
            LineColor = acYellow
          Case 8
            LineColor = acCyan
          Case 9
            LineColor = acMagenta
        Case Else
            LineColor = acByLayer
    End Select
End Function
'给制边框
Sub AddLine(ByRef BlockObj As AcadBlock, ByVal iPt As Variant, ByVal xlRange As Range)
    If xlRange.Borders(xlEdgeLeft).LineStyle = xlNone _
        And xlRange.Borders(xlEdgeBottom).LineStyle = xlNone _
        And xlRange.Borders(xlEdgeRight).LineStyle = xlNone _
        And xlRange.Borders(xlEdgeTop).LineStyle = xlNone Then Exit Sub
    Dim rl As Double
    Dim rt As Double
    Dim rw As Double
    Dim rh As Double
    rl = PToM(xlRange.Left)
    rt = PToM(xlRange.top)
    rw = PToM(xlRange.Width)
    rh = PToM(xlRange.Height)
    Dim pPt(0 To 3) As Double
    Dim pLineObj As AcadLWPolyline
      ' 左边框的处理,仅第一列才做处理。
    If xlRange.Borders(xlEdgeLeft).LineStyle <> xlNone And xlRange.Column = 1 Then
        pPt(0) = iPt(0) + rl: pPt(1) = iPt(1) - rt
        pPt(2) = iPt(0) + rl: pPt(3) = iPt(1) - (rt + rh)
        Set pLineObj = BlockObj.AddLightWeightPolyline(pPt)
        pLineObj.ConstantWidth = LineWidth(xlRange.Borders(xlEdgeLeft))
        pLineObj.Color = LineColor(xlRange.Borders(xlEdgeLeft))
    End If
      ' 下边框的处理,对于合并单元格,只处理最后一行。
    If xlRange.Borders(xlEdgeBottom).LineStyle <> xlNone And (xlRange.Row = xlRange.MergeArea.Row + xlRange.MergeArea.Rows.Count - 1) Then
        pPt(0) = iPt(0) + rl: pPt(1) = iPt(1) - (rt + rh)
        pPt(2) = iPt(0) + rl + rw: pPt(3) = iPt(1) - (rt + rh)
        Set pLineObj = BlockObj.AddLightWeightPolyline(pPt)
        pLineObj.ConstantWidth = LineWidth(xlRange.Borders(xlEdgeBottom))
        pLineObj.Color = LineColor(xlRange.Borders(xlEdgeBottom))
    End If
      ' 右边框的处理,对于合并单元格,只处理最后一列。
    If xlRange.Borders(xlEdgeRight).LineStyle <> xlNone And (xlRange.Column >= xlRange.MergeArea.Column + xlRange.MergeArea.Columns.Count - 1) Then
        pPt(0) = iPt(0) + rl + rw: pPt(1) = iPt(1) - (rt + rh)
        pPt(2) = iPt(0) + rl + rw: pPt(3) = iPt(1) - rt
        Set pLineObj = BlockObj.AddLightWeightPolyline(pPt)
        pLineObj.ConstantWidth = LineWidth(xlRange.Borders(xlEdgeRight))
        pLineObj.Color = LineColor(xlRange.Borders(xlEdgeRight))
    End If
      ' 上边框的处理,仅第一行才做处理。
    If xlRange.Borders(xlEdgeTop).LineStyle <> xlNone And xlRange.Row = 1 Then
        pPt(0) = iPt(0) + rl + rw: pPt(1) = iPt(1) - rt
        pPt(2) = iPt(0) + rl: pPt(3) = iPt(1) - rt
        Set pLineObj = BlockObj.AddLightWeightPolyline(pPt)
        pLineObj.ConstantWidth = LineWidth(xlRange.Borders(xlEdgeTop))
        pLineObj.Color = LineColor(xlRange.Borders(xlEdgeTop))
    End If
    Set pLineObj = Nothing
End Sub
'给制文本
Sub AddText(ByRef BlockObj As AcadBlock, ByVal InsertionPoint As Variant, ByVal xlRange As Range)
    If xlRange.Text = "" Then Exit Sub
    Dim rl As Double
    Dim rt As Double
    Dim rw As Double
    Dim rh As Double
    rl = PToM(xlRange.Left)
    rt = PToM(xlRange.top)
    rw = PToM(xlRange.MergeArea.Width)
    rh = PToM(xlRange.MergeArea.Height)
    Dim i As Integer
    Dim s As String
    For i = 1 To Len(xlRange.Text) '将EXCEL的换行符替换成P,注如果是在R2002以上可使用Replace函数。
        If Asc(Mid(xlRange.Text, i, 1)) = 10 Then
            s = s & "P"
        Else
            s = s & Mid(xlRange.Text, i, 1)
        End If
    Next
    Dim iPt(0 To 2) As Double
    iPt(0) = InsertionPoint(0) + rl: iPt(1) = InsertionPoint(1) - rt: iPt(2) = 0
    Dim mTextObj As AcadMText
    Set mTextObj = BlockObj.AddMText(iPt, rw, s)  '"{f" & xlRange.Font.Name & ";" & s & "}")
    mTextObj.LineSpacingFactor = 0.75
    mTextObj.Height = PToM(xlRange.Font.Size)
      ' 处理文字的对齐方式
    Dim tPt As Variant
    If xlRange.VerticalAlignment = xlTop And (xlRange.HorizontalAlignment = xlLeft Or xlRange.HorizontalAlignment = xlGeneral) Then
        mTextObj.AttachmentPoint = acAttachmentPointTopLeft
        tPt = iPt
    ElseIf xlRange.VerticalAlignment = xlTop And xlRange.HorizontalAlignment = xlCenter Then
        mTextObj.AttachmentPoint = acAttachmentPointTopCenter
        tPt = ThisDrawing.Utility.PolarPoint(iPt, 0, rw / 2)
    ElseIf xlRange.VerticalAlignment = xlTop And xlRange.HorizontalAlignment = xlRight Then
        mTextObj.AttachmentPoint = acAttachmentPointTopRight
        tPt = ThisDrawing.Utility.PolarPoint(iPt, 0, rw)
    ElseIf xlRange.VerticalAlignment = xlCenter And (xlRange.HorizontalAlignment = xlLeft _
            Or xlRange.HorizontalAlignment = xlGeneral) Then
        mTextObj.AttachmentPoint = acAttachmentPointMiddleLeft
        tPt = ThisDrawing.Utility.PolarPoint(iPt, -1.5707963, rh / 2)
    ElseIf xlRange.VerticalAlignment = xlCenter And xlRange.HorizontalAlignment = xlCenter Then
        mTextObj.AttachmentPoint = acAttachmentPointMiddleCenter
        tPt = ThisDrawing.Utility.PolarPoint(iPt, -1.5707963, rh / 2)
        tPt = ThisDrawing.Utility.PolarPoint(tPt, 0, rw / 2)
    ElseIf xlRange.VerticalAlignment = xlCenter And xlRange.HorizontalAlignment = xlRight Then
        mTextObj.AttachmentPoint = acAttachmentPointMiddleRight
        tPt = ThisDrawing.Utility.PolarPoint(iPt, -1.5707963, rh / 2)
        tPt = ThisDrawing.Utility.PolarPoint(tPt, 0, rw / 2)
    ElseIf xlRange.VerticalAlignment = xlBottom And (xlRange.HorizontalAlignment = xlLeft _
            Or xlRange.HorizontalAlignment = xlGeneral) Then
        mTextObj.AttachmentPoint = acAttachmentPointBottomLeft
        tPt = ThisDrawing.Utility.PolarPoint(iPt, -1.5707963, rh)
    ElseIf xlRange.VerticalAlignment = xlBottom And xlRange.HorizontalAlignment = xlCenter Then
        mTextObj.AttachmentPoint = acAttachmentPointBottomCenter
        tPt = ThisDrawing.Utility.PolarPoint(iPt, -1.5707963, rh)
        tPt = ThisDrawing.Utility.PolarPoint(tPt, 0, rw / 2)
    ElseIf xlRange.VerticalAlignment = xlBottom And xlRange.HorizontalAlignment = xlRight Then
        mTextObj.AttachmentPoint = acAttachmentPointBottomRight
        tPt = ThisDrawing.Utility.PolarPoint(iPt, -1.5707963, rh)
        tPt = ThisDrawing.Utility.PolarPoint(tPt, 0, rw)
    End If
    mTextObj.InsertionPoint = tPt
    Set mTextObj = Nothing
End Sub
' 磅换算成毫米
  ' 注:意义不大,转换的尺寸有偏差,最好自己设定一个转换规则。
Function PToM(ByVal Points As Double) As Double
    PToM = Points * 0.3527778
End Function
2007.5.19 09:39 作者:CAD  收藏 | 评论:0
把当前图纸中符合条件的圆替换为块
分类:VBA教程
把当前图纸中符合条件的圆替换为块(注:块在当前图纸中已存在)
Public Sub ChangeEntity(ByVal MinRadius As Double, ByVal MaxRadius As Double, _
                          ByVal BlockName As Variant, ByVal AutoSelect As Boolean)
    On Error Resume Next
        Dim ssobject As AcadCircle
    Dim InsertionPoint(0 To 2) As Double
    Dim NewBlock As AcadBlockReference
        '创建选择集
    Dim ssetObj As AcadSelectionSet
    Set ssetObj = AcadDoc.SelectionSets("BlockCount")
        If Err.Number <> 0 Then
        Err.Clear
        Set ssetObj = AcadDoc.SelectionSets.Add("BlockCount")
    End If
        '清空选择集
    ssetObj.Clear
        '创建过滤机制
    Dim fType(0 To 6) As Integer
    Dim fData(0 To 6) As Variant
        fType(0) = 0: fData(0) = "Circle"
        fType(1) = -4: fData(1) = "<AND"
    fType(2) = -4: fData(2) = ">="
    fType(3) = 40: fData(3) = MinRadius
    fType(4) = -4: fData(4) = "<="
    fType(5) = 40: fData(5) = MaxRadius
    fType(6) = -4: fData(6) = "AND>"
    '选择符合条件的所有图元-圆
    If AutoSelect Then
        '自动选择方式
        ssetObj.Select acSelectionSetAll, , , fType, fData
    Else
        '提示用户选择
        ssetObj.SelectOnScreen fType, fData
    End If
        If ssetObj.Count = 0 Then Exit Sub
        '替换每一个圆为指定的块对象
    For Each ssobject In ssetObj
        InsertionPoint(0) = ssobject.Center(0)
        InsertionPoint(1) = ssobject.Center(1)
        InsertionPoint(2) = ssobject.Center(2)
                On Error GoTo ErrHandle
                Set NewBlock = AcadDoc.ModelSpace.InsertBlock(InsertionPoint, BlockName, 1, 1, 1, 0)
                ssobject.Delete
        Set NewBlock = Nothing
    Next
        '删除数组
    Erase fType: Erase fData
        '刷新视图
    'AcadDoc.Regen acActiveViewport
        MsgBox "当前图纸中有 " & ssetObj.Count & " 个符合条件的圆被替换为块 “" & BlockName & "”。", vbInformation, "提示:"
        '删除选择集
    ssetObj.Clear
    ssetObj.Delete
        Set ssetObj = Nothing
    Exit Sub
ErrHandle:
    Select Case Err.Number
        Case -2147418113
            MsgBox "在当前图纸中找不到名称为: “" & BlockName & "” 的块参照,请确认块名!", vbCritical, "错误:"
        Case Else
            MsgBox Err.Number & Chr(13) & Err.Description, vbCritical, "产生了以下错误:"
    End Select
    Err.Clear
End Sub
2007.5.19 09:37 作者:CAD 收藏 | 评论:0
AutoCAD中图块使用必须注意的几个问题
分类:CAD应用
熟练掌握图块特性和使用图块绘图,是每一个渴望成为AutoCAD高手必备的利器。虽然组成图块的各对象都有自己的图层、颜色、线型和线宽等特性,但插入到图形中,图块各对象原有的图层、颜色、线型和线宽特性常常会发生变化。一般AutoCAD书刊中只涉及图块的定义、插入和存盘等内容,而关于图块插入前后其组成对象一般特性发生变化的内容则很少见到。总结它们的变化规律,对于正确使用图块,提高计算机绘图与设计的效率很有意义。本文讨论的图块组成对象的一般特性仅限于图块组成对象的图层、颜色、线型和线宽。
    讨论图块组成对象图层、颜色、线型和线宽的变化,涉及到的图层特性包括图层设置和图层状态。图层设置是指在图层特性管理器中对图层的颜色、图层的线型和图层的线宽的设置。图层状态是指图层的打开与关闭状态、图层的解冻与冻结状态、图层的解锁与锁定状态和图层的可打印与不可打印状态等。

一、图块组成对象图层的继承性
    在图块插入时,图块中0层上的对象改变到图块的插入层,图块中非0层上的对象图层不变。即图块中原非0层上的对象,如在被插入图形文件中有与其同名的图层,则分别置于各自的同名图层,被插入图形文件中图层的设置不变。如在被插入图形文件中没有与其同名的图层,则AutoCAD首先在被插入图形文件中新建图块的同名图层,并继承图块中非0层对象所在图层的设置,然后把图块中非0层上的对象分别置于各自的同名图层。总之,若0层不是插入层,则图块中0层上的对象,其图层发生改变,被重新置于图块的插入层;图块中非0层上的对象,其图层保持不变,因此我们说非0层对象的图层具有继承性。若0层就是插入层,则图块中各对象所在的图层保持不变。
    图块插入后,如果关闭图块的插入层,会使图块中与插入层同名层上的对象不可见,如果0层不是插入层,也会使图块中0层上的对象不可见。因为,图块中0层上的对象已重新置于图块的插入层,但图块中其他图层(既非插入层也非0层)上的对象仍然可见。但是要注意,如果冻结图块的插入层,不管图块中的各个对象位于哪一层,整个图块都将不可见,不但图块中与插入层同名层上的对象和图块中0层上的对象不可见,图块中非插入层上的对象也不可见。如果0层为非插入层,关闭或冻结0层,对图块中原0层对象的可见性没有影响。如果关闭或冻结的图层既非图块的插入层也非0层,会使图块中该层上的对象不可见。
    图块插入后,还可以随时改变图块的插入层,先选择图块,在“对象特性”工具栏上单击“图层状态”下拉列表框中的下拉按扭,再单击所需要的图层即可。如上所述,如果冻结图块的插入层。则在该层插入的整个图块将不可见,可以通过这个方法来验证某个图层是否为图块的插入层。
    如果图块的插入层既不是0层也不是图块中各对象所在的图层,那么当删除了该层上的所有对象(包括所插入的图块)后,就能够删除该层。但是,图块中各对象所在的图层,不管是不是图块的插入层,即使图层中已经没有任何对象,也不能删除。
    如果图块插入后被分解(Explode),则图块插入前位于0层、图块插入后改变到图块插入层的对象,将再从图块的插入层回归到0层。总之,图块分解后,图块中不同图层的对象所在的图层将“各归各位”,恢复到图块插入前各对象所在的图层。
二、图块组成对象颜色、线型和线宽的继承性
    为了讨论方便,先约定几个术语。
    Bylayer设置就是在绘图时把当前颜色、当前线型或当前线宽设置为Bylayer。如果当前颜色(当前线型或当前线宽)使用Bylayer设置,则所绘对象的颜色(线型或线宽)与所在图层的图层颜色(图层线型或图层线宽)一致,所以Bylayer设置也称为随层设置。
    Byblock设置就是在绘图时把当前颜色、当前线型或当前线宽设置为Byblock。如果当前颜色使用Byblock设置,则所绘对象的颜色为白色(White);如果当前线型使用Byblock设置,则所绘对象的线型为实线(Continuous);如果当前线宽使用Byblock设置,则所绘对象的线宽为默认线宽(Default),一般默认线宽为0.25mm,默认线宽也可以重新设置,Byblock设置也称为随块设置。
    显式设置就是在绘图时把当前颜色、当前线型或当前线宽设置为显式,既非Bylayer,也非Byblock。
    Bylayer块是指颜色、线型和线宽都采用Bylayer设置绘制的图块;Byblock块是指颜色、线型和线宽都采用Byblock设置绘制的图块;Non-by块是指颜色、线型和线宽都采用显式设置绘制的图块。
    在Bylayer块插入后,图块中各对象的颜色、线型和线宽与图块插入后各对象所在图层的设置,即图层颜色、图层线型和图层线宽一致,而不是与图块插入后各对象所在图层的当前设置,即当前颜色、当前线型和当前线宽一致。也就是说,在Bylayer块插入前,如果在被插图形文件中有图块的同名层,则 Bylayer块插入后,图块相应图层上对象的颜色、线型和线宽将跟随被插图形文件中图块的同名层的图层设置。这时,如果图块图层的设置与被插入图形文件图块同名层的设置不同,则在图块插入前后,图块颜色、线型和线宽有明显变化。如果在被插入图形文件中没有图块的同名层,则Bylayer块插入后,图块相应图层上对象的颜色、线型和线宽将保持不变。Bylayer块分解前后,图块所有对象的颜色、线型和线宽将保持不变。Bylayer块插入后,图块组成对象的颜色、线型和线宽三者有条件的变化。
    在Byblock块插入后,图块中所有对象的颜色、线形与线宽都与插入层的当前设置(当前颜色、线型和线宽) 一致。虽然在图块插入后图块中的各个对象一般不会在同一个图层上,但是图块中所有对象却具有相同的颜色、相同的线型和相同的线宽。Byblock块分解后,图块所有对象的颜色变成Byblock色(白色),所有对象的线型变成Byblock型(实线),但是所有对象的线宽仍保留图块插入时的线宽。Byblock块插入后,图块组成对象的颜色、线型和线宽三者无条件的变化。
    在Non-by块插入后,图块中所有对象的颜色、线形与线宽都保持不变。Non-by分解前、后图块所有对象的颜色、线型和线宽将保持不变。Non-by块图块插入后,图块组成对象的颜色、线型和线宽三者没有变化。
    如果绘制图块中某个对象时,其颜色、线型或线宽采用的不是同一种设置,则若颜色、线型或线宽采用Bylayer设置,则图块插入后,该对象对应的颜色、线型或线宽将与该对象所在图层的颜色、线型或线宽一致。若颜色、线型或线宽采用Byblock设置,则图块插入后,该对象对应的颜色、线型或线宽将与插入层的当前颜色、当前线型或当前线宽一致。若颜色、线型或线宽采用Non-by设置,则图块插入后,该对象对应的颜色、线型或线宽将保持该对象绘制时颜色、线型或线宽不变。
    在图块插入后,如果对图块的颜色、线型或线宽不满意,当然可以把图块分解后再进行调整,但如果不分解图块而直接调整图块的颜色、线型或线宽,则Bylayer块、Byblock块、Non-by块需要区别对待。
    在Bylayer块插入后,图块中各对象的颜色、线型与线宽,不可以通过“对象特性”工具栏上“颜色”下拉列表框、“线型”下拉列表框以及“线宽”下拉列表框来直接改变,但可以通过在“图层特性管理器”中改变图层的颜色、线型或线宽来间接改变。单击“对象特性”工具栏上“图层”按扭,可以打开“图层特性管理器”窗口。
    在Byblock块插入后,图块中各对象的颜色、线型与线宽,可以通过“对象特性”工具栏上“颜色”下拉列表框、“线型”下拉列表框以及“线宽”下拉列表框来直接改变。
    在Non-by块插入后,图块如不分解,图块中各对象的颜色、线型与线宽绝对不可能改变,无论是通过“对象特性”工具栏上“颜色”下拉列表框、“线型”下拉列表框和“线宽”下拉列表框直接改变,还是在“图层特性管理器”中通过改变图层的颜色、线型或线宽间接改变。
    如果绘制图块中某个对象时,其颜色、线型或线宽采用的不是同一种设置,则若颜色、线型或线宽采用Bylayer设置,图块插入后,该对象对应的颜色、线型或线宽可以间接改变;若颜色、线型或线宽采用Byblock设置,则图块插入后,该对象对应的的颜色、线型或线宽可以直接改变;若颜色、线型或线宽采用Non-by设置,则图块插入后,该对象对应的颜色、线型或线宽将不能再改变。

三、图块绘制时的几点建议
    根据以上对图块组成对象的图层、颜色、线型和线宽的变化分析,得出如下结论。
    要使在图块插入后图块各对象的图层随图块的插入层、图块各对象的颜色、线型与线宽都随图块插入层的图层设置,就在0层上用Bylayer颜色、Bylayer线型和Bylayer线宽制块,即0层上的Bylaye块插入后,其图块各对象所在的图层将变换为图块的插入层,其图块各对象的颜色、线型与线宽将与图块插入层的图层设置一致。
    要使图块插入后图块各对象的图层随图块的插入层、图块各对象的颜色、线型与线宽都随图块插入层的当前设置,就在0层上用Byblock颜色、Byblock线型和Byblock线宽制块,即0层上Byblock块插入后,其图块各对象所在的图层将改变为图块的插入层,其图块各对象的颜色、线型与线宽将与图块插入层的当前设置一致。
    要使图块插入后图块各对象的图层、颜色、线型与线宽都不变,就在非0层上用显式颜色、显式线型和显式线宽制块。
    为了更好地组织和管理图形,一般一个图层使用一种颜色,因此希望图库中图块所有对象都能定位到图块的插入层,图块所有对象的颜色都能随该层的图层颜色或当前颜色,而图块所有对象的线型与线宽不变,那么,应在0层上用Bylayer颜色或Byblock颜色、用显式线型和用显式线宽来绘制图块。
标注上下标的方法
分类:CAD应用
1)上标:编辑文字时,输入2^,然后选中2^,点a/b按键,即可。
    (2)下标:编辑文字时,输入^2,然后选中^2,点a/b按键,即可。
    (3)上下标:编辑文字时,输入2^2,然后选中2^2,点a/b按键,即可。
关于CAD字体的设置技巧
分类:CAD应用
关于CAD字体的设置技巧
分类:ACAD
在转化ACAD图纸的过程中,经常出现字体不匹配,出现乱码等问题,现将部分问题的解决方法分享。
1.ACAD的低版本文件,如R13(及R13以下)的DWG文件,用R14(及R14以上)版本打开时,即使正确地选择了汉字字形文件,还是会出现汉字乱码,原因是R14(及R14以上)与R13(及R13以下)采用的代码页不同。解决办法:可到AutoDesk公司主页下载代码页转换工具wnewcp工具进行转换,如原图为简体中文,选择转换为GB2312或ANSI936均可。
2.在一个块里写字,如在标题栏里写字,一些内容太长造成文字出界,在acad2000以前的版本里无法调整块里面的文字属性(即无法调整块中块),只能采用炸开的办法再调整文字属性。解决办法:升级到acad2002,它的块里面可以更改下一层块的属性。
3.当数字与文字混合输入时,高度不一,通常来说数字比文字的高度大一点。解决办法:我通常数字用用style指令指定数字用GBENOR字体(ACAD自带,字高比其它字体矮),文字用HZTXT字体(如没有HZTXT字体,可根据感觉另选字体代替)。
4.打开其他公司的CAD图纸,提示无图纸中的某字体,但用其他字体替代后,出现乱码。解决办法:新建一文档,将该CAD图纸作为一个块插入,乱码将会消失(但字体会与原图有出入,若需100%准确,则需要对方通过匹配的字体)。
离线fanmingchan

发帖
402
土币
1
威望
2683
原创币
0
只看该作者 341楼 发表于: 2008-10-24
2007.5.17 10:25 作者:蓝色海  收藏 | 评论:0
AutoCAD典型应用技巧五则
分类:CAD应用
AutoCAD在中国的应用已经有很多年了,这里再次谈到它的应用技巧似乎有些老生常谈。但编辑还是想把这篇文章介绍给广大读者朋友们,因为掌握好软件的应用技巧,不但能够提高自身的设计水平,还可以大大地提高设计效率的,是有百益而无一害的。
    在计算机辅助设计软件中,AutoCAD无疑是应用最普遍的,每个工程技术人员都有一些自己的使用经验。其中有些经验不易直接从书籍获取,也难靠自己摸索得来。下面介绍笔者多年来积累的一些教学经验技巧,在实际应用中合理地使用这些技巧能大大提高绘图的效率和质量。
一、妙用夹点编辑命令
    在使用夹点编辑命令时,很多人把该命令仅仅当成STRETCH(拉伸)、MOVE(移动)、ROTATE(旋转)、SCALE(缩放)和MIRROR(镜像)等单个命令的简单重复。实际上,如果灵活运用该命令中丰富的编辑方式并巧妙组合,能大大提高绘图效率。基于AutoCAD较强的实践性,现以图1为例,说明夹点编辑命令的巧妙运用。步骤如下:
    1.作直径为1的半圆;
    2.在Command状态下,拾取半圆,激活左或右端点为关键点,待命令行出现拉伸提示时,按三次回车键至比例缩放,选择复制选项并依次输入比例缩放因子1/6、2/6、3/6、4/6、5/6;
    3.再次运用夹点编辑命令中的旋转结合复制将前两步绘制出的图形旋转180°即可。(注意:此时关键点选择为直径为1的半圆的圆心)

图1 用夹点编辑命令绘制圆形
二、矩形倒圆(直)角命令的应用
    AutoCAD创建矩形,一般采用直接输入长宽的数值或选择端点的方式来完成。实际上,还可以利用矩形命令里倒直角或圆角的方式高效快速地绘制带有直角或圆角的图形。点击“矩形”按钮或输入“rec”命令后,首先根据提示选择“f”或“c”参数,确定圆角半径或直角距离,再输入矩形的长和宽即可。现以图2为例,说明矩形倒圆(直)角命令的巧妙运用。
 
离线不懂异度

发帖
744
土币
6
威望
1824
原创币
0
只看该作者 342楼 发表于: 2008-10-24
岩土工程工作是一项理论性和实践性都很强的工作,属于理论指导实践,实践又修正理论,实践和理论反复修正一项工作。作为我们一名从事岩土工作人员,一定要加强理论学习(看规范、手册、课本、期刊、论文、设计案例等,最好可以多参加业内会议)、学习掌握一些常用的岩土计算软件(最好能够掌握一种有限元计算的软件,自己可以二次开发)、多到施工现场看看、多参加点工程例会、对自己做过的没个项目要进行实测数据和理论计算结果的对比分析,从而可以不断的提高自己的水平。这是本人从事三年多岩土工作的一点体会。
岩土工作确实一项很苦,很不体面的工作,有的兄弟还要过着漂泊的生活,对自己的家庭照顾的很少,更多的时候我们的工程师们还多跟农民工打交道。很理解你们,向奋斗在一线的岩土工作者同行们致敬,你们是好样的!!!
共1条评分
我喜欢绿色 鲜花 +1 - 2008-10-24
离线guowang_119

发帖
120
土币
454
威望
455
原创币
0
只看该作者 343楼 发表于: 2008-10-24
楼主,说的很对啊
sadsa
离线larry198415
发帖
52
土币
1395
威望
134
原创币
0
只看该作者 344楼 发表于: 2008-10-25
现在的岩土工程是只要是赚钱的什么都干,只要接到活自己能干就干,自己干不了就找人干!悲哀!
离线rocksalt

发帖
443
土币
4618
威望
488
原创币
0
只看该作者 345楼 发表于: 2008-10-25
一提岩土就让我想到老专家
离线geofeng

发帖
2162
土币
28120
威望
7126
原创币
0
只看该作者 346楼 发表于: 2008-10-25
348 楼很理解奋斗在一线的岩土工作者同行们,你也是好样的!!!
离线linmoom

发帖
163
土币
786
威望
174
原创币
0
只看该作者 347楼 发表于: 2008-10-25
不必惊叹啊 本来我们都是很朴实的人
快速回复
限100 字节
温馨提示:欢迎交流讨论,请勿纯表情、纯引用!
 
上一个 下一个

      https://beian.mps.gov.cn/ 粤公网安备 44010602012919号 广州半山岩土网络科技有限公司 粤ICP备2024274469号

      工业和信息化部备案管理系统网站