Browse Source

删除错误的

lingmin_package@163.com 1 month ago
parent
commit
402b22c4b4
100 changed files with 2157 additions and 0 deletions
  1. 1 0
      README.md
  2. 499 0
      file_processors/extract_bfp.py
  3. 662 0
      file_processors/lookup_bfp.py
  4. 6 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1000.md
  5. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1000_metadata.json
  6. 6 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1001.md
  7. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1001_metadata.json
  8. 4 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1002.md
  9. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1002_metadata.json
  10. 4 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1003.md
  11. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1003_metadata.json
  12. 11 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1004.md
  13. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1004_metadata.json
  14. 6 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1005.md
  15. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1005_metadata.json
  16. 6 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1006.md
  17. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1006_metadata.json
  18. 8 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1007.md
  19. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1007_metadata.json
  20. 10 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1008.md
  21. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1008_metadata.json
  22. 6 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1009.md
  23. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1009_metadata.json
  24. 4 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1010.md
  25. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1010_metadata.json
  26. 8 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1011.md
  27. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1011_metadata.json
  28. 6 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1012.md
  29. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1012_metadata.json
  30. 9 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1013.md
  31. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1013_metadata.json
  32. 6 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1014.md
  33. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1014_metadata.json
  34. 6 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1015.md
  35. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1015_metadata.json
  36. 6 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1016.md
  37. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1016_metadata.json
  38. 10 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1017.md
  39. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1017_metadata.json
  40. 5 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1018.md
  41. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1018_metadata.json
  42. 8 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1019.md
  43. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1019_metadata.json
  44. 4 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1020.md
  45. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1020_metadata.json
  46. 6 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1021.md
  47. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1021_metadata.json
  48. 6 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1022.md
  49. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1022_metadata.json
  50. 4 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1023.md
  51. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1023_metadata.json
  52. 8 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1024.md
  53. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1024_metadata.json
  54. 8 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1025.md
  55. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1025_metadata.json
  56. 8 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1026.md
  57. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1026_metadata.json
  58. 10 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1027.md
  59. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1027_metadata.json
  60. 12 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1028.md
  61. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1028_metadata.json
  62. 6 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1029.md
  63. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1029_metadata.json
  64. 15 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1030.md
  65. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1030_metadata.json
  66. 11 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1031.md
  67. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1031_metadata.json
  68. 12 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1032.md
  69. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1032_metadata.json
  70. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1033.md
  71. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1033_metadata.json
  72. 8 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1034.md
  73. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1034_metadata.json
  74. 7 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1035.md
  75. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1035_metadata.json
  76. 12 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1036.md
  77. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1036_metadata.json
  78. 10 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1037.md
  79. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1037_metadata.json
  80. 4 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1038.md
  81. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1038_metadata.json
  82. 8 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1039.md
  83. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1039_metadata.json
  84. 8 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1040.md
  85. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1040_metadata.json
  86. 8 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1041.md
  87. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1041_metadata.json
  88. 4 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1042.md
  89. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1042_metadata.json
  90. 6 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1043.md
  91. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1043_metadata.json
  92. 12 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1044.md
  93. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1044_metadata.json
  94. 6 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1045.md
  95. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1045_metadata.json
  96. 8 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1046.md
  97. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1046_metadata.json
  98. 4 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1047.md
  99. 13 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1047_metadata.json
  100. 8 0
      test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1048.md

+ 1 - 0
README.md

@@ -12,6 +12,7 @@
     - gunicorn -c gunicorn_config.py server.app:app       多进程启动
 
 
+pip install pdfplumber -i https://mirrors.aliyun.com/pypi/simple/
 
 
 ### 文档处理

+ 499 - 0
file_processors/extract_bfp.py

@@ -0,0 +1,499 @@
+
+import os
+import re
+from collections import OrderedDict
+from langchain_community.document_loaders import PyMuPDFLoader
+from docx import Document
+
+INPUT_FOLDER = "F:\网讯创智\项目集\路桥项目资料\施工方案及编制依据案例库(第一阶段)\施工方案文档列表"  # 替换为你的文件夹路径
+OUTPUT_FILE = "F:\网讯创智\项目集\路桥项目资料\施工方案及编制依据案例库(第一阶段)\施工方案文档列表/output/basis_summary.txt"
+
+os.makedirs(os.path.dirname(OUTPUT_FILE), exist_ok=True)
+
+def extract_text_from_pdf(pdf_path):
+    """使用 PyMuPDFLoader 快速提取 PDF 文本"""
+    try:
+        loader = PyMuPDFLoader(file_path=pdf_path)
+        docs = loader.load()
+        # 合并所有页面的 text
+        text = "\n".join([doc.page_content for doc in docs])
+        return text
+    except Exception as e:
+        print(f"⚠️ PDF 读取失败 {pdf_path}: {e}")
+        return ""
+
+def extract_text_from_docx(docx_path):
+    """从 .docx 提取文本"""
+    try:
+        doc = Document(docx_path)
+        return "\n".join([para.text for para in doc.paragraphs])
+    except Exception as e:
+        print(f"⚠️ DOCX 读取失败 {docx_path}: {e}")
+        return ""
+
+def extract_text_from_doc(doc_path):
+    """不支持 .doc,提示转换"""
+    print(f"❌ 不支持 .doc 文件,请转为 .docx 或 .pdf: {doc_path}")
+    return ""
+
+
+import re
+
+
+def find_basis_section_revised(text):
+    """
+    查找“编制依据”章节的完整内容,支持跨页、容忍页眉页脚、避免过早截断
+    """
+    # 匹配 "一) 编制依据" 或 "第一章 编制依据与说明" 这样的标题行
+    # 捕获整个标题行,我们将从这一行的下一行开始提取
+    # pattern = (
+    #     r'^\s*'  # 匹配行首的空白
+    #     r'('
+    #     r'(?:第[0-9一二三四五六七八九十]+[章节]\s*)?'  # 可选的章节号
+    #     r'(?:[0-9一二三四五六七八九十ⅠⅡⅢⅣⅤ\.]+[\.、\)]?\s*)?'  # 可选的编号
+    #     r'(?:编制\s*依\s*据|编\s*制\s*依\s*据)'
+    #     r'(?:[与和]说明|[\s\r\n])*'  # 可选的“与说明”或空格
+    #     r')'
+    #     r'\s*$',  # 匹配到行尾
+    # )
+    pattern = (
+        r'(?:^|\n)\s*'
+        r'(?:'
+        r'(?:第[0-9一二三四五六七八九十]+[章节]\s*)'  # 匹配 第一章, 第一节
+        r'|'
+        r'(?:[0-9一二三四五六七八九十ⅠⅡⅢⅣⅤ\.]+[\.、]?\s*)'  # 匹配 1. 或 一、
+        r')?'
+        r'(?:编制\s*依\s*据|编\s*制\s*依\s*据)'
+    )
+
+    # 使用 re.MULTILINE 模式匹配行首 `^`
+    matches = list(re.finditer(pattern, text, re.IGNORECASE | re.MULTILINE))
+
+    if not matches:
+        return None
+
+    # 总是取最后一个匹配作为起点,以防存在“引言/概述”等部分的重复引用
+    match = matches[-1]
+    start = match.end()  # 标题行结束的位置(即下一行开始)
+
+    remaining = text[start:]
+    lines = remaining.splitlines(keepends=True)
+    captured = []
+
+    for line in lines:
+        stripped = line.strip()
+
+        # 跳过空行、纯数字行(页码)、或纯点号行(页眉/目录残余)
+        if not stripped or stripped.isdigit() or re.match(r'^\.{3,}$', stripped):
+            captured.append(line)
+            continue
+
+        # 判断是否为“新章节开头”
+        # 严格判断:如 "2. "、"二、"、"第三章" 这种高层级标题
+        # 使用更严格的停止条件来避免误停
+        if re.match(
+                r'^\s*'
+                r'(?:'
+                r'[0-9一二三四五六七八九十ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ]+[\.、]\s+|'  # 如 "3. "、"三、"
+                r'第[一二三四五六七八九十]+[章节]'  # 如 "第三章"
+                r')',
+                stripped
+        ):
+            # 停止条件:如果该行是明显的更高层级标题,则停止
+            # 这里的`(1)`、`(2)`不应该触发停止
+            break
+
+        # 否则,视为“编制依据”内容,加入
+        captured.append(line)
+
+    # 清理尾部空白
+    content = "".join(captured).rstrip()
+
+    # 如果提取内容为空,则返回标题本身作为内容(以防内容就是标题)
+    if not content.strip():
+        return match.group(1).strip()
+
+    return content
+
+def find_basis_section(text):
+    """
+    查找“编制依据”章节的完整内容,支持跨页、容忍页眉页脚、避免过早截断
+    """
+    # 改进的正则:支持“第一章”、“1.”、“一、”等多种前缀
+    pattern = (
+        r'(?:^|\n)\s*'
+        r'(?:'
+            r'(?:第[0-9一二三四五六七八九十]+[章节]\s*)'  # 匹配 第一章, 第一节
+            r'|'
+            r'(?:[0-9一二三四五六七八九十ⅠⅡⅢⅣⅤ\.]+[\.、]?\s*)'  # 匹配 1. 或 一、
+        r')?' 
+        r'(?:编制\s*依\s*据|编\s*制\s*依\s*据)'
+    )
+    
+    matches = list(re.finditer(pattern, text, re.IGNORECASE | re.MULTILINE))
+    
+    if not matches:
+        return None
+
+    for match in matches:
+        start = match.end()
+        
+        # 检查是否为目录行(TOC)
+        # 获取当前行的完整内容
+        line_end = text.find('\n', start)
+        if line_end == -1:
+            line_end = len(text)
+        
+        full_line_content = text[match.start():line_end].strip()
+        
+        # 启发式规则:如果行末是数字且中间有连续点号,视为目录
+        if re.search(r'\.{3,}\s*\d+$', full_line_content):
+            continue
+            
+        # 提取内容
+        remaining = text[start:]
+        lines = remaining.splitlines(keepends=True)
+        captured = []
+        i = 0
+        
+        # 处理标题行剩余部分(通常为空,但如果有内容也应包含)
+        first_line_rest = lines[0] if lines else ""
+        # 如果第一行剩余部分不为空且不是目录的点号,则加入
+        if first_line_rest.strip() and not re.search(r'\.{3,}', first_line_rest):
+             captured.append(first_line_rest)
+        
+        i = 1 # 从下一行开始
+        
+        while i < len(lines):
+            line = lines[i].rstrip('\r\n')
+            stripped = line.strip()
+
+            # 跳过空行、页码行、页眉行(典型干扰)
+            if not stripped:
+                captured.append(line)
+                i += 1
+                continue
+
+            # 判断是否为“新章节开头”(保守策略:只在明显标题出现时才停止)
+            if re.match(
+                    r'^\s*'
+                    r'(?:'
+                    r'[0-9一二三四五六七八九十ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ]+[\.、]?\s+|'  # 如 "3. "、"三、"
+                    r'第[一二三四五六七八九十]+[章节]|'  # 如 "第三章"
+                    r'附件\s*[A-Za-z0-9一二三四五六七八九十]*[::]?\s*|'  # 如 "附件A"、"附件:"
+                    r'(总)?(?:概述|目录|前言|引言|参考文献|术语|定义|'
+                    r'施工组织|施工方案|安全措施|应急预案|'
+                    r'验收标准|质量保证|环境保护|职业健康|'
+                    r'附录|图[表]目录)'  # 常见下一章标题
+                    r')',
+                    stripped,
+                    re.IGNORECASE
+            ):
+                # 检查:是否可能是“编制依据”内部的子标题?(如“国家法律”、“行业规范”)
+                # 如果该行太短(<6字)且不含“章”“节”“附”等,可能是子标题,继续
+                if len(stripped) < 10 and not re.search(r'[章节附]', stripped):
+                    captured.append(line)
+                    i += 1
+                    continue
+                else:
+                    # 确认为新章节,停止
+                    break
+
+            # 否则,视为“编制依据”内容,加入
+            captured.append(line)
+            i += 1
+
+        # 合并捕获内容
+        content = "".join(captured)
+        content = content.rstrip()
+        
+        if content:
+            return content
+
+    return None
+
+def normalize_item(item):
+    """
+    Normalize item for deduplication:
+    1. Remove all whitespace.
+    2. Convert full-width punctuation to half-width.
+    3. Lowercase.
+    """
+    # Remove whitespace
+    item = re.sub(r'\s+', '', item)
+    # Full-width to half-width (simple version for common chars)
+    item = item.replace('(', '(').replace(')', ')').replace(':', ':').replace('-', '-')
+    return item.lower()
+
+
+def extract_basis_list(basis_text):
+    if not basis_text:
+        return []
+
+    clean_text = clean_misplaced_brackets(basis_text)
+    items = []
+
+    for match in re.finditer(r'《([^》]+)》', clean_text):
+        name = match.group(1).strip()
+        if not name:
+            continue
+
+        start_pos = match.end()
+        suffix = clean_text[start_pos:start_pos + 100]
+        
+        # Improved Regex
+        suffix_match = re.match(
+            r'^\s*'
+            r'('
+            # Case 1: (Standard No) - e.g. (JTG/T 3650-2020)
+            r'[(\(][A-Z0-9\s/\-\.—]+[)\)]' 
+            r'|'
+            r'[A-Z]+[/\-]?[\w\s\-\.—]*\d{4}'
+            r'|'
+            # Case 2: Standard No (No brackets)
+            r'[A-Z]+[/\-]?[A-Z]*\s*\d+[\w\-\.—]*\d{4}'
+            r'|'
+            # Case 3: Orders (Expanded)
+            # Support 【...】 or just text
+            # Support 主席令, 国务院令, 交通部令, etc.
+            # Pattern: (Bracket)? (Dept)令 (No) (Bracket)?
+            # Added \s* to handle spaces like "第 69 号"
+            r'[【\[〔]?(?:国务院|住建部|主席|交通部|国家安监总局|国家发展改革委)令\s*[〔\[\(]?\d{4}[〕\]\)]?\s*第?\s*\d+\s*号?[】\]〕]?'
+            r'|'
+            # Generic "Order No" pattern if it contains "令" and digits
+            r'[【\[〔]?[^】\]〕\n]*令\s*[〔\[\(]?\d{4}[〕\]\)]?\s*第?\s*\d+\s*号?[】\]〕]?'
+            r'|'
+            r'川建行规[〔\[\(]\d{4}[〕\]\)]\d+号?'
+            r'|\d{4}年?(?:版)?'
+            r')',
+            suffix,
+            re.IGNORECASE
+        )
+        
+        if not suffix_match:
+             partial_match = re.match(r'^\s*([A-Z]+[/\-]?[A-Z]*\s*\d+[\w\-\.]*\d{4})', suffix, re.IGNORECASE)
+             if partial_match:
+                 suffix_match = partial_match
+
+        full = f'《{name}》'
+        if suffix_match:
+            full += suffix_match.group(1)
+
+        full = re.sub(r'[;;。.,,::\s]+$', '', full).strip()
+        items.append(full)
+
+    return items
+
+
+def extract_basis_list_v1(basis_text):
+    """
+    从“编制依据”章节中提取所有《名称》及其后续标准号/文号,并进行去重和清洗。
+    """
+    if not basis_text:
+        return []
+
+    # ✅ 先清洗错位《》
+    clean_text = clean_misplaced_brackets(basis_text)
+
+    unique_items = {} # Key: Normalized Name (inside brackets), Value: Best Full String
+
+    # ✅ 现在可以安全使用正则匹配《...》
+    # 匹配《名称》,然后贪婪捕获后面的编号(最多100字符)
+    for match in re.finditer(r'《([^》]+)》', clean_text):
+        name = match.group(1).strip()
+        if not name:
+             if partial_match:
+                 suffix_match = partial_match
+
+        full = f'《{name}》'
+        has_suffix = False
+        if suffix_match:
+            full += suffix_match.group(1)
+            has_suffix = True
+
+        # 清理末尾标点
+        full = re.sub(r'[;;。.,,::\s]+$', '', full).strip()
+        
+        # Deduplication Strategy:
+
+    # ✅ 先清洗错位《》
+    clean_text = clean_misplaced_brackets(basis_text)
+
+    unique_items = {} # Key: Normalized Name (inside brackets), Value: Best Full String
+
+    # ✅ 现在可以安全使用正则匹配《...》
+    # 匹配《名称》,然后贪婪捕获后面的编号(最多100字符)
+    for match in re.finditer(r'《([^》]+)》', clean_text):
+        name = match.group(1).strip()
+        if not name:
+             if partial_match:
+                 suffix_match = partial_match
+
+        full = f'《{name}》'
+        has_suffix = False
+        if suffix_match:
+            full += suffix_match.group(1)
+            has_suffix = True
+
+        # 清理末尾标点
+        full = re.sub(r'[;;。.,,::\s]+$', '', full).strip()
+        
+        # Deduplication Strategy:
+        # Group by Name.
+        # If we have multiple entries for same Name:
+        # 1. Prefer one with Suffix over one without.
+        # 2. If both have Suffix, prefer the one that is "cleaner" (longer usually implies spaces which is better than no spaces).
+        
+        norm_name = normalize_item(name)
+        
+        if norm_name not in unique_items:
+            unique_items[norm_name] = full
+        else:
+            existing = unique_items[norm_name]
+            # If existing has no suffix but new one does, replace.
+            if existing.endswith('》') and has_suffix:
+                unique_items[norm_name] = full
+            # If both have suffix, prefer the one with spaces (usually longer)
+            elif not existing.endswith('》') and has_suffix:
+                if len(full) > len(existing): 
+                     # Check if they are roughly same content (ignoring spaces)
+                     if normalize_item(full) == normalize_item(existing):
+                         unique_items[norm_name] = full
+
+    # ✅ 兜底:无《》但含标准号的行 (Also deduplicate)
+    for line in clean_text.splitlines():
+        line = line.strip()
+        if '《' in line or not line:
+            continue
+        if (re.search(r'(规范|标准|规程|条例|规定|办法)', line) and
+                re.search(r'(GB|JTG|JGJ|JTJ|T/|DB|Q/|国务院令|住建部令|川建行规|\d{4}年)', line)):
+            cleaned = re.sub(r'[;;。.,,::\s]+$', '', line).strip()
+            
+            # For these items, we don't have a clear "Name", so we use the whole string as key
+            norm_key = normalize_item(cleaned)
+            
+            # Check if this item is already covered by an existing item (fuzzy match)
+            is_covered = False
+            for existing in unique_items.values():
+                if normalize_item(existing) == norm_key:
+                    is_covered = True
+                    break
+            
+            if not is_covered:
+                if norm_key not in unique_items:
+                    unique_items[norm_key] = cleaned
+
+    return list(unique_items.values())
+
+def clean_misplaced_brackets(text):
+    """
+    修复常见的《》错位问题:
+      - 《《xxx》》 → 《xxx》
+      - 《《xxx》 → 《xxx》
+      - 《xxx》》 → 《xxx》
+    """
+    # 情况1: 《《...》》 → 《...》
+    while '《《' in text and '》》' in text:
+        text = re.sub(r'《《([^》]+)》》', r'《\1》', text)
+
+    # 情况2: 《《...》(未闭合外层) → 《...》
+    text = re.sub(r'《《([^》]+)》', r'《\1》', text)
+
+    # 情况3: 《...》》 → 《...》
+    text = re.sub(r'《([^》]+)》》', r'《\1》', text)
+
+    # 情况4: 连续《《开头,取最后一个
+    text = re.sub(r'《+(?=[^《》]*》)', '《', text)
+
+    # 情况5: 多余的》在结尾,删除
+    text = re.sub(r'《([^》]+)》+', r'《\1》', text)
+
+    return text
+
+def process_file(file_path):
+    """处理单个文件,返回编制依据列表"""
+    ext = os.path.splitext(file_path)[1].lower()
+    text = ""
+
+    if ext == '.pdf':
+        text = extract_text_from_pdf(file_path)
+    elif ext == '.docx':
+        text = extract_text_from_docx(file_path)
+    elif ext == '.doc':
+        text = extract_text_from_doc(file_path)
+    else:
+        return []
+
+    if not text:
+        return []
+
+    basis_section = find_basis_section_revised(text)
+    if not basis_section:
+        return []
+    # 可选:再做一次整体清洗
+    basis_section = clean_misplaced_brackets(basis_section)
+    return extract_basis_list(basis_section) # 缺失编制依据的标准号
+
+def main():
+    all_basis = OrderedDict()
+    global_basis_set = set()
+
+    # 收集所有支持的文件
+    file_paths = []
+    for root, _, files in os.walk(INPUT_FOLDER):
+        for f in files:
+            if f.lower().endswith(('.pdf', '.docx')):
+                file_paths.append(os.path.join(root, f))
+            elif f.lower().endswith('.doc'):
+                print(f"⚠️ 跳过 .doc 文件(请转格式): {f}")
+
+    if not file_paths:
+        print("❌ 未找到 .pdf 或 .docx 文件")
+        return
+
+    print(f"🚀 使用 PyMuPDFLoader 处理 {len(file_paths)} 个文件...")
+
+    #file_paths = [INPUT_FOLDER+"/138_四川公路桥梁建设集团有限公司乐西高速马边至昭觉段S1-6项目经理部.pdf"]
+    #file_paths = [INPUT_FOLDER+"/142_四川路桥桥梁工程有限责任公司横钦高速公路郁江特大桥主桥工程项目经理部.pdf"]
+    #file_paths = [INPUT_FOLDER+"/44_四川公路桥梁建设集团有限公司镇巴(川陕界)至广安高速公路通广段C合同段C4项目经理部.pdf"]
+    #file_paths = [INPUT_FOLDER+"/47_四川川交路桥有限责任公司会理至禄劝(四川境)高速公路项目土建项目ZCB1-3合同段项目经理部.docx"]
+
+
+    for fp in file_paths:
+        basename = os.path.basename(fp)
+        basis_list = process_file(fp)
+        all_basis[basename] = basis_list
+        global_basis_set.update(basis_list)
+        status = f"✅ 提取 {len(basis_list)} 条" if basis_list else "⚠️ 无依据"
+        print(f"  {status} ← {basename}")
+
+    # 写入结果
+    with open(OUTPUT_FILE, 'w', encoding='utf-8') as f:
+        f.write("=" * 60 + "\n")
+        f.write("📄 各文件编制依据\n")
+        f.write("=" * 60 + "\n\n")
+
+        for name, items in all_basis.items():
+            f.write(f"📁 {name}\n")
+            if items:
+                for i, item in enumerate(items, 1):
+                    f.write(f"  {i}. {item}\n")
+            else:
+                f.write("  (未找到)\n")
+            f.write("\n" + "-" * 40 + "\n\n")
+
+        f.write("=" * 60 + "\n")
+        f.write("🌐 汇总(去重)\n")
+        f.write("=" * 60 + "\n\n")
+        for i, item in enumerate(sorted(global_basis_set), 1):
+            f.write(f"  {i}. {item}\n")
+
+    print(f"\n✅ 完成!结果保存至: {os.path.abspath(OUTPUT_FILE)}")
+    print(f"📊 唯一依据总数: {len(global_basis_set)}")
+
+    # tmp = clean_misplaced_brackets("《《中国人民共和国安全生产法》》")
+    # print(f"tmp={tmp}")
+
+
+if __name__ == "__main__":
+    main()

+ 662 - 0
file_processors/lookup_bfp.py

@@ -0,0 +1,662 @@
+import os
+import shutil
+import pandas as pd
+import json
+import re
+from pathlib import Path
+from typing import List, Dict, Tuple, Optional
+import numpy as np
+from openai import OpenAI
+from datetime import datetime
+import warnings
+
+warnings.filterwarnings('ignore')
+
+
+class FileMatcher:
+    def __init__(self, search_dirs: List[str], output_dir: str = "matched_files"):
+        """
+        初始化文件匹配器
+
+        Args:
+            search_dirs: 要搜索的目录列表
+            output_dir: 匹配文件输出目录
+        """
+        self.search_dirs = [Path(dir_path) for dir_path in search_dirs]
+        self.output_dir = Path(output_dir)
+        self.output_dir.mkdir(exist_ok=True, parents=True)
+
+        # 存储所有找到的文件路径
+        self.all_files = []
+        self.file_info = {}  # 文件名 -> [文件路径列表]
+
+        # 初始化LLM客户端
+        self.llm_client = None
+        self.use_llm = False
+
+        # 结果存储
+        self.results = []
+
+    def scan_directories(self):
+        """扫描所有目录,收集文件信息"""
+        print("正在扫描目录...")
+        for search_dir in self.search_dirs:
+            if not search_dir.exists():
+                print(f"警告: 目录不存在: {search_dir}")
+                continue
+
+            for root, dirs, files in os.walk(search_dir):
+                for file in files:
+                    file_path = Path(root) / file
+                    self.all_files.append(file_path)
+
+                    # 存储文件名到路径的映射(支持多个同名文件)
+                    file_name = file_path.name
+                    file_stem = file_path.stem
+
+                    # 同时存储完整文件名和主文件名
+                    if file_name not in self.file_info:
+                        self.file_info[file_name] = []
+                    self.file_info[file_name].append(file_path)
+
+                    if file_stem not in self.file_info:
+                        self.file_info[file_stem] = []
+                    self.file_info[file_stem].append(file_path)
+
+        print(f"共扫描到 {len(self.all_files)} 个文件")
+        print(f"索引了 {len(self.file_info)} 个不同的文件名")
+
+    def extract_main_name(self, reference: str) -> str:
+        """
+        从编制依据名称中提取主要文件名
+
+        Args:
+            reference: 原始编制依据名称
+
+        Returns:
+            提取后的主要文件名
+        """
+        # 去除各种括号和其中的内容
+        patterns = [
+            r'(.*?)', r'\(.*?\)',  # 中文和英文括号
+            r'【.*?】', r'\[.*?\]',  # 方括号
+            r'978[-–]\d[-–]\d{4}[-–]\d{4}[-–]\d',  # ISBN号
+            r'978\d{10,13}',  # ISBN号(无分隔符)
+            r'主席令.*?\d+号',  # 主席令
+            r'国务院令.*?\d+号',  # 国务院令
+            r'交通部令.*?\d+号',  # 部委令
+            r'国家安监总局令.*?\d+号',  # 安监总局令
+            r'GB[/\s]*T?\s*\d+[-–]\d+',  # 国家标准号
+            r'JGJ[/\s]*\d+[-–]\d+',  # 行业标准号
+            r'JTG[/\s]*T?\s*\d+[-–]\d+',  # 交通行业标准号
+            r'JT[/\s]*T?\s*\d+[-–]\d+',  # 交通标准号
+        ]
+
+        cleaned = reference
+        for pattern in patterns:
+            cleaned = re.sub(pattern, '', cleaned, flags=re.IGNORECASE)
+
+        # 提取《》中的内容
+        book_match = re.search(r'《([^》]+)》', cleaned)
+        if book_match:
+            cleaned = book_match.group(1)
+
+        # 清理多余字符
+        cleaned = re.sub(r'[《》\"\'\[\]()()【】]', '', cleaned)
+        cleaned = cleaned.strip(' -–\t\n')
+
+        # 如果名称太长,取前部分
+        if len(cleaned) > 50:
+            cleaned = cleaned[:50]
+
+        return cleaned if cleaned else reference
+
+    def exact_match(self, target_name: str) -> List[Tuple[Path, float]]:
+        """
+        精确匹配文件名
+
+        Args:
+            target_name: 目标文件名
+
+        Returns:
+            匹配到的文件路径列表和相似度(1.0表示完全匹配)
+        """
+        matched_files = []
+
+        # 尝试匹配完整文件名
+        for file_name, file_paths in self.file_info.items():
+            if target_name in file_name or file_name in target_name:
+                similarity = self.calculate_similarity(target_name, file_name)
+                for file_path in file_paths:
+                    matched_files.append((file_path, similarity))
+
+        # 如果找到匹配,按相似度排序
+        if matched_files:
+            matched_files.sort(key=lambda x: x[1], reverse=True)
+            return matched_files
+
+        return []
+
+    def calculate_similarity(self, str1: str, str2: str) -> float:
+        """
+        计算两个字符串的相似度(简单版)
+
+        Args:
+            str1: 字符串1
+            str2: 字符串2
+
+        Returns:
+            相似度分数 0-1
+        """
+        # 转换为小写进行比较
+        s1 = str1.lower()
+        s2 = str2.lower()
+
+        # 如果完全相等
+        if s1 == s2:
+            return 1.0
+
+        # 如果一个是另一个的子串
+        if s1 in s2 or s2 in s1:
+            return 0.9
+
+        # 计算共同字符的比例
+        set1 = set(s1)
+        set2 = set(s2)
+        intersection = set1.intersection(set2)
+        union = set1.union(set2)
+
+        if not union:
+            return 0.0
+
+        return len(intersection) / len(union)
+
+    def llm_semantic_match(self, target_name: str, candidate_files: List[Path]) -> List[Tuple[Path, float]]:
+        """
+        使用LLM进行语义相似度匹配
+
+        Args:
+            target_name: 目标文件名
+            candidate_files: 候选文件列表
+
+        Returns:
+            匹配的文件路径和相似度分数列表
+        """
+        if not self.use_llm or not candidate_files:
+            return []
+
+        try:
+            # 准备候选文件名列表(限制数量以提高效率)
+            max_candidates = 20
+            if len(candidate_files) > max_candidates:
+                # 使用简单的文件名相似度预筛选
+                candidates_with_scores = []
+                for file_path in candidate_files:
+                    file_name = file_path.name
+                    score = self.calculate_similarity(target_name, file_name)
+                    candidates_with_scores.append((file_path, score))
+
+                # 按预筛选分数排序,取前max_candidates个
+                candidates_with_scores.sort(key=lambda x: x[1], reverse=True)
+                candidate_files = [c[0] for c in candidates_with_scores[:max_candidates]]
+
+            # 构建候选文件名列表
+            candidate_names = [f"{file_path.name} (来自: {file_path.parent.name})"
+                               for file_path in candidate_files]
+
+            # 构建提示词
+            prompt = f"""请分析以下目标文件名与候选文件名之间的语义相似度。
+
+            目标文件名: "{target_name}"
+            
+            候选文件名列表:
+            {chr(10).join([f"{i + 1}. {name}" for i, name in enumerate(candidate_names)])}
+            
+            请根据文件名的语义内容(不考虑扩展名、路径等),评估每个候选文件与目标文件的相似程度。
+            返回格式要求: JSON对象,包含"matches"数组,每个元素包含"index"(候选文件序号,从1开始)、"similarity_score"(0-1之间的相似度分数)、"reason"(简要理由)。
+            只返回JSON,不要有其他内容。"""
+
+            response = self.llm_client.chat.completions.create(
+                model="Qwen/Qwen3-30B-A3B",  # 或 "gpt-4" gpt-3.5-turbo
+                messages=[
+                    {"role": "system",
+                     "content": "你是一个专业的文档管理助手,擅长分析文件名的语义相似度。请准确评估相似度并返回JSON格式结果。"},
+                    {"role": "user", "content": prompt}
+                ],
+                temperature=0.1,
+                max_tokens=1000,
+                extra_body={"enable_thinking": False}  # 通过extra_body传递额外参数
+            )
+
+            result_text = response.choices[0].message.content
+
+            # 尝试解析JSON响应
+            try:
+                # 清理可能的多余字符
+                result_text = result_text.strip()
+                if result_text.startswith('```json'):
+                    result_text = result_text[7:]
+                if result_text.endswith('```'):
+                    result_text = result_text[:-3]
+                result_text = result_text.strip()
+
+                result_json = json.loads(result_text)
+                matches = result_json.get("matches", [])
+
+                # 构建结果列表
+                results = []
+                for match in matches:
+                    idx = match.get("index", 0) - 1  # 转换为0-based索引
+                    score = match.get("similarity_score", 0)
+
+                    if 0 <= idx < len(candidate_files):
+                        results.append((candidate_files[idx], float(score)))
+
+                # 按相似度降序排序
+                results.sort(key=lambda x: x[1], reverse=True)
+                return results
+
+            except json.JSONDecodeError as e:
+                print(f"LLM返回的JSON解析失败: {e}")
+                print(f"返回内容: {result_text}")
+                return []
+
+        except Exception as e:
+            print(f"LLM匹配出错: {e}")
+            return []
+
+    def find_best_matches(self, target_name: str, use_semantic: bool = True) -> List[Tuple[Path, float]]:
+        """
+        查找最佳匹配文件
+
+        Args:
+            target_name: 目标文件名
+            use_semantic: 是否使用语义匹配
+
+        Returns:
+            匹配的文件路径和相似度列表(按相似度降序排列)
+        """
+        # 1. 首先尝试精确匹配
+        exact_matches = self.exact_match(target_name)
+
+        if exact_matches:
+            print(f"  ✓ 找到 {len(exact_matches)} 个精确/部分匹配")
+            return exact_matches
+
+        # 2. 如果没有精确匹配,使用语义匹配
+        if use_semantic and self.use_llm:
+            print(f"  ⚡ 使用LLM进行语义匹配...")
+            semantic_matches = self.llm_semantic_match(target_name, self.all_files)
+
+            if semantic_matches:
+                print(f"  ⚡ 找到 {len(semantic_matches)} 个语义匹配")
+                return semantic_matches
+
+        return []
+
+    def copy_matched_files(self, matches: List[Tuple[Path, float]], reference: str, seq_num: int):
+        """
+        复制匹配的文件到输出目录
+
+        Args:
+            matches: 匹配的文件列表
+            reference: 原始编制依据
+            seq_num: 序号
+
+        Returns:
+            复制的文件路径列表
+        """
+        copied_files = []
+
+        # 为每个编制依据创建子目录
+        safe_ref = re.sub(r'[<>:"/\\|?*]', '_', reference[:50])
+        ref_dir = self.output_dir / f"{seq_num:02d}_{safe_ref}"
+        ref_dir.mkdir(exist_ok=True)
+
+        # 复制文件(限制最多复制5个)
+        max_copy = min(5, len(matches))
+        for i, (file_path, similarity) in enumerate(matches[:max_copy]):
+            try:
+                # 创建带相似度信息的文件名
+                dest_name = f"{similarity:.3f}_{file_path.name}"
+                dest_path = ref_dir / dest_name
+                shutil.copy2(file_path, dest_path)
+                copied_files.append((dest_path, similarity))
+
+                # 同时创建不带相似度信息的副本
+                simple_dest = ref_dir / file_path.name
+                if not simple_dest.exists():
+                    shutil.copy2(file_path, simple_dest)
+
+            except Exception as e:
+                print(f"    复制文件失败 {file_path}: {e}")
+
+        return copied_files
+
+    def setup_llm(self, api_key: str, base_url: str = None):
+        """
+        设置LLM客户端
+
+        Args:
+            api_key: API密钥
+            base_url: API基础URL(可选)
+        """
+        try:
+            if base_url:
+                self.llm_client = OpenAI(api_key=api_key, base_url=base_url)
+            else:
+                self.llm_client = OpenAI(api_key=api_key)
+            self.use_llm = True
+            print("LLM客户端已初始化")
+        except Exception as e:
+            print(f"LLM初始化失败: {e}")
+            self.use_llm = False
+
+    def process_references(self, references: List[str], use_semantic: bool = True):
+        """
+        处理所有编制依据
+
+        Args:
+            references: 编制依据列表
+            use_semantic: 是否使用语义匹配
+        """
+        print(f"开始处理 {len(references)} 个编制依据...")
+
+        for idx, reference in enumerate(references, 1):
+            print(f"[{idx:02d}/{len(references)}] 处理: {reference[:60]}...")
+
+            # 提取主要文件名
+            main_name = self.extract_main_name(reference)
+
+            # 查找匹配文件
+            matches = self.find_best_matches(main_name, use_semantic)
+
+            # 复制匹配的文件
+            copied_files = []
+            if matches:
+                copied_files = self.copy_matched_files(matches, reference, idx)
+
+            # 存储结果
+            result = {
+                "序号": idx,
+                "编制依据名称": reference,
+                "提取的主要名称": main_name,
+                "匹配结果": [],
+                "最终匹配文件": None,
+                "匹配目录": None
+            }
+
+            if matches:
+                # 记录所有匹配结果
+                for i, (file_path, similarity) in enumerate(matches):
+                    result["匹配结果"].append({
+                        "排名": i + 1,
+                        "文件路径": str(file_path),
+                        "相似度": float(similarity),
+                        "文件名": file_path.name,
+                        "目录": str(file_path.parent)
+                    })
+
+                # 最佳匹配
+                best_match = matches[0]
+                result["最终匹配文件"] = best_match[0].name
+                result["匹配目录"] = str(best_match[0].parent)
+                result["最佳匹配相似度"] = float(best_match[1])
+
+                if copied_files:
+                    result["已复制文件"] = [str(path) for path, _ in copied_files]
+
+            self.results.append(result)
+
+            # 打印简要结果
+            if matches:
+                print(f"    找到 {len(matches)} 个匹配,最佳相似度: {matches[0][1]:.3f}")
+            else:
+                print(f"    ✗ 未找到匹配文件")
+
+    def save_results(self, output_file: str = "匹配结果.txt"):
+        """
+        保存匹配结果到文件
+
+        Args:
+            output_file: 输出文件名
+        """
+        output_path = Path(output_file)
+
+        with open(output_path, 'w', encoding='utf-8') as f:
+            f.write("=" * 100 + "\n")
+            f.write("编制依据文件匹配结果报告\n")
+            f.write(f"生成时间: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n")
+            f.write(f"搜索目录: {[str(d) for d in self.search_dirs]}\n")
+            f.write("=" * 100 + "\n\n")
+
+            total_refs = len(self.results)
+            total_matches = sum(1 for r in self.results if r["匹配结果"])
+            total_files = sum(len(r["匹配结果"]) for r in self.results)
+
+            f.write(f"统计摘要:\n")
+            f.write(f"- 总编制依据数: {total_refs}\n")
+            f.write(f"- 成功匹配数: {total_matches}\n")
+            f.write(f"- 总匹配文件数: {total_files}\n")
+            f.write(f"- 输出目录: {self.output_dir}\n")
+            f.write("\n" + "=" * 100 + "\n\n")
+
+            for result in self.results:
+                f.write(f"序号: {result['序号']}\n")
+                f.write(f"编制依据名称: {result['编制依据名称']}\n")
+                f.write(f"提取的主要名称: {result['提取的主要名称']}\n")
+                f.write("-" * 80 + "\n")
+
+                if result["匹配结果"]:
+                    f.write(f"匹配结果 (共 {len(result['匹配结果'])} 个,按相似度降序排列):\n\n")
+
+                    for match in result["匹配结果"]:
+                        f.write(f"  排名 #{match['排名']} | 相似度: {match['相似度']:.3f}\n")
+                        f.write(f"  文件名: {match['文件名']}\n")
+                        f.write(f"  目录: {match['目录']}\n")
+                        f.write(f"  完整路径: {match['文件路径']}\n")
+                        f.write("  " + "-" * 70 + "\n")
+
+                    f.write(f"\n最佳匹配文件: {result['最终匹配文件']}\n")
+                    f.write(f"最佳匹配目录: {result['匹配目录']}\n")
+                    f.write(f"最佳匹配相似度: {result.get('最佳匹配相似度', 0):.3f}\n")
+
+                    if "已复制文件" in result:
+                        f.write(f"已复制的文件: {len(result['已复制文件'])} 个\n")
+                        for copied in result["已复制文件"][:3]:  # 只显示前3个
+                            f.write(f"  - {copied}\n")
+                        if len(result["已复制文件"]) > 3:
+                            f.write(f"  ... 还有 {len(result['已复制文件']) - 3} 个文件\n")
+                else:
+                    f.write("匹配结果: 未找到匹配文件\n")
+
+                f.write("\n" + "=" * 100 + "\n\n")
+
+        print(f"详细结果已保存到: {output_path}")
+
+        # 同时保存为JSON格式便于后续处理
+        json_path = output_path.with_suffix('.json')
+        with open(json_path, 'w', encoding='utf-8') as f:
+            json.dump(self.results, f, ensure_ascii=False, indent=2, default=str)
+
+        print(f"JSON格式结果已保存到: {json_path}")
+
+        # 生成CSV格式的摘要
+        csv_path = output_path.with_suffix('.csv')
+        self.save_summary_csv(csv_path)
+        print(f"CSV格式摘要已保存到: {csv_path}")
+
+    def save_summary_csv(self, csv_path: Path):
+        """保存CSV格式的摘要"""
+        summary_data = []
+
+        for result in self.results:
+            row = {
+                "序号": result["序号"],
+                "编制依据名称": result["编制依据名称"],
+                "提取的主要名称": result["提取的主要名称"],
+                "是否匹配成功": "是" if result["匹配结果"] else "否",
+                "匹配文件数量": len(result["匹配结果"]),
+                "最佳匹配文件名": result.get("最终匹配文件", ""),
+                "最佳匹配相似度": result.get("最佳匹配相似度", 0),
+                "最佳匹配目录": result.get("匹配目录", "")
+            }
+            summary_data.append(row)
+
+        df = pd.DataFrame(summary_data)
+        df.to_csv(csv_path, index=False, encoding='utf-8-sig')
+
+
+def read_references_from_excel(file_path: str, sheet_name: str = 0,
+                               name_col: str = "编制依据名称") -> List[str]:
+    """
+    从Excel文件读取编制依据列表
+
+    Args:
+        file_path: Excel文件路径
+        sheet_name: 工作表名称或索引
+        name_col: 编制依据名称的列名
+
+    Returns:
+        编制依据列表
+    """
+    try:
+        df = pd.read_excel(file_path, sheet_name=sheet_name)
+
+        if name_col in df.columns:
+            references = df[name_col].dropna().astype(str).tolist()
+            print(f"从Excel读取到 {len(references)} 个编制依据")
+            return references
+        else:
+            print(f"错误: Excel文件中没有'{name_col}'列")
+            print(f"可用列: {list(df.columns)}")
+            return []
+    except Exception as e:
+        print(f"读取Excel文件失败: {e}")
+        return []
+
+
+def main():
+    """主函数"""
+    # ========== 配置部分 ==========
+
+    # 要搜索的目录列表(请修改为实际的目录)
+    SEARCH_DIRECTORIES = [
+        r"D:\download\规范标准",
+        r"F:\网讯创智\项目集\路桥项目资料\数据标准案例文档\一份完整的编制依据"
+    ]
+
+    # 输出目录
+    OUTPUT_DIR = "F:/网讯创智/项目集/路桥项目资料/施工方案及编制依据案例库(第一阶段)/编制依据列表/44-镇巴(川陕界)至广安高速公_pdf/no"
+
+    # 结果文件
+    RESULTS_FILE = "F:/网讯创智/项目集/路桥项目资料/施工方案及编制依据案例库(第一阶段)/编制依据列表/44-镇巴(川陕界)至广安高速公_pdf/编制依据匹配报告.txt"
+
+    # LLM配置(如果需要使用语义匹配)
+    USE_LLM = True  # 设置为True以启用LLM语义匹配
+    LLM_API_KEY = "ms-61bf873e-7536-42a9-b830-b12dca656e1f"  # 替换为你的API密钥
+    LLM_BASE_URL = "https://api-inference.modelscope.cn/v1/"  # 可选,如: "https://api.openai.com/v1"
+
+    # ========== 编制依据列表 ==========
+
+    # 方式1: 直接使用列表(从你的表格中复制)
+    references = [
+        "《中华人民共和国安全生产法》(978-7-5216-1908-9)",
+        "《中华人民共和国特种设备安全法》(9787511850782)",
+        "《中华人民共和国环境保护法》(978-7-5093-5354-7)",
+        "《中华人民共和国突发事件应对法》【主席令〔2007〕第69 号】",
+        "《生产安全事故报告和调查处理条例》【国务院令〔2007〕第493 号】",
+        "《建设工程质量管理条例》【国务院令〔2000〕第279 号】",
+        "《公路水运工程安全生产监督管理办法》【交通部令〔2017〕第25 号】",
+        "《劳动防护用品监督管理规定》【国家安监总局令〔2015〕第124 号】",
+        "《企业安全生产应急管理九条规定》【国家安监总局令〔2015〕第74 号】",
+        "《特种设备安全监察条例》",
+        "《国务院关于进一步加强企业安全生产工作的通知》",
+        "《大型起重机械安装安全监控管理系统实施方案》",
+        "《架桥机通用技术条件》(GB/T 26470-2011)",
+        "《起重机设计规范》(GB/T 3811-2008)",
+        "《起重机械安全规程第5 部分:桥式和门式起重机》(GB 6067.5-2014)",
+        "《电气装置安装工程起重机电气装置施工及验收规范》(GB 50256-2014)",
+        "《起重设备安装工程施工及验收规范》(GB50278-2010)",
+        "《施工现场机械设备检查技术规范》(JGJ 160-2016)",
+        "《公路桥涵施工技术规范》(JTG/T 3650-2020)",
+        "《建设工程安全生产管理条例》",
+        "《四川省安全生产条例》(2023)",
+        "《重要用途钢丝绳》(GB 8918-2006)",
+        "《起重机用钢丝绳》(GB T 34198-2017)",
+        "《起重机钢丝绳保养、维护、检验和报废》(GBT5972-2023)",
+        "《建筑施工起重吊装工程安全技术规范》(JGJ 276-2012)",
+        "《建筑施工高处作业安全技术规范》(JGJ 80-2016)",
+        "《公路工程施工安全标志设置规范》(JTT1507-2024)",
+        "《公路工程施工现场安全防护技术要求》(JTT1508-2024)",
+        "《公路水运工程临时用电技术规程》(JTT1499-2024)",
+        "《坠落防护水平生命线装置》(GB 38454-2019)",
+        "《坠落防护挂点装置》(GB30862-2014)",
+        "《钢丝绳通用技术规范》(GB/T 20118-2017)",
+        "《坠落防护安全带》(GB 6095-2021)",
+        "《一般起重用D 形和弓形锻造卸扣》(GB/T 25854-2010)",
+        "《钢丝绳夹》(GB/T 5976-2006)",
+        "《不锈钢丝绳》(GB/T 9944-2015)",
+        "《四川路桥集团超危大工程专项施工方案分级管理实施细则》",
+        "《四川路桥企业标准(2023 版)》",
+        "《质量、环境、职业健康安全管理手册》",
+        "《质量、环境、职业健康安全管理程序文件》",
+        "《桥梁上部结构施工主要工序安全作业指导书(试行)》",
+        "《桥梁公司专项施工方案管理实施细则》",
+        "《标准化施工工法》",
+        "《公路工程预制梁架设施工标准化作业手册》",
+        "《高处作业主要安全设施和防护用品配备及使用要点》",
+        "《公路建设项目高处作业安全管理要求》",
+        "《四川路桥企业标准》",
+        "《工程质量管理办法》",
+        "《桥梁隧道工程施工安全防护标准化图册》",
+        "《桥梁施工标准化设计图集》",
+        "《危险性较大工程管理实施细则》(2025)"
+    ]
+
+    # 方式2: 从Excel文件读取(如果使用这种方式,注释掉上面的列表)
+    # EXCEL_FILE = "编制依据列表.xlsx"
+    # references = read_references_from_excel(EXCEL_FILE)
+
+    # ========== 执行匹配 ==========
+
+    # 创建匹配器
+    print("初始化文件匹配器...")
+    matcher = FileMatcher(SEARCH_DIRECTORIES, OUTPUT_DIR)
+
+    # 扫描目录
+    matcher.scan_directories()
+
+    # 设置LLM(如果需要)
+    if USE_LLM:
+        matcher.setup_llm(LLM_API_KEY, LLM_BASE_URL)
+
+    # 处理编制依据
+    print("\n开始匹配文件...")
+    matcher.process_references(references, use_semantic=USE_LLM)
+
+    # 保存结果
+    print("\n保存匹配结果...")
+    matcher.save_results(RESULTS_FILE)
+
+    # 打印最终统计
+    print("\n" + "=" * 60)
+    print("匹配完成!统计信息:")
+    print("=" * 60)
+
+    total_refs = len(matcher.results)
+    successful_matches = sum(1 for r in matcher.results if r["匹配结果"])
+    total_matches = sum(len(r["匹配结果"]) for r in matcher.results)
+
+    print(f"编制依据总数: {total_refs}")
+    print(f"成功匹配的编制依据: {successful_matches}")
+    print(f"总匹配文件数: {total_matches}")
+    print(f"匹配成功率: {successful_matches / total_refs * 100:.1f}%")
+    print(f"\n匹配文件已复制到: {OUTPUT_DIR}")
+    print(f"详细报告: {RESULTS_FILE}")
+    print(f"JSON报告: {RESULTS_FILE.replace('.txt', '.json')}")
+    print(f"CSV摘要: {RESULTS_FILE.replace('.txt', '.csv')}")
+
+
+if __name__ == "__main__":
+    main()

+ 6 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1000.md

@@ -0,0 +1,6 @@
+# 10.2 预应力损失值计算
+## 部分 2
+
+10.2.4 预应力筋与孔道壁之间的摩擦引起的预应力损失,包括沿孔道长度上局部位置偏移和曲线弯道摩擦影响两部分。在计算公式中, $x$  值为从张拉端至计算截面的孔道长度;但在实际工程中,构件的高度和长度相比常很小,为简化计算,可近似取该段孔道在纵轴上的投影长度代替孔道长度; $\theta$  值应取从张拉端至计算截面的长度上预应力孔道各部分切线的夹角(以弧度计)之和。本次修订根据国内工程经验,增加了按抛物线、圆弧曲线变化的空间曲线及可分段叠加的广义空间曲线  $\theta$  弯转角的近似计算公式。
+
+研究表明,孔道局部偏差的摩擦系数  $\kappa$  值与下列因素有关:预应力筋的表面形状;孔道成型的质量;预应力筋接头的外形;预应力筋与孔壁的接触程度(孔道的尺寸,预应力筋与孔壁之间的间隙大小以及预应力筋在孔道中的偏心距大小)等。在曲线预应力筋摩擦损失中,预应力筋与曲线弯道之间摩擦引起的损失是控制因素。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1000_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "10.2 预应力损失值计算 - 部分2",
+  "level": 1,
+  "hierarchy": [
+    "10.2 预应力损失值计算"
+  ],
+  "full_title_path": "10.2 预应力损失值计算",
+  "start_line": 9701,
+  "end_line": 9720,
+  "chunk_type": "subsection",
+  "parent_title": "10.2 预应力损失值计算",
+  "sub_index": 1
+}

+ 6 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1001.md

@@ -0,0 +1,6 @@
+# 10.2 预应力损失值计算
+## 部分 3
+
+根据国内的试验研究资料及多项工程的实测数据,并参考国外规范的规定,补充了预埋塑料波纹管、无粘结预应力筋的摩擦影响系数。当有可靠的试验数据时,本规范表10.2.4所列系数值可根据实测数据确定。
+
+10.2.5 根据国内对混凝土收缩、徐变的试验研究,应考虑预应

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1001_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "10.2 预应力损失值计算 - 部分3",
+  "level": 1,
+  "hierarchy": [
+    "10.2 预应力损失值计算"
+  ],
+  "full_title_path": "10.2 预应力损失值计算",
+  "start_line": 9701,
+  "end_line": 9720,
+  "chunk_type": "subsection",
+  "parent_title": "10.2 预应力损失值计算",
+  "sub_index": 2
+}

+ 4 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1002.md

@@ -0,0 +1,4 @@
+# 10.2 预应力损失值计算
+## 部分 4
+
+力筋和普通钢筋的配筋率对  $\sigma_{l5}$  值的影响,其影响可通过构件的总配筋率  $\rho (\rho = \rho_{\mathrm{p}} + \rho_{\mathrm{s}})$  反映。在公式(10.2.5-1)~公式(10.2.5-4)中,分别给出先张法和后张法两类构件受拉区及受压区预应力筋处的混凝土收缩和徐变引起的预应力损失。公式反映了上述各项因素的影响。此计算方法比仅按预应力筋合力点处的混凝土法向预应力计算预应力损失的方法更为合理。此外,考虑到现浇后张预应力混凝土施加预应力的时间比28d龄期有所提前等因素,对上述收缩和徐变计算公式中的有关项在数值上作了调整。调整的依据为:预加力时混凝土龄期,先张法取7d,后张法取14d;理论厚度均取  $200\mathrm{mm}$  ;相对湿度为  $40\% \sim 70\%$  预加力后至使用荷载作用前延续的时间取1年的收缩应变和徐变系数终极值,并与附录K计算结果进行校核得出。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1002_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "10.2 预应力损失值计算 - 部分4",
+  "level": 1,
+  "hierarchy": [
+    "10.2 预应力损失值计算"
+  ],
+  "full_title_path": "10.2 预应力损失值计算",
+  "start_line": 9701,
+  "end_line": 9720,
+  "chunk_type": "subsection",
+  "parent_title": "10.2 预应力损失值计算",
+  "sub_index": 3
+}

+ 4 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1003.md

@@ -0,0 +1,4 @@
+# 10.2 预应力损失值计算
+## 部分 5
+
+在附录K中,本次修订的混凝土收缩应变和徐变系数终极值,是根据欧洲规范EN1992-2:《混凝土结构设计——第1部分:总原则和对建筑结构的规定》所提供的公式计算得出。混凝土收缩应变和徐变系数终极值是按周围空气相对湿度为  $40\% \sim 70\%$  及  $70\% \sim 99\%$  分别给出的。混凝土收缩和徐变引起的预应力损失简化公式是按周围空气相对湿度为  $40\% \sim 70\%$  得出的,将其用于相对湿度大于  $70\%$  的情况是偏于安全的。对泵送混凝土,其收缩和徐变引起的预应力损失值亦可根据实际情况采用其他可靠数据。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1003_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "10.2 预应力损失值计算 - 部分5",
+  "level": 1,
+  "hierarchy": [
+    "10.2 预应力损失值计算"
+  ],
+  "full_title_path": "10.2 预应力损失值计算",
+  "start_line": 9701,
+  "end_line": 9720,
+  "chunk_type": "subsection",
+  "parent_title": "10.2 预应力损失值计算",
+  "sub_index": 4
+}

+ 11 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1004.md

@@ -0,0 +1,11 @@
+# 10.3 预应力混凝土构造规定
+## 部分 1
+
+10.3.1 根据先张法预应力筋的锚固及预应力传递性能,提出了配筋净间距的要求,其数值是根据试验研究及工程经验确定的。根据多年来的工程经验,为确保预制构件的耐久性,适当增加了预应力筋净间距的限值。  
+10.3.2 先张法预应力传递长度范围内局部挤压造成的环向拉应力容易导致构件端部混凝土出现劈裂裂缝。因此端部应采取构造措施,以保证自锚端的局部承载力。所提出的措施为长期工程经
+
+验和试验研究结果的总结。近年来随着生产工艺技术的提高,也有一些预制构件不配置端部加强钢筋的情况,故在特定条件下可根据可靠的工程经验适当放宽。
+
+10.3.3~10.3.5 为防止预应力构件端部及预拉区的裂缝,根据多年工程实践经验及原规范的执行情况,这几条对各种预制构件(肋形板、屋面梁、吊车梁等)提出了配置防裂钢筋的措施。
+
+10.3.6 预应力锚具应根据现行国家标准《预应力筋用锚具、夹具和连接器》GB/T 14370、现行行业标准《预应力筋用锚具、夹具和连接器应用技术规程》JGJ 85的有关规定选用,并满足相应的质量要求。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1004_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "10.3 预应力混凝土构造规定 - 部分1",
+  "level": 1,
+  "hierarchy": [
+    "10.3 预应力混凝土构造规定"
+  ],
+  "full_title_path": "10.3 预应力混凝土构造规定",
+  "start_line": 9721,
+  "end_line": 9757,
+  "chunk_type": "subsection",
+  "parent_title": "10.3 预应力混凝土构造规定",
+  "sub_index": 0
+}

+ 6 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1005.md

@@ -0,0 +1,6 @@
+# 10.3 预应力混凝土构造规定
+## 部分 2
+
+10.3.7 规定了后张预应力筋配置及孔道布置的要求。由于对预制构件预应力筋孔道间距的控制比现浇结构构件更容易,且混凝土浇筑质量更容易保证,故对预制构件预应力筋孔道间距的规定比现浇结构构件的小。要求孔道的竖向净间距不应小于孔道直径,主要考虑曲线孔道张拉预应力筋时出现的局部挤压应力不致造成孔道间混凝土的剪切破坏。而对三级裂缝控制等级的梁提出更厚的保护层厚度要求,主要是考虑其裂缝状态下的耐久性。预留孔道的截面积宜为穿入预应力筋截面积的  $3.0 \sim 4.0$  倍,是根据工程经验提出的。有关预应力孔道的并列贴紧布置,是为方便截面较小的梁类构件的预应力筋配置。
+
+板中单根无粘结预应力筋、带状束及梁中集束无粘结预应力筋的布置要求,是根据国内推广应用无粘结预应力混凝土的工程经验作出规定的。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1005_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "10.3 预应力混凝土构造规定 - 部分2",
+  "level": 1,
+  "hierarchy": [
+    "10.3 预应力混凝土构造规定"
+  ],
+  "full_title_path": "10.3 预应力混凝土构造规定",
+  "start_line": 9721,
+  "end_line": 9757,
+  "chunk_type": "subsection",
+  "parent_title": "10.3 预应力混凝土构造规定",
+  "sub_index": 1
+}

+ 6 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1006.md

@@ -0,0 +1,6 @@
+# 10.3 预应力混凝土构造规定
+## 部分 3
+
+10.3.8 后张预应力混凝土构件端部锚固区和构件端面在预应力筋张拉后常出现两类裂缝:其一是局部承压区承压垫板后面的纵向劈裂裂缝;其二是当预应力束在构件端部偏心布置,且偏心距较大时,在构件端面附近会产生较高的沿竖向的拉应力,故产生位于截面高度中部的纵向水平端面裂缝。为确保安全可靠地将张拉力通过锚具和垫板传递给混凝土构件,并控制这些裂缝的发生和开展,在试验研究的基础上,在条文中作出了加强配筋的具体
+
+规定。为防止第一类劈裂裂缝,规范给出了配置附加钢筋的位置和配筋面积计算公式;为防止第二类端面裂缝,要求合理布置预应力筋,尽量使锚具能沿构件端部均匀布置,以减少横向拉力。当难于做到均匀布置时,为防止端面出现宽度过大的裂缝,根据理论分析和试验结果,本条提出了限制这类裂缝的竖向附加钢筋截面面积的计算公式以及相应的构造措施。本次修订允许采用强度较高的热轧带肋钢筋。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1006_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "10.3 预应力混凝土构造规定 - 部分3",
+  "level": 1,
+  "hierarchy": [
+    "10.3 预应力混凝土构造规定"
+  ],
+  "full_title_path": "10.3 预应力混凝土构造规定",
+  "start_line": 9721,
+  "end_line": 9757,
+  "chunk_type": "subsection",
+  "parent_title": "10.3 预应力混凝土构造规定",
+  "sub_index": 2
+}

+ 8 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1007.md

@@ -0,0 +1,8 @@
+# 10.3 预应力混凝土构造规定
+## 部分 4
+
+对局部承压加强钢筋,提出当垫板采用普通钢板开穿筋孔的制作方式时,可按本规范第6.6节的规定执行,采用有关局部受压承载力计算公式确定应配置的间接钢筋;而当采用整体铸造的带有二次翼缘的垫板时,本规范局部受压公式不再适用,需通过专门的试验确认其传力性能,所以应选用经按有关规范标准验证的产品,并配置规定的加强钢筋,同时满足锚具布置对间距和边距要求。所述要求可按现行行业标准《预应力筋用锚具、夹具和连接器应用技术规程》JGJ85的有关规定执行。
+
+本条规定主要是针对后张法预制构件及现浇结构中的悬臂梁等构件的端部锚固区及梁中间开槽锚固的情况提出的。
+
+10.3.9 为保证端面有局部凹进的后张预应力混凝土构件端部锚固区的强度和裂缝控制性能,根据试验和工程经验,规定了增设折线构造钢筋的防裂措施。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1007_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "10.3 预应力混凝土构造规定 - 部分4",
+  "level": 1,
+  "hierarchy": [
+    "10.3 预应力混凝土构造规定"
+  ],
+  "full_title_path": "10.3 预应力混凝土构造规定",
+  "start_line": 9721,
+  "end_line": 9757,
+  "chunk_type": "subsection",
+  "parent_title": "10.3 预应力混凝土构造规定",
+  "sub_index": 3
+}

+ 10 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1008.md

@@ -0,0 +1,10 @@
+# 10.3 预应力混凝土构造规定
+## 部分 5
+
+10.3.10、10.3.11 曲线预应力束最小曲率半径  $r_{\mathrm{p}}$  的计算公式是按本规范附录D有关素混凝土构件局部受压承载力公式推导得出,并与国外规范公式对比后确定的。 $10\phi 15$  以下常用曲线预应力钢丝束、钢绞线束的曲率半径不宜小于  $4\mathrm{m}$  是根据工程经验给出的。当后张预应力束曲线段的曲率半径过小时,在局部挤压力作用下可能导致混凝土局部破坏,故应配置局部加强钢筋,加强钢筋可采用网片筋或螺旋筋,其数量可按本规范有关配置间接钢筋局部受压承载力的计算规定确定。
+
+在预应力混凝土结构构件中,当预应力筋近凹侧混凝土保护层较薄,且曲率半径较小时,容易导致混凝土崩裂。相关计算公
+
+式按预应力筋所产生的径向崩裂力不超过混凝土保护层的受剪承载力推导得出。当混凝土保护层厚度不满足计算要求时,第10.3.11条提供了配置U形插筋用量的计算方法及构造措施,用以抵抗崩裂径向力。在计算应配置U形插筋截面面积的公式中,未计入混凝土的抗力贡献。
+
+这两条是在工程经验的基础上,参考日本预应力混凝土设计施工规范及美国AASHTO规范作出规定的。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1008_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "10.3 预应力混凝土构造规定 - 部分5",
+  "level": 1,
+  "hierarchy": [
+    "10.3 预应力混凝土构造规定"
+  ],
+  "full_title_path": "10.3 预应力混凝土构造规定",
+  "start_line": 9721,
+  "end_line": 9757,
+  "chunk_type": "subsection",
+  "parent_title": "10.3 预应力混凝土构造规定",
+  "sub_index": 4
+}

+ 6 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1009.md

@@ -0,0 +1,6 @@
+# 10.3 预应力混凝土构造规定
+## 部分 6
+
+10.3.13 为保证预应力混凝土结构的耐久性,提出了对构件端部锚具的封闭保护要求。
+
+国内外应用经验表明,对处于二b、三a、三b类环境条件下的无粘结预应力锚固系统,应采用全封闭体系。参考美国ACI和PTI的有关规定,对全封闭体系应进行不透水试验,要求安装后的张拉端、固定端及中间连接部位在不小于  $10\mathrm{kPa}$  静水压力下,保持24h不透水,具体漏水位置可用在水中加颜色等方法检查。当用于游泳池、水箱等结构时,可根据设计提出更高静水压力的要求。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1009_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "10.3 预应力混凝土构造规定 - 部分6",
+  "level": 1,
+  "hierarchy": [
+    "10.3 预应力混凝土构造规定"
+  ],
+  "full_title_path": "10.3 预应力混凝土构造规定",
+  "start_line": 9721,
+  "end_line": 9757,
+  "chunk_type": "subsection",
+  "parent_title": "10.3 预应力混凝土构造规定",
+  "sub_index": 5
+}

+ 4 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1010.md

@@ -0,0 +1,4 @@
+# 11.1 一般规定
+## 部分 1
+
+11. 1. 1、11. 1. 2 《建筑工程抗震设防分类标准》GB50223根据对各类建筑抗震性能的不同要求,将建筑分为特殊设防类、重点设防类、标准设防类和适度设防类四类,简称甲、乙、丙、丁类,并规定了各类别建筑的抗震设防标准,包括抗震措施和地震作用的确定原则。《建筑抗震设计规范》GB50011则规定,6度时的不规则建筑结构、Ⅳ类场地上较高的高层建筑和7度及以上时的各类建筑结构,均应进行多遇地震作用下的截面抗震验算,并符合有关抗震措施要求;6度时的其他建筑结构则只应符合有关抗震措施要求。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1010_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.1 一般规定 - 部分1",
+  "level": 1,
+  "hierarchy": [
+    "11.1 一般规定"
+  ],
+  "full_title_path": "11.1 一般规定",
+  "start_line": 9760,
+  "end_line": 9803,
+  "chunk_type": "subsection",
+  "parent_title": "11.1 一般规定",
+  "sub_index": 0
+}

+ 8 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1011.md

@@ -0,0 +1,8 @@
+# 11.1 一般规定
+## 部分 2
+
+在对抗震钢筋混凝土结构进行设计时,除应符合《建筑工程抗震设防分类标准》GB50223和《建筑抗震设计规范》GB50011所规定的设计原则外,其构件设计应符合本章以及本规范第1章~第10章的有关规定。本章主要对应进行抗震设计的钢筋混凝土结构主要构件类别的抗震承载力计算和抗震措施作出规定。其中包括对材料抗震性能的要求,以及框架梁、框架柱、剪力墙及连梁、梁柱节点、板柱节点、单层工业厂房中的铰接排架柱以及预应力混凝土结构构件的抗震承载力验算和相应的抗震构造要求。有关混凝土结构房屋抗震体系、房屋适用的最大高度、地震作用计算、结构稳定验算、侧向变形验算等内容,应遵守《建筑抗震设计规范》GB50011的有关规定。
+
+本次修订不再列入钢筋混凝土房屋建筑适用最大高度的规定。该规定由《建筑抗震设计规范》GB50011给出。
+
+11.1.3 抗震措施是在按多遇地震作用进行构件截面承载力设计的基础上保证抗震结构在所在地可能出现的最强地震地面运动下

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1011_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.1 一般规定 - 部分2",
+  "level": 1,
+  "hierarchy": [
+    "11.1 一般规定"
+  ],
+  "full_title_path": "11.1 一般规定",
+  "start_line": 9760,
+  "end_line": 9803,
+  "chunk_type": "subsection",
+  "parent_title": "11.1 一般规定",
+  "sub_index": 1
+}

+ 6 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1012.md

@@ -0,0 +1,6 @@
+# 11.1 一般规定
+## 部分 3
+
+具有足够的整体延性和塑性耗能能力,保持对重力荷载的承载能力,维持结构不发生严重损毁或倒塌的基本措施。其中主要包括两类措施。一类是宏观限制或控制条件和对重要构件在考虑多遇地震作用的组合内力设计值时进行调整增大;另一类则是保证各类构件基本延性和塑性耗能能力的各类抗震构造措施(其中也包括对柱和墙肢的轴压比上限控制条件)。由于对不同抗震条件下各类结构构件的抗震措施要求不同,故用“抗震等级”对其进行分级。抗震等级按抗震措施从强到弱分为一、二、三、四级。本章有关条文中的抗震措施规定将全部按抗震等级给出。根据我国抗震设计经验,应按设防类别、建筑物所在地的设防烈度、结构类型、房屋高度以及场地类别的不同分别选取不同的抗震等级。在表11.1.3中给出了丙类建筑按设防烈度、结构类型和房屋高度制定的结构中不同部分应取用的抗震等级。甲、乙类和丁类建筑的抗震等级应按《建筑工程抗震设防分类标准》GB50223的规定在表11.1.3的基础上进行调整。
+
+与02规范相比,表11.1.3作了下列主要调整:

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1012_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.1 一般规定 - 部分3",
+  "level": 1,
+  "hierarchy": [
+    "11.1 一般规定"
+  ],
+  "full_title_path": "11.1 一般规定",
+  "start_line": 9760,
+  "end_line": 9803,
+  "chunk_type": "subsection",
+  "parent_title": "11.1 一般规定",
+  "sub_index": 2
+}

+ 9 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1013.md

@@ -0,0 +1,9 @@
+# 11.1 一般规定
+## 部分 4
+
+1 考虑到框架结构的侧向刚度及抗水平力能力与其他结构类型相比相对偏弱,根据2008年汶川地震震害经验以及优化设计方案的考虑,将框架结构在9度区的最大高度限值以及其他烈度区不同抗震等级的划分高度由  $30\mathrm{m}$  降为  $24\mathrm{m}$ 。  
+2 考虑到近年来因禁用黏土砖而使层数不多的框架-剪力墙结构、剪力墙结构的建造数量增加,为了更合理地考虑房屋高度对抗震等级的影响,将框架-剪力墙结构、剪力墙结构和部分框支剪力墙结构的高度分档从两档增加为三档,对高度最低一档(小于  $24\mathrm{m}$  )适度降低了抗震等级要求。  
+3 因异形柱框架的抗震性能与一般框架有明显差异,故在表注中明确指出框架的抗震等级规定不适用于异形柱框架;异形柱框架应按有关行业标准进行设计。  
+4 根据近年来的工程经验,调整了对板柱-剪力墙结构抗震等级的有关规定。
+
+5 根据近年来的工程实践经验,明确了当框架-核心筒结构的高度低于  $60\mathrm{m}$  并符合框架-剪力墙结构的有关要求时,其抗震等级允许按框架-剪力墙结构取用。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1013_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.1 一般规定 - 部分4",
+  "level": 1,
+  "hierarchy": [
+    "11.1 一般规定"
+  ],
+  "full_title_path": "11.1 一般规定",
+  "start_line": 9760,
+  "end_line": 9803,
+  "chunk_type": "subsection",
+  "parent_title": "11.1 一般规定",
+  "sub_index": 3
+}

+ 6 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1014.md

@@ -0,0 +1,6 @@
+# 11.1 一般规定
+## 部分 5
+
+表11.1.3的另一重含义是,表中列出的结构类型也是根据我国抗震设计经验,在《建筑抗震设计规范》GB50011规定的最大高度限制条件下,适用于抗震的钢筋混凝土结构类型。
+
+11.1.4 本条给出了在选用抗震等级时,除表11.1.3外应满足的要求。其中第1款中的“结构底部的总倾覆力矩”一般是指在多遇地震作用下通过振型组合求得楼层地震剪力并换算出各楼层水平力后,用该水平力求得的底部总倾覆力矩。第2款中裙房与主楼相连时的“相关范围”,一般是指主楼周边外扩不少于三跨的裙房范围。该范围内结构的抗震等级不应低于按主楼结构确定的抗震等级,该范围以外裙房结构的抗震等级可按裙房自身结构确定。当主楼与裙房由防震缝分开时,主楼和裙房分别按自身结构确定其抗震等级。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1014_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.1 一般规定 - 部分5",
+  "level": 1,
+  "hierarchy": [
+    "11.1 一般规定"
+  ],
+  "full_title_path": "11.1 一般规定",
+  "start_line": 9760,
+  "end_line": 9803,
+  "chunk_type": "subsection",
+  "parent_title": "11.1 一般规定",
+  "sub_index": 4
+}

+ 6 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1015.md

@@ -0,0 +1,6 @@
+# 11.1 一般规定
+## 部分 6
+
+11.1.5 按本规范设置了约束边缘构件,并采取了相应构造措施的剪力墙和核心筒壁的墙肢底部,通常已具有较大的偏心受压强度储备,在罕遇水准地震地面运动下,该部位边缘构件纵筋进入屈服后变形状态的几率通常不会很大。但因墙肢底部对整体结构在罕遇地震地面运动下的抗倒塌安全性起关键作用,故设计中仍应预计到墙肢底部形成塑性铰的可能性,并对预计的塑性铰区采取保持延性和塑性耗能能力的抗震构造措施。所规定的采取抗震构造措施的范围即为“底部加强部位”,它相当于塑性铰区的高度再加一定的安全余量。该底部加强部位高度是根据试验结果及工程经验确定的。其中,为了简化设计,只考虑了高度条件。本次修订根据经验将02版规范规定的确定底部加强部位高度的条件之一,即不小于总高度的1/8改为1/10;并明确,当墙肢嵌固端设置在地下室顶板以下时,底部加强部位的高度仍从地下室顶板算起,但相应抗震构造措施应向下延伸到设定的嵌固端处。
+
+11.1.6 表 11.1.6 中各类构件的承载力抗震调整系数  $\gamma_{\mathrm{RE}}$  是根据

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1015_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.1 一般规定 - 部分6",
+  "level": 1,
+  "hierarchy": [
+    "11.1 一般规定"
+  ],
+  "full_title_path": "11.1 一般规定",
+  "start_line": 9760,
+  "end_line": 9803,
+  "chunk_type": "subsection",
+  "parent_title": "11.1 一般规定",
+  "sub_index": 5
+}

+ 6 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1016.md

@@ -0,0 +1,6 @@
+# 11.1 一般规定
+## 部分 7
+
+现行国家标准《建筑抗震设计规范》GB50011的规定给出的。该系数是在该规范采用的多遇地震作用取值和地震作用分项系数取值的前提下,为了使多遇地震作用组合下的各类构件承载力具有适宜的安全性水准而采取的对抗力项的必要调整措施。此次修订,根据需要,补充了受冲切承载力计算的承载力抗震调整系数  $\gamma_{\mathrm{RE}}$  。
+
+本次修订把02版规范分别写在框架梁、框架柱及框支柱以及剪力墙各节中的抗震正截面承载力计算规定统一汇集在本条内集中表示,即所有这些构件的正截面设计均可按非抗震情况下正截面设计的同样方法完成,只需在承载力计算公式右边除以相应的承载力抗震调整系数  $\gamma_{\mathrm{RE}}$  。这样做的理由是,大量各类构件的试验研究结果表明,构件多次反复受力条件下滞回曲线的骨架线与一次单调加载的受力曲线具有足够程度的一致性。故对这些构件的抗震正截面计算方法不需要像对抗震斜截面受剪承载力计算方法那样在静力设计方法的基础上进行调整。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1016_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.1 一般规定 - 部分7",
+  "level": 1,
+  "hierarchy": [
+    "11.1 一般规定"
+  ],
+  "full_title_path": "11.1 一般规定",
+  "start_line": 9760,
+  "end_line": 9803,
+  "chunk_type": "subsection",
+  "parent_title": "11.1 一般规定",
+  "sub_index": 6
+}

+ 10 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1017.md

@@ -0,0 +1,10 @@
+# 11.1 一般规定
+## 部分 8
+
+11.1.7 在地震作用下,钢筋在混凝土中的锚固端可能处于拉、压反复受力状态或拉力大小交替变化状态。其粘结锚固性能较静力粘结锚固性能偏弱(锚固强度退化,锚固段的滑移量偏大)。为保证在反复荷载作用下钢筋与其周围混凝土之间具有必要的粘结锚固性能,根据试验结果并参考国外规范的规定,在静力要求的纵向受拉钢筋锚固长度  $l_{\mathrm{a}}$  的基础上,对一、二、三级抗震等级的构件,规定应乘以不同的锚固长度增大系数。
+
+对允许采用搭接接头的钢筋,其考虑抗震要求的搭接长度应根据搭接接头百分率取纵向受拉钢筋的抗震锚固长度  $l_{\mathrm{aE}}$  ,乘以纵向受拉钢筋搭接长度修正系数  $\zeta$  。
+
+梁端、柱端是潜在塑性铰容易出现的部位,必须预计到塑性铰区内的受拉和受压钢筋都将屈服,并可能进入强化阶段。为了避免该部位的各类钢筋接头干扰或削弱钢筋在该部位所应具有的较大的屈服后伸长率,规范要求钢筋连接接头宜尽量避开梁端、柱端箍筋加密区。当工程中无法避开时,应采用经试验确定的与
+
+母材等强度并具有足够伸长率的高质量机械连接接头或焊接接头,且接头面积百分率不宜超过  $50\%$  。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1017_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.1 一般规定 - 部分8",
+  "level": 1,
+  "hierarchy": [
+    "11.1 一般规定"
+  ],
+  "full_title_path": "11.1 一般规定",
+  "start_line": 9760,
+  "end_line": 9803,
+  "chunk_type": "subsection",
+  "parent_title": "11.1 一般规定",
+  "sub_index": 7
+}

+ 5 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1018.md

@@ -0,0 +1,5 @@
+# 11.1 一般规定
+## 部分 9
+
+11.1.8 箍筋对抗震设计的混凝土构件具有重要的约束作用,采用封闭箍筋、连续螺旋箍筋和连续复合矩形螺旋箍筋可以有效提高对构件混凝土和纵向钢筋的约束效果,改善构件的抗震延性。对于绑扎箍筋,试验研究和震害经验表明,对箍筋末端的构造要求是保证地震作用下箍筋对混凝土和纵向钢筋起到有效约束作用的必要条件。本次修订强调采用焊接封闭箍筋,主要是倡导和适应工厂化加工配送钢筋的需求。  
+11.1.9 预埋件反复荷载作用试验表明,弯剪、拉剪、压剪情况下锚筋的受剪承载力降低的平均值在  $20\%$  左右。对预埋件,规定取  $\gamma_{\mathrm{RE}}$  等于1.0,故将考虑地震作用组合的预埋件的锚筋截面积偏保守地取为静力计算值的1.25倍,锚筋的锚固长度偏保守地取为静力值的1.10倍。构造上要求在靠近锚板的锚筋根部设置一根直径不小于  $10\mathrm{mm}$  的封闭箍筋,以起到约束端部混凝土、保证受剪承载力的作用。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1018_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.1 一般规定 - 部分9",
+  "level": 1,
+  "hierarchy": [
+    "11.1 一般规定"
+  ],
+  "full_title_path": "11.1 一般规定",
+  "start_line": 9760,
+  "end_line": 9803,
+  "chunk_type": "subsection",
+  "parent_title": "11.1 一般规定",
+  "sub_index": 8
+}

+ 8 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1019.md

@@ -0,0 +1,8 @@
+# 11.2 材料
+## 部分 1
+
+11.2.1 本条根据抗震性能要求给出了混凝土最高和最低强度等级的限制。由于混凝土强度对保证构件塑性铰区发挥延性能力具有较重要作用,故对重要性较高的框支梁、框支柱、延性要求相对较高的一级抗震等级的框架梁和框架柱以及受力复杂的梁柱节点的混凝土最低强度等级提出了比非抗震情况更高的要求。
+
+近年来国内高强度混凝土的试验研究和工程应用已有很大进展,但因高强度混凝土表现出的明显脆性,以及因侧向变形系数偏小而使箍筋对它的约束效果受到一定削弱,故对地震高烈度区高强度混凝土的应用作了必要的限制。
+
+11.2.2 结构构件中纵向受力钢筋的变形性能直接影响结构构件在地震力作用下的延性。考虑地震作用的框架梁、框架柱、支撑、剪力墙边缘构件的纵向受力钢筋宜选用HRB400、HRB500

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1019_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.2 材料 - 部分1",
+  "level": 1,
+  "hierarchy": [
+    "11.2 材料"
+  ],
+  "full_title_path": "11.2 材料",
+  "start_line": 9804,
+  "end_line": 9817,
+  "chunk_type": "subsection",
+  "parent_title": "11.2 材料",
+  "sub_index": 0
+}

+ 4 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1020.md

@@ -0,0 +1,4 @@
+# 11.2 材料
+## 部分 2
+
+牌号热轧带肋钢筋;箍筋宜选用HRB400、HRB335、HPB300、HRB500牌号热轧钢筋。对抗震延性有较高要求的混凝土结构构件(如框架梁、框架柱、斜撑等),其纵向受力钢筋应采用现行国家标准《钢筋混凝土用钢第2部分:热轧带肋钢筋》GB1499.2中牌号为HRB400E、HRB500E、HRB335E、HRBF400E、HRBF500E的钢筋。这些带“E”的钢筋牌号钢筋的强屈比、屈强比和极限应变(延伸率)均符合本规范第11.2.3条的要求;这些钢筋的强度指标及弹性模量的取值与不带“E”的同牌号热轧带肋钢筋相同,应符合本规范第4.2节的有关规定。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1020_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.2 材料 - 部分2",
+  "level": 1,
+  "hierarchy": [
+    "11.2 材料"
+  ],
+  "full_title_path": "11.2 材料",
+  "start_line": 9804,
+  "end_line": 9817,
+  "chunk_type": "subsection",
+  "parent_title": "11.2 材料",
+  "sub_index": 1
+}

+ 6 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1021.md

@@ -0,0 +1,6 @@
+# 11.2 材料
+## 部分 3
+
+11.2.3 对按一、二、三级抗震等级设计的各类框架构件(包括斜撑构件),要求纵向受力钢筋检验所得的抗拉强度实测值(即实测最大强度值)与受拉屈服强度的比值(强屈比)不小于1.25,目的是使结构某部位出现较大塑性变形或塑性铰后,钢筋在大变形条件下具有必要的强度潜力,保证构件的基本抗震承载力;要求钢筋受拉屈服强度实测值与钢筋的受拉强度标准值的比值(屈强比)不应大于1.3,主要是为了保证“强柱弱梁”、“强剪弱弯”设计要求的效果不致因钢筋屈服强度离散性过大而受到干扰;钢筋最大力下的总伸长率不应小于  $9\%$  ,主要为了保证在抗震大变形条件下,钢筋具有足够的塑性变形能力。
+
+现行国家标准《钢筋混凝土用钢 第2部分:热轧带肋钢筋》GB1499.2中牌号带“E”的钢筋符合本条要求。其余钢筋牌号是否符合本条要求应经试验确定。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1021_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.2 材料 - 部分3",
+  "level": 1,
+  "hierarchy": [
+    "11.2 材料"
+  ],
+  "full_title_path": "11.2 材料",
+  "start_line": 9804,
+  "end_line": 9817,
+  "chunk_type": "subsection",
+  "parent_title": "11.2 材料",
+  "sub_index": 2
+}

+ 6 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1022.md

@@ -0,0 +1,6 @@
+# 11.3 框架梁
+## 部分 1
+
+11.3.1 由于梁端区域能通过采取相对简单的抗震构造措施而具有相对较高的延性,故常通过“强柱弱梁”措施引导框架中的塑性铰首先在梁端形成。设计框架梁时,控制梁端截面混凝土受压区高度(主要是控制负弯矩下截面下部的混凝土受压区高度)的目的是控制梁端塑性铰区具有较大的塑性转动能力,以保证框架
+
+梁端截面具有足够的曲率延性。根据国内的试验结果和参考国外经验,当相对受压区高度控制在  $0.25 \sim 0.35$  时,梁的位移延性可达到  $4.0 \sim 3.0$  左右。在确定混凝土受压区高度时,可把截面内的受压钢筋计算在内。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1022_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.3 框架梁 - 部分1",
+  "level": 1,
+  "hierarchy": [
+    "11.3 框架梁"
+  ],
+  "full_title_path": "11.3 框架梁",
+  "start_line": 9818,
+  "end_line": 9861,
+  "chunk_type": "subsection",
+  "parent_title": "11.3 框架梁",
+  "sub_index": 0
+}

+ 4 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1023.md

@@ -0,0 +1,4 @@
+# 11.3 框架梁
+## 部分 2
+
+11.3.2 在框架结构抗震设计中,特别是一级抗震等级框架的设计中,应力求做到在罕遇地震作用下的框架中形成延性和塑性耗能能力良好的接近“梁铰型”的塑性耗能机构(即塑性铰主要在梁端形成,柱端塑性铰出现数量相对较少)。这就需要在设法保证形成接近梁铰型塑性机构的同时,防止梁端塑性铰区在梁端达到罕遇地震下预计的塑性变形状态之前发生脆性的剪切破坏。在本规范中,这一要求是从两个方面来保证的。一方面对梁端抗震受剪承载力提出合理的计算公式,另一方面在梁端进入屈服后状态的条件下适度提高梁端经结构弹性分析得出的截面组合剪力设计值(后一个方面即为通常所说的“强剪弱弯”措施或“组合剪力设计值增强措施”)。本条给出了各类抗震等级框架组合剪力设计值增强措施的具体规定。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1023_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.3 框架梁 - 部分2",
+  "level": 1,
+  "hierarchy": [
+    "11.3 框架梁"
+  ],
+  "full_title_path": "11.3 框架梁",
+  "start_line": 9818,
+  "end_line": 9861,
+  "chunk_type": "subsection",
+  "parent_title": "11.3 框架梁",
+  "sub_index": 1
+}

+ 8 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1024.md

@@ -0,0 +1,8 @@
+# 11.3 框架梁
+## 部分 3
+
+对9度设防烈度的一级抗震等级框架和一级抗震等级的框架结构,规定应考虑左、右梁端纵向受拉钢筋可能超配等因素所形成的屈服抗弯能力偏大的不利情况,取用按实配钢筋、强度标准值,且考虑承载力抗震调整系数算得的受弯承载力值,即  $M_{\mathrm{bua}}$  作为确定增大后的剪力设计值的依据。  $M_{\mathrm{bua}}$  可按下列公式计算:
+
+$$
+M _ {\mathrm {b u a}} = \frac {M _ {\mathrm {b u k}}}{\gamma_ {\mathrm {R E}}} \approx \frac {1}{\gamma_ {\mathrm {R E}}} f _ {\mathrm {y k}} A _ {\mathrm {s}} ^ {\mathrm {a}} \left(h _ {0} - a _ {\mathrm {s}} ^ {\prime}\right)
+$$

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1024_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.3 框架梁 - 部分3",
+  "level": 1,
+  "hierarchy": [
+    "11.3 框架梁"
+  ],
+  "full_title_path": "11.3 框架梁",
+  "start_line": 9818,
+  "end_line": 9861,
+  "chunk_type": "subsection",
+  "parent_title": "11.3 框架梁",
+  "sub_index": 2
+}

+ 8 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1025.md

@@ -0,0 +1,8 @@
+# 11.3 框架梁
+## 部分 4
+
+与02版规范相比,本次修订规定在计算  $M_{\mathrm{bua}}$  的  $A_{\mathrm{s}}^{\mathrm{a}}$  中考虑受压钢筋及有效板宽范围内的板筋。这里的板筋指有效板宽范围内平行框架梁方向的板内实配钢筋。对于这里使用的有效板宽,美国ACI318-08规范规定取为与非抗震设计时相同的等效翼缘宽度,这就相当于取梁每侧6倍板厚作为有效板宽范围。这一规定是根据进入接近罕遇地震水准侧向变形状态的缩尺框架结构试验中对参与抵抗梁端负弯矩的板筋应力的实测结果确定的。欧洲
+
+规范 EN 1998 则建议取用较小的有效板宽,即每侧 2 倍板厚。这大致相当于梁端屈服后不久的受力状态。本规范建议,取用每侧 6 倍板厚的范围作为“有效板宽”,是偏于安全的。
+
+对其他情况下框架梁剪力设计值的确定,则根据不同抗震等级,直接取用与梁端考虑地震作用组合的弯矩设计值相平衡的组合剪力设计值乘以不同的增大系数。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1025_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.3 框架梁 - 部分4",
+  "level": 1,
+  "hierarchy": [
+    "11.3 框架梁"
+  ],
+  "full_title_path": "11.3 框架梁",
+  "start_line": 9818,
+  "end_line": 9861,
+  "chunk_type": "subsection",
+  "parent_title": "11.3 框架梁",
+  "sub_index": 3
+}

+ 8 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1026.md

@@ -0,0 +1,8 @@
+# 11.3 框架梁
+## 部分 5
+
+11.3.3 矩形、T形和I形截面框架梁,其受剪要求的截面控制条件是在静力受剪要求的基础上,考虑反复荷载作用的不利影响确定的。在截面控制条件中还对较高强度的混凝土考虑了混凝土强度影响系数  $\beta_{\mathrm{c}}$  。
+
+11.3.4 国内外低周反复荷载作用下钢筋混凝土连续梁和悬臂梁受剪承载力试验表明,低周反复荷载作用使梁的斜截面受剪承载力降低,其主要原因是起控制作用的梁端下部混凝土剪压区因表层混凝土在上部纵向钢筋屈服后的大变形状态下剥落而导致的剪压区抗剪强度的降低,以及交叉斜裂缝的开展所导致的沿斜裂缝混凝土咬合力及纵向钢筋暗销力的降低。试验表明,在抗震受剪承载力中,箍筋项承载力降低不明显。为此,仍以截面总受剪承载力试验值的下包线作为计算公式的取值标准,将混凝土项取为非抗震情况下的  $60\%$  ,箍筋项则不予折减。同时,对各抗震等级均近似取用相同的抗震受剪承载力计算公式,这在抗震设防烈度偏低时略偏安全。
+
+11.3.5 为了保证框架梁对框架节点的约束作用,以及减小框架梁塑性铰区段在反复受力下侧屈的风险,框架梁的截面宽度和梁的宽高比不宜过小。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1026_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.3 框架梁 - 部分5",
+  "level": 1,
+  "hierarchy": [
+    "11.3 框架梁"
+  ],
+  "full_title_path": "11.3 框架梁",
+  "start_line": 9818,
+  "end_line": 9861,
+  "chunk_type": "subsection",
+  "parent_title": "11.3 框架梁",
+  "sub_index": 4
+}

+ 10 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1027.md

@@ -0,0 +1,10 @@
+# 11.3 框架梁
+## 部分 6
+
+考虑到净跨与梁高的比值小于4的梁,作用剪力与作用弯矩的比值偏高,适应较大塑性变形的能力较差,因此,对框架梁的跨高比作了限制。
+
+11.3.6 本规范在非抗震和抗震框架梁纵向受拉钢筋最小配筋率的取值上统一取用双控方案,即一方面规定具体数值,另一方面使用与混凝土抗拉强度设计值和钢筋抗拉强度设计值相关的特征
+
+值参数进行控制。本条规定的数值是在非抗震受弯构件规定数值的基础上,参考国外经验制定的,并按纵向受拉钢筋在梁中的不同位置和不同抗震等级分别给出了最小配筋率的相应控制值。这些取值高于非抗震受弯构件的取值。
+
+本条还给出了梁端箍筋加密区内底部纵向钢筋和顶部纵向钢筋的面积比最小取值。通过这一规定对底部纵向钢筋的最低用量进行控制,一方面是考虑到地震作用的随机性,在按计算梁端不出现正弯矩或出现较小正弯矩的情况下,有可能在较强地震下出现偏大的正弯矩。故需在底部正弯矩受拉钢筋用量上给以一定储备,以免下部钢筋的过早屈服甚至拉断。另一方面,提高梁端底部纵向钢筋的数量,也有助于改善梁端塑性铰区在负弯矩作用下的延性性能。本条梁底部钢筋限值的规定是根据我国的试验结果及设计经验并参考国外规范确定的。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1027_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.3 框架梁 - 部分6",
+  "level": 1,
+  "hierarchy": [
+    "11.3 框架梁"
+  ],
+  "full_title_path": "11.3 框架梁",
+  "start_line": 9818,
+  "end_line": 9861,
+  "chunk_type": "subsection",
+  "parent_title": "11.3 框架梁",
+  "sub_index": 5
+}

+ 12 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1028.md

@@ -0,0 +1,12 @@
+# 11.3 框架梁
+## 部分 7
+
+框架梁的抗震设计除应满足计算要求外,梁端塑性铰区箍筋的构造要求极其重要,它是保证该塑性铰区延性能力的基本构造措施。本规范对梁端箍筋加密区长度、箍筋最大间距和箍筋最小直径的要求作了规定,其目的是从构造上对框架梁塑性铰区的受压混凝土提供约束,并约束纵向受压钢筋,防止它在保护层混凝土剥落后过早压屈,及其后受压区混凝土的随即压溃。
+
+本次修订将梁端纵筋最大配筋率限制不再作为强制性规定,相关规定移至本规范第11.3.7条。
+
+11.3.7~11.3.9 沿梁全长配置一定数量的通长钢筋,是考虑到框架梁在地震作用过程中反弯点位置可能出现的移动。这里“通长”的含义是保证梁各个部位都配置有这部分钢筋,并不意味着不允许这部分钢筋在适当部位设置接头。
+
+此次修订时考虑到梁端箍筋过密,难于施工,对梁箍筋加密区长度内的箍筋肢距规定作了适当放松,且考虑了箍筋直径与肢距的合理搭配,此次修订维持02版规范的规定不变。
+
+沿梁全长箍筋的配筋率  $\rho_{\mathrm{sv}}$  是在非抗震设计要求的基础上适当增大后给出的。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1028_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.3 框架梁 - 部分7",
+  "level": 1,
+  "hierarchy": [
+    "11.3 框架梁"
+  ],
+  "full_title_path": "11.3 框架梁",
+  "start_line": 9818,
+  "end_line": 9861,
+  "chunk_type": "subsection",
+  "parent_title": "11.3 框架梁",
+  "sub_index": 6
+}

+ 6 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1029.md

@@ -0,0 +1,6 @@
+# 11.4 框架柱及框支柱
+## 部分 1
+
+11.4.1 由于框架柱中存在轴压力,即使在采取必要的抗震构造措施后,其延性能力通常仍比框架梁偏小;加之框架柱是结构中的重要竖向承重构件,对防止结构在罕遇地震下的整体或局部倒塌起关键作用,故在抗震设计中通常均需采取“强柱弱梁”措施,即人为增大柱截面的抗弯能力,以减小柱端形成塑性铰的可能性。
+
+在总结2008年汶川地震震害经验的基础上,认为有必要对02版规范的柱抗弯能力增强措施作相应加强。具体做法是:对9度设防烈度的一级抗震等级框架和9度以外一级抗震等级的框架结构,要求仅按左、右梁端实际配筋(考虑梁截面受压钢筋及有效板宽范围内与梁平行的板内配筋)和材料强度标准值求得的梁端抗弯能力及相应的增强系数增大柱端弯矩;对于二、三、四级抗震等级的框架结构以及一、二、三、四级抗震等级的其他框架均分别提高了从左、右梁端考虑地震作用的组合弯矩设计值计算柱端弯矩时的增强系数。其中有必要强调的是,在按实际配筋确定梁端抗弯能力时,有效板宽范围与本规范第11.3.2条处相同,建议取用每侧6倍板厚。  

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1029_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.4 框架柱及框支柱 - 部分1",
+  "level": 1,
+  "hierarchy": [
+    "11.4 框架柱及框支柱"
+  ],
+  "full_title_path": "11.4 框架柱及框支柱",
+  "start_line": 9862,
+  "end_line": 9950,
+  "chunk_type": "subsection",
+  "parent_title": "11.4 框架柱及框支柱",
+  "sub_index": 0
+}

+ 15 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1030.md

@@ -0,0 +1,15 @@
+# 11.4 框架柱及框支柱
+## 部分 2
+
+11.4.2 为了减小框架结构底层柱下端截面和框支柱顶层柱上端和底层柱下端截面出现塑性铰的可能性,对此部位柱的弯矩设计值采用直接乘以增强系数的方法,以增大其正截面受弯承载力。本次修订对这些部位使用的增强系数作了与第11.4.1条处相呼应的调整。  
+11.4.3 对于框架柱同样需要通过设计措施防止其在达到罕遇地震对应的变形状态之前过早出现非延性的剪切破坏。为此,一方面应使其抗震受剪承载能力计算公式具有保持抗剪能力达到该变形状态的能力;另一方面应通过对柱截面作用剪力的增强措施考虑柱端截面纵向钢筋数量偏多以及强度偏高有可能带来的作用剪力增大效应。这后一方面的因素也就是柱的“强剪弱弯”措施所
+
+要考虑的因素。
+
+本次修订根据与“强柱弱梁”措施处相同的理由,相应适度增大了框架结构柱剪力的增大系数。
+
+在按柱端实际配筋计算柱增强后的作用剪力时,对称配筋矩形截面大偏心受压柱按柱端实际配筋考虑承载力抗震调整系数的正截面受弯承载力  $M_{\mathrm{cua}}$ ,可按下列公式计算:
+
+由  $\Sigma x = 0$  的条件,得出
+
+$$

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1030_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.4 框架柱及框支柱 - 部分2",
+  "level": 1,
+  "hierarchy": [
+    "11.4 框架柱及框支柱"
+  ],
+  "full_title_path": "11.4 框架柱及框支柱",
+  "start_line": 9862,
+  "end_line": 9950,
+  "chunk_type": "subsection",
+  "parent_title": "11.4 框架柱及框支柱",
+  "sub_index": 1
+}

+ 11 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1031.md

@@ -0,0 +1,11 @@
+# 11.4 框架柱及框支柱
+## 部分 3
+
+N = \frac {1}{\gamma_ {\mathrm {R E}}} \alpha_ {1} f _ {\mathrm {c}} b x
+$$
+
+由  $\Sigma M = 0$  的条件,得出
+
+$$
+\begin{array}{l} N e = N \left[ n e _ {i} + 0. 5 \left(h _ {0} - a _ {\mathrm {s}} ^ {\prime}\right) \right] \\ = \frac {1}{\gamma_ {\mathrm {R E}}} \left[ \alpha_ {1} f _ {\mathrm {c k}} b x \left(h _ {0} - 0. 5 x\right) + f _ {\mathrm {y k}} A _ {\mathrm {s}} ^ {\prime} \left(h _ {0} - a _ {\mathrm {s}} ^ {\prime}\right) \right] \\ \end{array}
+$$

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1031_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.4 框架柱及框支柱 - 部分3",
+  "level": 1,
+  "hierarchy": [
+    "11.4 框架柱及框支柱"
+  ],
+  "full_title_path": "11.4 框架柱及框支柱",
+  "start_line": 9862,
+  "end_line": 9950,
+  "chunk_type": "subsection",
+  "parent_title": "11.4 框架柱及框支柱",
+  "sub_index": 2
+}

+ 12 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1032.md

@@ -0,0 +1,12 @@
+# 11.4 框架柱及框支柱
+## 部分 4
+
+用以上二式消去  $x$  ,并取  $h = h_0 + a_{\mathrm{s}}$  ,  $a_{\mathrm{s}} = a_{\mathrm{s}}^{\prime}$  ,可得
+
+$$
+M _ {\mathrm {c u a}} = \frac {1}{\gamma_ {\mathrm {R E}}} \left[ 0. 5 \gamma_ {\mathrm {R E}} N h \left(1 - \frac {\gamma_ {\mathrm {R E}} N}{\alpha_ {1} f _ {\mathrm {c k}} b h}\right) + f _ {\mathrm {y k}} ^ {\prime} A _ {\mathrm {s}} ^ {\mathrm {a} ^ {\prime}} \left(h _ {0} - a _ {\mathrm {s}} ^ {\prime}\right) \right]
+$$
+
+式中:  $N$  ——重力荷载代表值产生的柱轴向压力设计值;
+
+$f_{\mathrm{ck}}$  ——混凝土轴心受压强度标准值;

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1032_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.4 框架柱及框支柱 - 部分4",
+  "level": 1,
+  "hierarchy": [
+    "11.4 框架柱及框支柱"
+  ],
+  "full_title_path": "11.4 框架柱及框支柱",
+  "start_line": 9862,
+  "end_line": 9950,
+  "chunk_type": "subsection",
+  "parent_title": "11.4 框架柱及框支柱",
+  "sub_index": 3
+}

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1033.md

@@ -0,0 +1,13 @@
+# 11.4 框架柱及框支柱
+## 部分 5
+
+$f_{\mathrm{yk}}^{\prime}$  ——普通受压钢筋强度标准值;
+
+$A_{\mathrm{s}}^{\mathrm{a}'}$  ——普通受压钢筋实配截面面积。
+
+对其他配筋形式或截面形状的框架柱,其  $M_{\mathrm{cua}}$  值可仿照上述方法确定。
+
+11.4.4 对一、二级抗震等级的框支柱,规定由地震作用引起的附加轴力应乘以增大系数,以使框支柱的轴向承载能力适应因地震作用而可能出现的较大轴力作用情况。  
+11.4.5 对一、二、三、四级抗震等级的框架角柱,考虑到以往震害中角柱震害相对较重,且受扭转、双向剪切等不利作用,其受力复杂,当其内力计算按两个主轴方向分别考虑地震作用时,其弯矩、剪力设计值应取经调整后的弯矩、剪力设计值再乘以不小于1.1的增大系数。
+
+11.4.6 本条规定了框架柱、框支柱的受剪承载力上限值,也就是按受剪要求提出的截面尺寸限制条件,它是在非抗震限制条件基础上考虑反复荷载影响后给出的。  

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1033_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.4 框架柱及框支柱 - 部分5",
+  "level": 1,
+  "hierarchy": [
+    "11.4 框架柱及框支柱"
+  ],
+  "full_title_path": "11.4 框架柱及框支柱",
+  "start_line": 9862,
+  "end_line": 9950,
+  "chunk_type": "subsection",
+  "parent_title": "11.4 框架柱及框支柱",
+  "sub_index": 4
+}

+ 8 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1034.md

@@ -0,0 +1,8 @@
+# 11.4 框架柱及框支柱
+## 部分 6
+
+11.4.7 抗震钢筋混凝土框架柱的受剪承载力计算公式需保证柱在框架达到其罕遇地震变形状态时仍不致发生剪切破坏,从而防止在以往多次地震中发现的柱剪切破坏。具体方法仍是将非抗震受剪承载力计算公式中的混凝土项乘以0.6,箍筋项则保持不变。该公式经试验验证能够达到使柱在强震非弹性变形过程中不形成过早剪切破坏的控制目标。  
+11.4.8 本条给出了偏心受拉抗震框架柱和框支柱的受剪承载力计算公式。该公式是在非抗震偏心受拉构件受剪承载力计算公式的基础上,通过对混凝土项乘以0.6后得出的。由于轴向拉力对抗剪能力起不利作用,故对公式中的轴向拉力项不作折减。  
+11.4.9、11.4.10 这两条是本次修订新增条文,是在非抗震偏心受压构件双向受剪承载力限制条件和计算公式的基础上,考虑反复荷载影响后得出的。
+
+根据国内在低周反复荷载作用下双向受剪钢筋混凝土柱的试验结果,对双向受剪承载力计算公式仍采用在非抗震公式的基础上只对混凝土项进行折减,箍筋项则不予折减的做法。这意味着与非抗震情况下的方法相同,考虑到计算方法的简洁,对于两向相关的影响,在双向受剪承载力计算公式中仍采用椭圆模式表达。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1034_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.4 框架柱及框支柱 - 部分6",
+  "level": 1,
+  "hierarchy": [
+    "11.4 框架柱及框支柱"
+  ],
+  "full_title_path": "11.4 框架柱及框支柱",
+  "start_line": 9862,
+  "end_line": 9950,
+  "chunk_type": "subsection",
+  "parent_title": "11.4 框架柱及框支柱",
+  "sub_index": 5
+}

+ 7 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1035.md

@@ -0,0 +1,7 @@
+# 11.4 框架柱及框支柱
+## 部分 7
+
+11.4.11 2008年汶川地震震害经验表明,当柱截面选用过小但仍符合02版规范要求时,即使按要求完成了抗震设计,由于多种偶然因素影响,结构中的框架柱仍有可能震害偏重。为此,对02版规范中框架柱截面尺寸的限制条件从偏安全的角度作了适当调整。  
+11.4.12 框架柱纵向钢筋最小配筋率是抗震设计中的一项较重要的构造措施。其主要作用是:考虑到实际地震作用在大小及作用方式上的随机性,经计算确定的配筋数量仍可能在结构中造成
+
+某些估计不到的薄弱构件或薄弱截面;通过纵向钢筋最小配筋率规定可以对这些薄弱部位进行补救,以提高结构整体地震反应能力的可靠性;此外,与非抗震情况相同,纵向钢筋最小配筋率同样可以保证柱截面开裂后抗弯刚度不致削弱过多;另外,最小配筋率还可以使设防烈度不高地区一部分框架柱的抗弯能力在“强柱弱梁”措施基础上有进一步提高,这也相当于对“强柱弱梁”措施的某种补充。考虑到推广应用高强钢筋以及适当提高安全度的需要,表11.4.12-1中的纵向钢筋最小配筋率值与02版规范相比有所提高,但采用  $335\mathrm{MPa}$  级钢筋仍保留了02版规范的控制水平未变。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1035_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.4 框架柱及框支柱 - 部分7",
+  "level": 1,
+  "hierarchy": [
+    "11.4 框架柱及框支柱"
+  ],
+  "full_title_path": "11.4 框架柱及框支柱",
+  "start_line": 9862,
+  "end_line": 9950,
+  "chunk_type": "subsection",
+  "parent_title": "11.4 框架柱及框支柱",
+  "sub_index": 6
+}

+ 12 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1036.md

@@ -0,0 +1,12 @@
+# 11.4 框架柱及框支柱
+## 部分 8
+
+本次修订根据工程经验对柱箍筋间距的规定作了局部调整,以利于保证混凝土的施工质量。
+
+11.4.13 当框架柱在地震作用组合下处于小偏心受拉状态时,柱的纵筋总截面面积应比计算值增加  $25\%$  ,是为了避免柱的受拉纵筋屈服后再受压时,由于包兴格效应导致纵筋压屈。
+
+为了避免纵筋配置过多,施工不便,对框架柱的全部纵向受力钢筋配筋率作了限制。
+
+柱净高与截面高度的比值为  $3\sim 4$  的短柱试验表明,此类框架柱易发生粘结型剪切破坏和对角斜拉型剪切破坏。为减少这种破坏,这类柱纵向钢筋配筋率不宜过大。为此,对一级抗震等级且剪跨比不大于2的框架柱,规定每侧纵向受拉钢筋配筋率不宜大于  $1.2\%$  ,并应沿柱全长采用复合箍筋。对其他抗震等级虽未作此规定,但也宜适当控制。
+
+11.4.14、11.4.15 框架柱端箍筋加密区长度的规定是根据试验结果及震害经验作出的。该长度相当于柱端潜在塑性铰区的范围再加一定的安全余量。对箍筋肢距作出的限制是为了保证塑性铰区内箍筋对混凝土和受压纵筋的有效约束。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1036_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.4 框架柱及框支柱 - 部分8",
+  "level": 1,
+  "hierarchy": [
+    "11.4 框架柱及框支柱"
+  ],
+  "full_title_path": "11.4 框架柱及框支柱",
+  "start_line": 9862,
+  "end_line": 9950,
+  "chunk_type": "subsection",
+  "parent_title": "11.4 框架柱及框支柱",
+  "sub_index": 7
+}

+ 10 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1037.md

@@ -0,0 +1,10 @@
+# 11.4 框架柱及框支柱
+## 部分 9
+
+11.4.16 试验研究表明,受压构件的位移延性随轴压比增加而减小,因此对设计轴压比上限进行控制就成为保证框架柱和框支柱具有必要延性的重要措施之一。为满足不同结构类型框架柱、
+
+框支柱在地震作用组合下的位移延性要求,本条规定了不同结构体系中框架柱设计轴压比的上限值。此次修订对设计轴压比上限值的规定作了以下调整:
+
+1 将设计轴压比上限值的规定扩展到四级抗震等级;  
+2 根据2008年汶川地震的震害经验,适度加严了框架结构的设计轴压比限值;  
+3 框架-剪力墙结构和筒体结构主要依靠剪力墙和内筒承受水平地震作用,其中框架部分,特别是中、下层框架,受水平地震作用的影响相对较轻。本次修订在保持02版规范对其设计轴压比给出比框架结构柱偏松的控制条件的同时,对其中个别取值作了调整。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1037_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.4 框架柱及框支柱 - 部分9",
+  "level": 1,
+  "hierarchy": [
+    "11.4 框架柱及框支柱"
+  ],
+  "full_title_path": "11.4 框架柱及框支柱",
+  "start_line": 9862,
+  "end_line": 9950,
+  "chunk_type": "subsection",
+  "parent_title": "11.4 框架柱及框支柱",
+  "sub_index": 8
+}

+ 4 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1038.md

@@ -0,0 +1,4 @@
+# 11.4 框架柱及框支柱
+## 部分 10
+
+近年来,国内外试验研究结果表明,采用螺旋箍筋、连续复合矩形螺旋箍筋等配筋方式,能在一般复合箍筋的基础上进一步提高对核心混凝土的约束效应,改善柱的位移延性性能,故规定当配置复合箍筋、螺旋箍筋或连续复合矩形螺旋箍筋,且配箍量达到一定程度时,允许适当放宽柱设计轴压比的上限控制条件。同时,国内研究表明,在钢筋混凝土柱中设置矩形核芯柱不仅能提高柱的受压承载力,也可提高柱的位移延性,且有利于在大变形情况下防止倒塌,类似于型钢混凝土结构中型钢的作用。因此,在设置矩形核芯柱,且核芯柱的纵向钢筋配置数量达到一定要求的情况下,也适当放宽了设计轴压比的上限控制条件。在放宽轴压比上限控制条件后,箍筋加密区的最小体积配筋率应按放松后的设计轴压比确定。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1038_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.4 框架柱及框支柱 - 部分10",
+  "level": 1,
+  "hierarchy": [
+    "11.4 框架柱及框支柱"
+  ],
+  "full_title_path": "11.4 框架柱及框支柱",
+  "start_line": 9862,
+  "end_line": 9950,
+  "chunk_type": "subsection",
+  "parent_title": "11.4 框架柱及框支柱",
+  "sub_index": 9
+}

+ 8 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1039.md

@@ -0,0 +1,8 @@
+# 11.4 框架柱及框支柱
+## 部分 11
+
+11.4.17 在柱端箍筋加密区内配置一定数量的箍筋(用体积配箍率衡量)是使柱具有必要的延性和塑性耗能能力的另一项重要措施。因抗震等级越高,抗震性能要求相应提高;加之轴压比越高,混凝土强度越高,也需要更高的配箍率,方能达到相同的延性;而箍筋强度越高,配箍率则可相应降低。为此,先根据抗震等级及轴压比给出所需的柱端配箍特征值,再经配箍特征值及混凝土与钢筋的强度设计值算得所需的体积配箍率。02版规范给
+
+出的配箍特征值是根据日本及我国完成的钢筋混凝土柱抗震延性性能系列试验按位移延性系数不低于3.0的标准给出的。
+
+虽然2008年汶川地震中柱端破坏情况多有发现,但规范修订组经研究,拟主要通过适度的柱抗弯能力增强措施(“强柱弱梁”措施)和适度降低框架结构柱轴压比上限条件来进一步改善框架结构柱的抗震性能。对02版规范柱端体积配箍率的规定则不作变动。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1039_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.4 框架柱及框支柱 - 部分11",
+  "level": 1,
+  "hierarchy": [
+    "11.4 框架柱及框支柱"
+  ],
+  "full_title_path": "11.4 框架柱及框支柱",
+  "start_line": 9862,
+  "end_line": 9950,
+  "chunk_type": "subsection",
+  "parent_title": "11.4 框架柱及框支柱",
+  "sub_index": 10
+}

+ 8 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1040.md

@@ -0,0 +1,8 @@
+# 11.4 框架柱及框支柱
+## 部分 12
+
+需要说明的是,因《建筑抗震设计规范》GB50011规定,对6度设防烈度的一般建筑可不进行考虑地震作用的结构分析和截面抗震验算,在按第11.4.16条及本条确定其轴压比时,轴压力可取为无地震作用组合的轴力设计值,对于6度设防烈度,建造于IV类场地上较高的高层建筑,因需进行考虑地震作用的结构分析,故应采用考虑地震作用组合的轴向力设计值。
+
+另外,当计算箍筋的体积配箍率时,各强度等级箍筋应分别采用其强度设计值,根据本规范第4.2.3条的表述,其抗拉强度设计值不受  $360\mathrm{MPa}$  的限制。
+
+11.4.18 本条规定了考虑地震作用框架柱箍筋非加密区的箍筋配置要求。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1040_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.4 框架柱及框支柱 - 部分12",
+  "level": 1,
+  "hierarchy": [
+    "11.4 框架柱及框支柱"
+  ],
+  "full_title_path": "11.4 框架柱及框支柱",
+  "start_line": 9862,
+  "end_line": 9950,
+  "chunk_type": "subsection",
+  "parent_title": "11.4 框架柱及框支柱",
+  "sub_index": 11
+}

+ 8 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1041.md

@@ -0,0 +1,8 @@
+# 11.5 铰接排架柱
+## 部分 1
+
+11.5.1、11.5.2 国内地震震害调查表明,单层厂房屋架或屋面梁与柱连接的柱顶和高低跨厂房交接处支承低跨屋盖的柱牛腿损坏较多,阶形柱上柱的震害往往发生在上下柱变截面处(上柱根部)和与吊车梁上翼缘连接的部位。为了避免排架柱在上述区段内产生剪切破坏并使排架柱在形成塑性铰后有足够的延性,这些区段内的箍筋应加密。按此构造配箍后,铰接排架柱在一般情况下可不进行受剪承载力计算。
+
+根据排架结构的受力特点,对排架结构柱不需要考虑“强柱弱梁”措施和“强剪弱弯”措施。在设有工作平台等特殊情况下,斜截面受剪承载力可能对剪跨比较小的铰接排架柱起控制作
+
+用。此时,可按本规范公式(11.4.7)进行抗震受剪承载力计算。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1041_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.5 铰接排架柱 - 部分1",
+  "level": 1,
+  "hierarchy": [
+    "11.5 铰接排架柱"
+  ],
+  "full_title_path": "11.5 铰接排架柱",
+  "start_line": 9951,
+  "end_line": 9964,
+  "chunk_type": "subsection",
+  "parent_title": "11.5 铰接排架柱",
+  "sub_index": 0
+}

+ 4 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1042.md

@@ -0,0 +1,4 @@
+# 11.5 铰接排架柱
+## 部分 2
+
+11.5.3 震害调查表明,排架柱柱头损坏最多的是侧向变形受到限制的柱,如靠近生活间或披屋的柱,或有横隔墙的柱。这种情况改变了柱的侧移刚度,使柱头处于短柱的受力状态。由于该柱的侧移刚度大于相邻各柱,当受水平地震作用的屋盖发生整体侧移时,该柱实际上承受了比相邻各柱大得多的水平剪力,使柱顶产生剪切破坏。对屋架与柱顶连接节点进行的抗震性能的试验结果表明,不同的柱顶连接形式仅对节点的延性产生影响,不影响柱头本身的受剪承载力;柱顶预埋钢板的大小和其在柱顶的位置对柱头的水平承载力有一定影响。当预埋钢板长度与柱截面高度相等时,水平受剪承载力大约是柱顶预埋钢板长度为柱截面高度一半时的1.65倍。故在条文中规定了柱顶预埋钢板长度和直锚筋的要求。试验结果还表明,沿水平剪力方向的轴向力偏心距对受剪承载力亦有影响,要求不得大于  $h / 4$  。当  $h / 6 \leqslant e_0 \leqslant h / 4$  时,一般要求柱头配置四肢箍,并按不同的抗震等级,规定不同的体积配箍率,以此来满足受剪承载力要求。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1042_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.5 铰接排架柱 - 部分2",
+  "level": 1,
+  "hierarchy": [
+    "11.5 铰接排架柱"
+  ],
+  "full_title_path": "11.5 铰接排架柱",
+  "start_line": 9951,
+  "end_line": 9964,
+  "chunk_type": "subsection",
+  "parent_title": "11.5 铰接排架柱",
+  "sub_index": 1
+}

+ 6 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1043.md

@@ -0,0 +1,6 @@
+# 11.5 铰接排架柱
+## 部分 3
+
+11.5.4 不等高厂房支承低跨屋盖的柱牛腿(柱肩梁)亦是震害较重的部位之一,最常见的是支承低跨的牛腿(肩梁)被拉裂。试验结果与工程实践均证明,为了改善牛腿和肩梁抵抗水平地震作用的能力,可在其顶面钢垫板下设水平锚筋,直接承受并传递水平力。承受竖向力所需的纵向受拉钢筋和承受水平拉力的水平锚筋的截面面积,仍按公式(9.3.11)计算。其锚固长度及锚固构造仍按本规范第9.3节的规定取用,但其中应以受拉钢筋的抗震锚固长度  $l_{\mathrm{aE}}$  代替  $l_{\mathrm{a}}$  。
+
+11.5.5 为加强柱牛腿预埋板的锚固,要把相当于承受水平拉力的纵向钢筋与预埋板焊连。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1043_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.5 铰接排架柱 - 部分3",
+  "level": 1,
+  "hierarchy": [
+    "11.5 铰接排架柱"
+  ],
+  "full_title_path": "11.5 铰接排架柱",
+  "start_line": 9951,
+  "end_line": 9964,
+  "chunk_type": "subsection",
+  "parent_title": "11.5 铰接排架柱",
+  "sub_index": 2
+}

+ 12 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1044.md

@@ -0,0 +1,12 @@
+# 11.6 框架梁柱节点
+## 部分 1
+
+11.6.1、11.6.2 02版规范规定对三、四级抗震等级的框架节
+
+点可不进行受剪承载力验算,仅需满足抗震构造措施的要求。根据近几年进行的框架结构的非线性动力反应分析结果以及对框架结构的震害调查表明,对于三级抗震等级的框架节点,仅满足抗震构造措施的要求略显不足。因此,本次修订增加了对三级抗震等级框架节点受剪承载力的验算要求,同时要求满足相应抗震构造措施。
+
+对节点剪力增大系数作了部分调整,即将二级抗震等级的1.2调整为1.25,三级抗震等级节点需要进行抗震受剪承载力计算后,增大系数取为1.1。
+
+11.6.3~11.6.6 节点截面的限制条件相当于其抗震受剪承载力的上限。这意味着当考虑了增大系数后的节点作用剪力超过其截面限制条件时,再增大箍筋已无法进一步有效提高节点的受剪承载力。
+
+框架节点的受剪承载力由混凝土斜压杆和水平箍筋两部分受剪承载力组成,其中水平箍筋是通过其对节点区混凝土斜压杆的约束效应来增强节点受剪承载力的。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1044_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.6 框架梁柱节点 - 部分1",
+  "level": 1,
+  "hierarchy": [
+    "11.6 框架梁柱节点"
+  ],
+  "full_title_path": "11.6 框架梁柱节点",
+  "start_line": 9965,
+  "end_line": 9994,
+  "chunk_type": "subsection",
+  "parent_title": "11.6 框架梁柱节点",
+  "sub_index": 0
+}

+ 6 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1045.md

@@ -0,0 +1,6 @@
+# 11.6 框架梁柱节点
+## 部分 2
+
+依据试验结果,节点核心区内混凝土斜压杆截面面积虽然可随柱端轴力的增加而稍有增加,使得在作用剪力较小时,柱轴压力的增大对防止节点的开裂和提高节点的抗震受剪承载力起一定的有利作用;但当节点作用剪力较大时,因核心区混凝土斜向压应力已经较高,轴压力的增大反而会使节点更早发生混凝土斜压型剪切破坏,从而削弱节点的抗震受剪承载力。02版规范考虑这一因素后已在9度设防烈度节点受剪承载力计算公式中取消了轴压力的有利影响。但为了不致使节点中箍筋用量增加过多,在除9度设防烈度以外的其他节点受剪承载力计算公式中,保留了轴力项的有利影响。这一做法与试验结果不符,只是一种权宜性的做法。
+
+试验证明,当节点在两个正交方向有梁且在周边有现浇板时,梁和现浇板增加了对节点区混凝土的约束,从而可以在一定程度上提高节点的受剪承载力。但若两个方向的梁截面较小,或

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1045_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.6 框架梁柱节点 - 部分2",
+  "level": 1,
+  "hierarchy": [
+    "11.6 框架梁柱节点"
+  ],
+  "full_title_path": "11.6 框架梁柱节点",
+  "start_line": 9965,
+  "end_line": 9994,
+  "chunk_type": "subsection",
+  "parent_title": "11.6 框架梁柱节点",
+  "sub_index": 1
+}

+ 8 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1046.md

@@ -0,0 +1,8 @@
+# 11.6 框架梁柱节点
+## 部分 3
+
+不是沿四周均有现浇板,则其约束作用就不明显。因此,规定在两个正交方向有梁,梁的宽度、高度都能满足一定要求,且有现浇板时,才可考虑梁与现浇板对节点的约束系数。对于梁截面较小或只沿一个方向有梁的中节点,或周边未被现浇板充分围绕的中节点,以及边节点、角节点等情况均不考虑梁对节点约束的有利影响。
+
+根据国内试验结果,参考圆柱斜截面受剪承载力计算公式的建立模型,对圆柱截面框架节点提出了受剪承载力计算方法。
+
+11.6.7 在本条规定中,对各类有抗震要求节点的构造措施作了以下调整:

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1046_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.6 框架梁柱节点 - 部分3",
+  "level": 1,
+  "hierarchy": [
+    "11.6 框架梁柱节点"
+  ],
+  "full_title_path": "11.6 框架梁柱节点",
+  "start_line": 9965,
+  "end_line": 9994,
+  "chunk_type": "subsection",
+  "parent_title": "11.6 框架梁柱节点",
+  "sub_index": 2
+}

+ 4 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1047.md

@@ -0,0 +1,4 @@
+# 11.6 框架梁柱节点
+## 部分 4
+
+1 对贯穿中间层中间节点梁筋直径与长度比值(相对直径)的限制条件,02规范主要是根据梁、柱配置  $335\mathrm{MPa}$  级纵向钢筋的节点试验结果并参考国外规范的相关规定从不致给设计中选用梁筋直径造成过大限制的偏松角度制定的。为方便应用,原规定没有体现钢筋强度及混凝土强度对梁筋粘结性能的影响,仅限制了贯穿节点梁筋的相对直径。当梁柱纵筋采用  $400\mathrm{MPa}$  级和  $500\mathrm{MPa}$  级钢筋后,反复荷载作用下的节点试验表明,梁筋的粘结退化将明显提前、加重。为保证高烈度区罕遇地震作用下使用高强钢筋的节点中梁筋粘结性能不致过度退化,本次修订将9度设防烈度的各类框架和一级抗震等级框架结构中的梁柱节点中梁筋相对直径的限制条件作了略偏严格的调整。

+ 13 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1047_metadata.json

@@ -0,0 +1,13 @@
+{
+  "title": "11.6 框架梁柱节点 - 部分4",
+  "level": 1,
+  "hierarchy": [
+    "11.6 框架梁柱节点"
+  ],
+  "full_title_path": "11.6 框架梁柱节点",
+  "start_line": 9965,
+  "end_line": 9994,
+  "chunk_type": "subsection",
+  "parent_title": "11.6 框架梁柱节点",
+  "sub_index": 3
+}

+ 8 - 0
test/bfp_chunks_files/GB50010-2010(2015版) 混凝土结构设计规范.md/chunk_1048.md

@@ -0,0 +1,8 @@
+# 11.6 框架梁柱节点
+## 部分 5
+
+2 近几年进行的框架结构非线性动力反应分析表明,顶层节点的延性需求通常比中间层节点偏小。框架震害结果也显示出顶层的震害一般比其他楼层的震害偏轻。为便于施工,在本次修订中,取消了原规范第11.6.7条第2款图11.6.7e中顶层端节点梁柱负弯矩钢筋在节点外侧搭接时柱筋在节点顶部向内水平弯折  $12d$  的要求,改为梁柱负弯矩钢筋在节点外侧直线搭接。
+
+11.6.8 本条对节点核心区的箍筋最大间距和最小直径作了规定。本次修订增加了对节点箍筋肢距的规定。同时,通过箍筋最小配箍特征值及最小体积配箍率以双控方式控制节点中的最低箍
+
+筋用量,以保证箍筋对核心区混凝土的最低约束作用和节点的基本抗震受剪承载力。

Some files were not shown because too many files changed in this diff