====== Rhino 4.0 용 플러그인 ArchCut ======
> **Summary:** //Rhino 4.0 용 단면/패널 작업 플러그인. //[[http://download.mcneel.com/download_rel.asp?rel=244|2007년 3월 7일자 ArchCut 다운로드]]////
//**Critical:**//ArchCut 플러그인을 로드하기 전에 //[[http://wiki.mcneel.com/_media/legacy/en/vcredist_x86.exe|Microsoft의 runtime libraries를 다운로드]]// //하여 설치하시기 바랍니다.//
\\
{{:legacy:en:panel.PNG}}
\\
=====다운로드=====
**[[http://download.mcneel.com/download_rel.asp?rel=244|ArchCut_Plug-in of 7-March-2007]]** //(works with the released Rhino4 and current [[http://www.rhino3d.com/4/beta.htm|Rhino4 BETA]])//
//ArchCut Commands [[http://wiki.mcneel.com/_media/legacy/en/ArchCut_Tools_Feb14_2007.zip|Toolbar]]//
//3DM Sectioning [[http://wiki.mcneel.com/_media/legacy/en/ArchCut_Example.3dm|Example]]//
//Sectioning Report [[http://wiki.mcneel.com/_media/legacy/en/ArchCut_report.zip|Example]]//
//Sections File Format [[http://wiki.mcneel.com/_media/legacy/en/ArchCut_LoadFormat.zip|Example]]// (to load section names and distances)
//Create Sections [[http://wiki.mcneel.com/_media/legacy/en/ArchCut_Create1.zip|(short clip)]]//
//Create, View & Update Sections [[http://wiki.mcneel.com/_media/legacy/en/ArchCut_Create_View_Update.zip|(short clip)]]//
//Scripting Help Document// //[[http://wiki.mcneel.com/_media/legacy/en/ArchCutScripting_Feb6_2007.zip|(word file .doc)]]// //[[http://wiki.mcneel.com/_media/legacy/en/ArchCutScripting_Feb6_2007.pdf|(PDF file)]]// //[[http://wiki.mcneel.com/_media/legacy/en/ArchCutHelp_March7_2007.zip| (.CHM and .DEC files)]]//
\\
----
=====Contents=====
====Sectioning Commands====
Tools to import sections (names/locations), create sections, update, 2D layout and generate area report. Sections data is saved to document and are updatable when model changes.
* [[#ArchCut_Create]]
* [[#ArchCut_CreateArray]]
* [[#ArchCut_Update]]
* [[#ArchCut_Report]]
* [[#ArchCut_Layout]]
* [[#ArchCut_NestLayout]]
* [[#ArchCut_View]]
* [[#ArchCut_ClearView]]
* [[#ArchCut_MoveSections]]
* [[#How to Export]]
* [[#How to Display Sections]]
* [[#How to Delete and Rename Sections]]
* [[#Sectioning Wish List]]
====Paneling Commands====
Paneling tools support a variety of paneling algorithms ranging from directional paneling to completely random paneling.
* [[#ArchCut_Divide]]
* [[#ArchCut_Paneling_Dir]]
* [[#ArchCut_PanelingUV_Num]]
* [[#ArchCut_PanelingUV_Dis]]
* [[#ArchCut_SubPaneling]]
* [[#ArchCut_RandomPaneling]]
* [[#ArchCut_PanelingUpdate]]
* [[#Paneling Wish List]]
====Scripting====
ArchCut supports scripting mainly to allow custom pattern definition and also to make plug-in methods available for Rhino scripting developers
* [[#Custom Patterns for Paneling]]
====Links====
* [[rajaa@mcneel.com|Contact the developer]] for comments and feedback
* [[http://www.en.na.mcneel.com/support.htm|McNeel Technical Support]]
* [[labs:rhinohomelabs|McNeel tools for Rhino4]]
\\
| [[#Back to top]]|
----
====ArchCut_Create command:====
\\
> **Flow:** ////
* **Select objects to section. Press Enter to select all visible** ( //Dir=CPlaneX Replace=Yes AutoNaming=Yes LoadFromFile=No// ):
* **Place section. Press Enter when done** ( Flip=No ):
\\
> **Options:** ////
* **Dir**: ( //CPlaneX , CPlaneY, Pick// ) - Set section line direction
* **Replace**: If a section (layer) with same name exists, then delete the content of the old one and replace with the new.
* **Name=SEC**: Naming format is "SEC_01", "SEC_02", etc.
* **LoadFromFile**: If (Yes), user gets section names and their distance from a 0.0 base point, from a .txt, .dat or .csv file (comma separated). (//[[http://wiki.mcneel.com/_media/legacy/en/ArchCut_LoadFormat.zip|Sample File Format]]// )
* **Flip**: Flips the direction of the section (makes difference is "Layout" view)
* **DetectSolids**: an option to detect solids (if cutting through a solid, a surface is generated alongside intersection curve)
\\
> **Notes:** ////
* The plugin maintains "Sections Table" (ST):
* ST is saved to the document. That is sections data is carried from one session to the other.
* ST keeps track of each section: layer, section plane, sectioned objects (or all visible)
* Each section plane is represented as hidden clipping plane object in the section layer, user can make visible and edit.
* Section curves are given the name of the layer from which the sectioned object comes from and name of sectioned object (**LayerName_ObjectName**). This helps sorting curves by objects when reporting.
* Section curves and surfaces take the properties of objects they come from.
* Section curves take the attributes of object they section if set to **ByObject**, However if **ByLayer** then take the attributes of that layer.
* Can not section through meshes
* Supports sectioning through blocks
\\
{{:legacy:en:ArchCut_create.PNG}}
\\
\\
| [[#Back to top]]|
----
====ArchCut_CreateArray command:====
Create array of sections. User defines spacing and number of sections
\\
> **Options:** ////
* **Dir**: ( //CPlaneX , CPlaneY, Pick// ) - Set section line direction
* **Replace**: If a section (layer) with same name exists, then delete the content of the old one and replace with the new.
* **Name**: Enter sections name. Default name is "SEC". Names take the format "SEC_01, SEC_02, etc".
* **NumOfSections**: Number of sections
* **Spacing**: distance between sections
* **DetectSolids**: an option to detect solids (if cutting through a solid, a surface is generated alongside intersection
* **Flip**: Flips the direction of the section
* **Reverse**: Reverse direction vector
\\
\\
| [[#Back to top]]|
----
====ArchCut_Update command:====
Updates all sections.
\\
> **Notes:** ////
* The command uses section plane and the list of sectioned objects (or all visible) to create new section curves and replace old content.
* User can edit the following and will be updated using the command:
* Sectioned objects (the model)
* Section layer name through layer table
* Section plane - hidden in section layer. user can make it visible and move.
\\
\\
| [[#Back to top]]|
----
====ArchCut_Report command:====
\\
* Creates a .csv file that lists sections, SUM area of closed curves, SUM perimeter and SUM of surfaces area sorted by sections and names (//[[http://wiki.mcneel.com/_media/legacy/en/ArchCut_report.zip|Sample Report]]// )
\\
\\
| [[#Back to top]]|
----
====ArchCut_Layout command:====
\\
> **Flow:** ////
* **(Dialog)** ask to select sections.
* **Placement point. Press Enter to project in-place** ( Grip=Center ApplyToAll=No ): Grip
* **Grip**
( Center Min Max ): Min
\\
> **Options:** ////
* **Grip** ( Center Min Max ): Base point relative to section bounding box.
* **ApplyToAll**: if (Yes), Grip and placement point are applied to all sections without prompting the user for a placement point for each section.
\\
> **Notes:** ////
* Creates new layer for each layout. Layer name looks like: "SectionName"_Layout.
* It maps sections to world_xy_plane.
* Calling **ArchCut_Layout** deletes old layouts and place new ones.
* Projecting in place ensure layouts to properly overlap.
\\
{{:legacy:en:ArchCut_layout.PNG}}
\\
| [[#Back to top]]|
----
====ArchCut_NestLayout command:====
\\
> **Flow:** ////
* **(Dialog)** ask to select sections.
\\
> **Notes:** ////
* Creates layouts and put in current layer with name tags.
* All layouts are placed in the +,+ quarter along the world x-axis (next to one another).
\\
\\
| [[#Back to top]]|
----
====ArchCut_View command:====
\\
> **Flow:** ////
* Select sections and assign them to viewports.
\\
> **Notes:** ////
* In the following example, section is added to the perspective view
* For hidden-lines view try the new Rhino4 [[labs:techdraw|TechnicalDrawing Plugin]]
\\
{{:legacy:en:ArchCut_view.PNG}}
\\
\\
| [[#Back to top]]|
----
====ArchCut_ClearView command:====
\\
> **Flow:** ////
* Select viewport to delete selected sections from that viewport.
\\
\\
| [[#Back to top]]|
----
====ArchCut_MoveSections command:====
\\
> **Flow:** ////
* Move sections and update sections curves.
\\
\\
| [[#Back to top]]|
----
===How to Export:===
\\
> **Macro:** //SelLayer //Export
* You can select one or all layers and export to any supported file format.
* To export sections or their layouts, use the above macro (copy and paste to command line)
\\
\\
| [[#Back to top]]|
----
====How to Display Sections:====
\\
> **Macro:** //PrintDisplay State=On //Enter
* Section curves are assigned a print width = 0.5 (default=0.13) to appear thick.
* To be able to view the thicker section curves, use the above macro (also available in the toolbar).
\\
\\
| [[#Back to top]]|
----
====How to Delete and Rename Sections:====
\\
* **Delete**: Delete layer of the section.
* **Rename**: Change layer name.
\\
\\
| [[#Back to top]]|
----
====Sectioning Wish List: ... You welcome to add to this list====
\\
* Make2D for Layout... If you need it for viewing, try the new Rhino4 [[labs:techdraw|TechnicalDrawing]] Plug-in
* Option for dynamic update of sections
\\
\\
| [[#Back to top]]|
----
====ArchCut_Divide command:====
\\
> **Flow:** ////
* Select curves to divide by number or distance. If dividing by distance, there is option to round up or down.
\\
> **Options:** ////
* **Method**: ( //ByNumber, ByDistance// ). If ByDistance, user can round up or down to cover all curve length.
* **SpanNum**: Number of spans
* **SpanDistance**: Length of each span. If it doesn't divide evenly, then **Rounding** option can be used.
\\
> **Notes:** ////
* For each curve, user is notified of the final number of spans and length of each span in the output window.
* User is prompted to enter dividing points name. Dividing points are ordered using the format "Name_Row(0,1,...)_Col(0,1,...)"
* Has History support
\\
\\
| [[#Back to top]]|
----
====ArchCut_Paneling_Dir command:====
\\
> **Flow:** ////
* Select object to create a base grid panels.
\\
> **Options:** ////
* **DirectionOfCuts**: ( //CPlaneX, CPlaneY, Pick// ) - User defines paneling direction relative to CPlane.
* **DistanceBetweenCuts**: Distance separating cuts (section plates)
* **SplitMethod**: Either "ByNumber" or "ByDistance". If **SplitMethod=ByNumber**, then user can define "NumOfPanels_PerCut". If **SplitMethod=ByDistance**, then user define "PanelLength" and "RoundingMethod".
* **PanelShape**: Either //Straight// or //Pull//. Straight creates linear panels while in Pull, panels follow surface shape.
* **Pattern**: Paneling pattern. For prototype purposes, eight patterns are available
* **CalcEdges**: Calculate,serialize and output paneling edges.
* **CalcFaces**: Calculate, serialize and output paneling faces.
* **CalcMesh**: Calculate the mesh that makes paneling faces.
\\
> **Notes:** ////
* User can panel polysurfaces. Difference in UV direction among faces does not affect result.
* If you like to change the corner where paneling starts, you can use **Dir** command to swap UV.
* Paneling point grid, paneling edges and paneling faces are grouped and added to document in new layer.
* All paneling points, edges and faces are tagged (named).
* Works with trimmed surfaces.
\\
{{:legacy:en:paneling_dir.PNG}}
\\
\\
{{:legacy:en:patterns1.GIF}}
\\
\\
| [[#Back to top]]|
----
====ArchCut_PanelingUV_Num command:====
\\
> **Flow:** ////
* Select object to create a variety of structural panels. The command is sensitive to UV.
\\
> **Options:** ////
* **U_Num**: Number of panels in **U** direction.
* **V_Num**: Number of panels in **V** direction.
* **PanelShape**: Either //Straight// or //Pull//. Straight creates linear panels while in Pull, panels follow surface shape.
* **Pattern**: Paneling pattern. For prototype purposes, eight patterns are available
* **CalcEdges**: Calculate,serialize and output paneling edges.
* **CalcFaces**: Calculate, serialize and output paneling faces.
* **CalcMesh**: Calculate the mash that makes paneling faces.
\\
> **Notes:** ////
* Paneling point grid, paneling edges and paneling faces are grouped and added to document in new layer.
* All paneling points, edges and faces are tagged (named).
* Works with trimmed surfaces.
\\
{{:legacy:en:paneling_trim_num1.PNG}}
\\
\\
| [[#Back to top]]|
----
====ArchCut_PanelingUV_Dis command:====
\\
> **Flow:** ////
* Select object to create a variety of structural panels. The command is sensitive to surface UV directions.
\\
> **Options:** ////
* **U_Dis**: Length of panels in **U** direction.
* **V_Dis**: Length of panels in **V** direction.
* **Round**: User can choose round the length of each panel to fit surface.
* **RoundingMethod**: Up or down.
* **PanelShape**: Either //Straight// or //Pull//. Straight creates linear panels while in Pull, panels follow surface shape.
* **Pattern**: Paneling pattern. For prototype purposes, eight patterns are available
* **CalcEdges**: Calculate,serialize and output paneling edges.
* **CalcFaces**: Calculate, serialize and output paneling faces.
* **CalcMesh**: Calculate the mash that makes paneling faces.
\\
> **Notes:** ////
* Exact distances are achieved only when iso-curves are parallel in U & V directions
* Paneling point grid, paneling edges and paneling faces are grouped and added to document in new layer.
* All paneling points, edges and faces are tagged (named).
* Works with trimmed surfaces.
\\
{{:legacy:en:paneling_trim_dis.PNG}}
\\
| [[#Back to top]]|
----
* Following is a comparison among different directional paneling commands:
\\
{{:legacy:en:directional_paneling.PNG}}
\\
\\
| [[#Back to top]]|
----
====ArchCut_SubPaneling command;====
\\
> **Flow:** ////
* Select base surface, any number of closed polylines with end points on surface.
\\
> **Options:** ////
* **Degree**: Number of subdividing steps.
* **Method**: All/SubsOnly/MainOnly. Different methods of sub-paneling as in the image.
* **PanelShape**: Straight or Pull
\\
> **Notes:** ////
* Has History support
\\
{{:legacy:en:subpaneling2.PNG}}
\\
\\
| [[#Back to top]]|
----
====ArchCut_RandomPaneling command:====
\\
> **Flow:** ////
* Select base surface, any number of points on surface or have the command generate points for you.
\\
> **Options:** ////
* **GenerateRandomly**: random generation of points.
* **PointCount**: number of points. Aprrears only when //GenerateRandomly=Yes//
* **PanelShape**: Straight or Pull
\\
> **Notes:** ////
* Random paneling algorithm finds best solution for smallest triangles starting from a central location of the grid point set.
* Random paneling doesn't take into account shorter distances across the seam (in closed surfaces)
* Surface is reparameterized to minimize distortion.
* Has History support
\\
{{:legacy:en:rand1.PNG}}
\\
\\
| [[#Back to top]]|
----
====ArchCut_PanelingUpdate command:====
Updates all paneling.
\\
> **Notes:** ////
* If the base paneling surface get edited, user can call this command to update paneling.
* Paneling data is saved to document
\\
\\
| [[#Back to top]]|
----
====Custom Patterns for Paneling:====
\\
Use ArchCut script functions to define custom patterns for paneling and access many ArcCut methods using [[developer:rhinoscript|RhinoScript]].
**Download Scripting Documentation**:
* //[[http://wiki.mcneel.com/_media/legacy/en/ArchCutScripting_Feb6_2007.zip|Scripting Help - word file]]//
* //[[http://wiki.mcneel.com/_media/legacy/en/ArchCutScripting_Feb6_2007.pdf|Scripting Help - PDF file]]//
* //[[http://wiki.mcneel.com/_media/legacy/en/ArchCutHelp_March7_2007.zip|Scripting Help - CHM and .DEC files]]// - If you like to view ArchCut methods and access its help from within [[developer:monkeyforrhino4|Monkey RhinoScript Editor]] , then please save .chm and .dec files in the ../Monkey/Resources folder.
\\
{{:legacy:en:Custom.PNG}}
\\
\\
| [[#Back to top]]|
----
====Paneling Wish List: ... You're welcome to add to this list====
\\
* Create custom patterns interactively
\\
\\
| [[#Back to top]]|
----
[[rajaa@mcneel.com|E-mail the developer your questions & feedback]]
Last updated: **January 10, 2007**