Skip to content

Core 660 additive manufacturing updates #403

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jan 16, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [v2.25.0] - 2025-01-16

* Bake `glossary` in `additive-manufacturing`
* Do not bake `chapter solutions` in `additive-manufacturing`
* Bake `answer key` in `additive-manufacturing`
* Add section title links to `key terms` in `additive-manufacturing`
* Remove empty `answer key` sections in `data-science`

## [v2.24.0] - 2024-10-24

Expand Down
3 changes: 2 additions & 1 deletion lib/recipes/additive-manufacturing/locales/en.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
en:
eoc:
review-questions: Review Questions
case-questions: Case Questions
practice: Case Questions
free-response: Discussion Questions
key-terms: Key Terms
exercises:
exercise: Exercise
42 changes: 34 additions & 8 deletions lib/recipes/additive-manufacturing/recipe.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@

AddInjectedExerciseId.v1(book: book)

answer_key = BookAnswerKeyContainer.v1(book: book)

book.chapters.each do |chapter|
BakeNonIntroductionPages.v1(chapter: chapter)

Expand All @@ -37,10 +39,13 @@
number: "#{chapter.count_in(:book)}.#{table.count_in(:chapter)}")
end

BakeChapterGlossary.v1(chapter: chapter, metadata_source: metadata)
BakeChapterGlossary.v2(chapter: chapter)

eoc_with_exercise = %w[review-questions case-questions free-response]
eoc_with_exercise.each do |section_key|
eoc_sections = %w[summary
review-questions
free-response
practice]
eoc_sections.each do |section_key|
MoveCustomSectionToEocContainer.v1(
chapter: chapter,
metadata_source: metadata,
Expand All @@ -52,19 +57,40 @@
end
end

selectors = 'section.review-questions, section.case-questions, section.free-response'
sections_with_module_links = %w[key-terms]
sections_with_module_links.each do |eoc_section|
MoveCustomSectionToEocContainer.v1(
chapter: chapter,
metadata_source: metadata,
container_key: eoc_section,
uuid_key: ".#{eoc_section}",
section_selector: "section.#{eoc_section}"
) do |section|
RemoveSectionTitle.v1(section: section)
title = EocSectionTitleLinkSnippet.v1(page: section.ancestor(:page))
section.prepend(child: title)
end
end

selectors = 'section.review-questions, section.practice, section.free-response'

chapter.composite_pages.search(selectors).injected_questions.each do |question|
BakeInjectedExerciseQuestion.v1(question: question, number: question.count_in(:chapter))
end

BakeAllChapterSolutionsTypes.v1(
chapter: chapter,
within: chapter.search(selectors),
metadata_source: metadata
answer_key_inner_container = AnswerKeyInnerContainer.v1(
chapter: chapter, metadata_source: metadata, append_to: answer_key
)

exercises = %w[review-questions practice free-response]
exercises.each do |klass|
Kitchen::Directions::MoveSolutionsFromExerciseSection.v1(
within: chapter, append_to: answer_key_inner_container, section_class: klass
)
end
end

AnswerKeyCleaner.v1(book: book)
BakeFootnotes.v1(book: book)
BakeIndex.v1(book: book)
BakeCompositePages.v1(book: book)
Expand Down
1 change: 1 addition & 0 deletions lib/recipes/data-science/recipe.rb
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@
BakeAppendix.v1(page: page, number: appendix_letter)
end

AnswerKeyCleaner.v1(book: book)
BakeTableColumns.v1(book: book)
BakeEquations.v1(book: book)
BakeIndex.v1(book: book)
Expand Down
137 changes: 104 additions & 33 deletions spec/recipes_spec/books/additive-manufacturing/expected_output.xhtml
Original file line number Diff line number Diff line change
Expand Up @@ -112,18 +112,31 @@ Introduction to Additive Manufacturing
</li>
<li class="os-toc-chapter-composite-page" cnx-archive-shortid="" cnx-archive-uri="composite-page-3" data-toc-type="book-content" data-toc-target-type="composite-page">
<a href="#composite-page-3">
<span class="os-text">Solutions</span>
<span class="os-text">Summary</span>
</a>
</li>
<li class="os-toc-chapter-composite-page" cnx-archive-shortid="" cnx-archive-uri="composite-page-4" data-toc-type="book-content" data-toc-target-type="composite-page">
<a href="#composite-page-4">
<span class="os-text">Key Terms</span>
</a>
</li>
</ol>
</li>
<li class="os-toc-index" cnx-archive-shortid="" cnx-archive-uri="composite-page-4" data-toc-type="book-content" data-toc-target-type="index">
<a href="#composite-page-4">
<li class="os-toc-index" cnx-archive-shortid="" cnx-archive-uri="composite-page-5" data-toc-type="book-content" data-toc-target-type="index">
<a href="#composite-page-5">
<span class="os-text">Index</span>
</a>
</li>
<li class="os-toc-index" cnx-archive-shortid="" cnx-archive-uri="composite-page-5" data-toc-type="book-content" data-toc-target-type="index">
<a href="#composite-page-5">
<li class="os-toc-composite-chapter" cnx-archive-shortid="" cnx-archive-uri="" data-toc-type="sub-book-tree">
<a href="#">
<span class="os-text">Answer Key</span>
</a>
<ol class="os-chapter">

</ol>
</li>
<li class="os-toc-index" cnx-archive-shortid="" cnx-archive-uri="composite-page-6" data-toc-type="book-content" data-toc-target-type="index">
<a href="#composite-page-6">
<span class="os-text">Index</span>
</a>
</li>
Expand Down Expand Up @@ -520,12 +533,6 @@ Introduction to Additive Manufacturing
</div>
<p id="auto_ff1e599f-36e0-4276-9079-1f36a4591333_para-00015" data-sm="./modules/m00003/index.cnxml:42:5">Post Processing refers to a host of manufacturing processes employed after the 3D printing step. These processes serve to finish an AM part by improving the appearance or material properties after it has been printed. These processes could be, but are not limited to, material removal, thermal processing, and surface treatments. The printed shape can be dimensionally measured to ensure consistency to the original drawing or source file.</p>
</section>
<section data-depth="1" class="key-terms" id="auto_ff1e599f-36e0-4276-9079-1f36a4591333_sect-00005" data-sm="./modules/m00003/index.cnxml:44:5">
<ul id="auto_ff1e599f-36e0-4276-9079-1f36a4591333_list-00002" data-sm="./modules/m00003/index.cnxml:45:7">
<li data-sm="./modules/m00003/index.cnxml:45:29">STL</li>
<li data-sm="./modules/m00003/index.cnxml:46:9">Build file</li>
</ul>
</section>
<section data-depth="1" class="review" id="auto_ff1e599f-36e0-4276-9079-1f36a4591333_sect-00002" data-sm="./modules/m00003/index.cnxml:49:5">
<h3 data-type="title" data-sm="./modules/m00003/index.cnxml:50:7">Review Questions</h3>
<div data-type="injected-exercise" class="os-embed autogenerated-content" data-injected-from-nickname="AM-01-02-001" data-injected-from-version="1" data-injected-from-url="https://exercises.openstax.org/api/exercises?q=nickname:AM-01-02-001" data-tags="book:stax-amfg context-cnxmod:ff1e599f-36e0-4276-9079-1f36a4591333" data-is-vocab="false">
Expand Down Expand Up @@ -714,18 +721,6 @@ Layer &#x2013; The layer is made by selectively and precisely depositing the mat
<li data-sm="./modules/m00004/index.cnxml:54:1"><em data-effect="italics" data-sm="./modules/m00004/index.cnxml:54:7">Energy</em> &#x2013; Focused energy in the form of a laser or focused light.</li>
<li data-sm="./modules/m00004/index.cnxml:55:1"><em data-effect="italics" data-sm="./modules/m00004/index.cnxml:55:7">Material</em> &#x2013; Polymers, composites, and metals in photo curable polymers</li>
</ul>
<section data-depth="1" class="key-terms" id="auto_c2a83532-de3b-4068-848e-40af48db7389_sect-00004" data-sm="./modules/m00004/index.cnxml:57:1">
<ul id="auto_c2a83532-de3b-4068-848e-40af48db7389_list-00002" data-sm="./modules/m00004/index.cnxml:58:7">
<li data-sm="./modules/m00004/index.cnxml:59:9">Binder Jetting</li>
<li data-sm="./modules/m00004/index.cnxml:60:9">Material Extrusion</li>
<li data-sm="./modules/m00004/index.cnxml:61:9">Directed Energy Deposition</li>
<li data-sm="./modules/m00004/index.cnxml:62:9">Material Jetting</li>
<li data-sm="./modules/m00004/index.cnxml:63:9">Powder Bed Fusion</li>
<li data-sm="./modules/m00004/index.cnxml:64:9">Sheet Lamination</li>
<li data-sm="./modules/m00004/index.cnxml:65:9">Vat Photopolymerization
</li>
</ul>
</section>
<section data-depth="1" class="review" id="auto_c2a83532-de3b-4068-848e-40af48db7389_sect-00002" data-sm="./modules/m00004/index.cnxml:69:5">
<h3 data-type="title" data-sm="./modules/m00004/index.cnxml:70:7">Review Questions</h3>
<div data-type="injected-exercise" class="os-embed autogenerated-content" data-injected-from-nickname="AM-01-03-001" data-injected-from-version="1" data-injected-from-url="https://exercises.openstax.org/api/exercises?q=nickname:AM-01-03-001" data-tags="book:stax-amfg context-cnxmod:c2a83532-de3b-4068-848e-40af48db7389" data-is-vocab="false">
Expand Down Expand Up @@ -1052,11 +1047,6 @@ Layer &#x2013; The layer is made by selectively and precisely depositing the mat
<span data-sm="./modules/m00006/index.cnxml:95:3" class="os-caption">Industries using Additive Manufacturing</span>
</div>
</div>
<section data-depth="1" class="summary" id="auto_ea1fab58-2057-4c8f-b791-6d31e9b18ad4_sect-00014" data-sm="./modules/m00006/index.cnxml:98:3">
<p id="auto_ea1fab58-2057-4c8f-b791-6d31e9b18ad4_para-00024" data-sm="./modules/m00006/index.cnxml:99:5">
In chapter 1 we introduced the building block of Additive manufacturing, namely machines, materials, digital and people that are necessary to successfully manufacture using AM. The core concept of building material up layer by layer to make a shape vs legacy process that deform or remove material in order to make a shape. We then introduced the 7 standard AM processes, and a maturity model for developing AM competency within an organization. Finally, we touched on how to select an AM process to make a particular part.
</p>
</section>
<section data-depth="1" class="review" id="auto_ea1fab58-2057-4c8f-b791-6d31e9b18ad4_sect-00002" data-sm="./modules/m00006/index.cnxml:104:5">
<h3 data-type="title" data-sm="./modules/m00006/index.cnxml:105:7">Review Questions</h3>
<div data-type="injected-exercise" class="os-embed autogenerated-content" data-injected-from-nickname="AM-01-05-001" data-injected-from-version="1" data-injected-from-url="https://exercises.openstax.org/api/exercises?q=nickname:AM-01-05-001" data-tags="book:stax-amfg context-cnxmod:ea1fab58-2057-4c8f-b791-6d31e9b18ad4" data-is-vocab="false">
Expand Down Expand Up @@ -1330,12 +1320,33 @@ Layer &#x2013; The layer is made by selectively and precisely depositing the mat
</div>
</div>
</div>
<div class="os-eoc os-solutions-container" data-type="composite-page" data-uuid-key="solutions" id="composite-page-3">
<div class="os-eoc os-summary-container" data-type="composite-page" data-uuid-key=".summary" id="composite-page-3">
<h2 data-type="document-title">
<span class="os-text">Solutions</span>
<span class="os-text">Summary</span>
</h2>
<div data-type="metadata" style="display: none;">
<h1 data-type="document-title" itemprop="name">Solutions</h1>
<h1 data-type="document-title" itemprop="name">Summary</h1>
<span data-type="revised" data-value="2024-07-09T23:27:30+00:00"></span>
<span data-type="slug" data-value="additive-manufacturing-essentials"></span>
<div class="permissions">
<p class="license">
Licensed:
<a href="http://creativecommons.org/licenses/by/4.0/" itemprop="dc:license,lrmi:useRightsURL" data-type="license" target="_blank" rel="noopener nofollow">Creative Commons Attribution License</a>
</p>
</div>
</div>
<section data-depth="1" class="summary" id="auto_ea1fab58-2057-4c8f-b791-6d31e9b18ad4_sect-00014" data-sm="./modules/m00006/index.cnxml:98:3">
<p id="auto_ea1fab58-2057-4c8f-b791-6d31e9b18ad4_para-00024" data-sm="./modules/m00006/index.cnxml:99:5">
In chapter 1 we introduced the building block of Additive manufacturing, namely machines, materials, digital and people that are necessary to successfully manufacture using AM. The core concept of building material up layer by layer to make a shape vs legacy process that deform or remove material in order to make a shape. We then introduced the 7 standard AM processes, and a maturity model for developing AM competency within an organization. Finally, we touched on how to select an AM process to make a particular part.
</p>
</section>
</div>
<div class="os-eoc os-key-terms-container" data-type="composite-page" data-uuid-key=".key-terms" id="composite-page-4">
<h2 data-type="document-title">
<span class="os-text">Key Terms</span>
</h2>
<div data-type="metadata" style="display: none;">
<h1 data-type="document-title" itemprop="name">Key Terms</h1>
<span data-type="revised" data-value="2024-07-09T23:27:30+00:00"></span>
<span data-type="slug" data-value="additive-manufacturing-essentials"></span>
<div class="permissions">
Expand All @@ -1345,9 +1356,53 @@ Layer &#x2013; The layer is made by selectively and precisely depositing the mat
</p>
</div>
</div>
<section data-depth="2" class="key-terms" id="auto_b539408f-1736-49e0-b911-3ceaa39c4b4e_sect-00002" data-sm="./modules/m00002/index.cnxml:56:1">
<a href="#page_ff1e599f-36e0-4276-9079-1f36a4591333_titlecreatedbycookbook">
<h3 data-type="document-title">
<span class="os-number">1.2</span>
<span class="os-divider"> </span>
<span class="os-text" data-type="" itemprop="">
<span class="os-number">1.2</span>
<span class="os-divider"> </span>
<span data-type="" itemprop="" class="os-text">Core AM Concepts</span>
</span>
</h3>
</a>
<span data-type="list" data-list-type="bulleted" id="auto_b539408f-1736-49e0-b911-3ceaa39c4b4e_list-00002" data-display="inline" data-sm="./modules/m00002/index.cnxml:57:7">
<span data-type="item" data-sm="./modules/m00002/index.cnxml:57:46">STL</span>
</span>
</section>
<section data-depth="1" class="key-terms" id="auto_ff1e599f-36e0-4276-9079-1f36a4591333_sect-00005" data-sm="./modules/m00003/index.cnxml:63:5">
<a href="#page_c2a83532-de3b-4068-848e-40af48db7389_titlecreatedbycookbook">
<h3 data-type="document-title">
<span class="os-number">1.3</span>
<span class="os-divider"> </span>
<span class="os-text" data-type="" itemprop="">
<span class="os-number">1.3</span>
<span class="os-divider"> </span>
<span data-type="" itemprop="" class="os-text">Additive Manufacturing Processes</span>
</span>
</h3>
</a>
<span data-type="list" data-list-type="bulleted" id="auto_ff1e599f-36e0-4276-9079-1f36a4591333_list-00002" data-display="inline" data-sm="./modules/m00003/index.cnxml:64:7">
<span data-type="item" data-sm="./modules/m00003/index.cnxml:65:1">Binder Jetting</span>
<span class="os-divider">,</span>
<span data-type="item" data-sm="./modules/m00003/index.cnxml:66:1">Material Extrusion</span>
<span class="os-divider">,</span>
<span data-type="item" data-sm="./modules/m00003/index.cnxml:67:1">Directed Energy Deposition</span>
<span class="os-divider">,</span>
<span data-type="item" data-sm="./modules/m00003/index.cnxml:68:1">Material Jetting</span>
<span class="os-divider">,</span>
<span data-type="item" data-sm="./modules/m00003/index.cnxml:69:1">Powder Bed Fusion</span>
<span class="os-divider">,</span>
<span data-type="item" data-sm="./modules/m00003/index.cnxml:70:1">Sheet Lamination</span>
<span class="os-divider">,</span>
<span data-type="item" data-sm="./modules/m00003/index.cnxml:71:1">Vat Photopolymerization</span>
</span>
</section>
</div>
</div>
<div class="os-eob os-index-container" data-type="composite-page" data-uuid-key="index" id="composite-page-4">
<div class="os-eob os-index-container" data-type="composite-page" data-uuid-key="index" id="composite-page-5">
<h1 data-type="document-title">
<span class="os-text">Index</span>
</h1>
Expand Down Expand Up @@ -1445,7 +1500,23 @@ Layer &#x2013; The layer is made by selectively and precisely depositing the mat
</div>
</div>
</div>
<div class="os-eob os-index-container" data-type="composite-page" data-uuid-key="index" id="composite-page-5">
<div class="os-eob os-solutions-container" data-type="composite-chapter" data-uuid-key=".solutions">
<h1 data-type="document-title">
<span class="os-text">Answer Key</span>
</h1>
<div data-type="metadata" style="display: none;">
<h1 data-type="document-title" itemprop="name">Answer Key</h1>
<span data-type="revised" data-value="2024-07-09T23:27:30+00:00"></span>
<span data-type="slug" data-value="additive-manufacturing-essentials"></span>
<div class="permissions">
<p class="license">
Licensed:
<a href="http://creativecommons.org/licenses/by/4.0/" itemprop="dc:license,lrmi:useRightsURL" data-type="license" target="_blank" rel="noopener nofollow">Creative Commons Attribution License</a>
</p>
</div>
</div>
</div>
<div class="os-eob os-index-container" data-type="composite-page" data-uuid-key="index" id="composite-page-6">
<h1 data-type="document-title">
<span class="os-text">Index</span>
</h1>
Expand Down
Loading
Loading