I've added the macro below, there are notes in it towards the end that are relevant to the problem of it changing lines.
#THIS IS TO ADD A NO-PEN LINE TO ENDS OF A PAIR OF PARALLEL BEZIERS AND THEN ADD WHITE FILL (CAN GET IT TO ADD CONTOUR BUT DON'T KNOW ABOUT SETTING THE FILL TYPE), THEN GROUPING BEZIERS AND CONTOUR.
macro join_bezier_ends_test
Define exit_loop as String
Define first_bezier as Element
Define second_bezier as Element
Define contour as Element
define first_bezier_picked_x as element
define first_bezier_picked_y as element
define second_bezier_picked_x as element
define second_bezier_picked_y as element
define end1 as element # FIRST END LINE
define end2 as element # SECOND END LINE
define me as MouseEvent
exit_loop = "no"
While (exit_loop = "no")
me = Wait MouseClick
Select at me.ptmm.x me.ptmm.y Direct
first_bezier_picked_x = me.ptmm.x
first_bezier_picked_y = me.ptmm.y
# NEED TO MAKE VARIABLES OF THE X AND Y PICKED POINTS FOR BOTH BEZIERS SO END LINES CAN BE DRAWN
first_bezier = ActiveDoc.FirstSelectedElement
If (first_bezier.type = "Bezier")
exit_loop = "yes"
# ADDS INFO TO BEZIER TO EASE GROUPING LATER
Create Object_Info first_bezier
Create Object_Attribute "join_bez" "String" first_bezier
first_bezier.Info.Attributes["join_bez"].Value = "bez B1"
# HERE IT WORKS OUT POSITION OF START AND END POINTS OF 1ST BEZIER
define seg_count as float
seg_count = first_bezier.SegmentCount
define first_bezier_startX as point
define first_bezier_startY as point
define first_bezier_EndX as point
define first_bezier_EndY as point
first_bezier_StartX = first_bezier.bezier.startPoint.x
first_bezier_StartY = first_bezier.bezier.startPoint.Y
first_bezier_EndX = first_bezier.bezier.segments[seg_count].endPoint.x
first_bezier_EndY = first_bezier.bezier.segments[seg_count].endPoint.Y
End If
If (exit_loop = "no")
message 'The First Bezier Was Not Selected - Start Again'
Select None
Debug Reset
End If
End While
exit_loop = "no"
While (exit_loop = "no")
me = Wait MouseClick
Select at me.ptmm.x me.ptmm.y Direct
second_bezier_picked_x = me.ptmm.x
second_bezier_picked_y = me.ptmm.y
second_bezier = ActiveDoc.FirstSelectedElement
If (second_bezier.type = "Bezier")
exit_loop = "yes"
# ADDS INFO TO BEZIER TO EASE GROUPING LATER
Create Object_Info second_bezier
Create Object_Attribute "join_bez" "String" second_bezier
second_bezier.Info.Attributes["join_bez"].Value = "bez B2"
# HERE IT WORKS OUT POSITION OF START AND END POINTS OF 2ND BEZIER
seg_count = second_bezier.SegmentCount
define second_bezier_startX as point
define second_bezier_startY as point
define second_bezier_EndX as point
define second_bezier_EndY as point
second_bezier_StartX = second_bezier.bezier.startPoint.x
second_bezier_StartY = second_bezier.bezier.startPoint.Y
second_bezier_EndX = second_bezier.bezier.segments[seg_count].endPoint.x
second_bezier_EndY = second_bezier.bezier.segments[seg_count].endPoint.Y
End If
If (exit_loop = "no")
message 'The Second Bezier Was Not Selected - Start Again'
Select None
Debug Reset
End If
End While
# NOW ADD LINES ACROSS THE ENDS
create line first_bezier_StartX first_bezier_StartY second_bezier_StartX second_bezier_StartY
end1 = ActiveDoc.FirstSelectedElement
Create Object_Info end1
Create Object_Attribute "join_bez" "String" end1
end1.Info.Attributes["join_bez"].Value = "bez end1"
create line first_bezier_endX first_bezier_endY second_bezier_endX second_bezier_endY
end2 = ActiveDoc.FirstSelectedElement
Create Object_Info end2
Create Object_Attribute "join_bez" "String" end2
end2.Info.Attributes["join_bez"].Value = "bez end2"
#NOW SELECT THE BEZIERS AND THE END LINES TO GENERATE CONTOUR
Select If Object_Attribute_Value "join_bez" contains "bez"
#HOW DO I SET IT SO THE CONTOUR HAS WHITE FILL?
Generate contour
contour = ActiveDoc.FirstSelectedElement
Create Object_Info contour
Create Object_Attribute "join_bez" "String" contour
contour.Info.Attributes["join_bez"].Value = "bez C1"
Arrange bottom
Select None
#NOW REMOVE THE END LINES
Select If Object_Attribute_Value "join_bez" contains "end"
Delete selection
#NOW SELECT BEZIERS, AND CONTOUR TO GROUP
Select If Object_Attribute_Value "join_bez" contains "bez"
Group Selection
wait mouseclick
# THIS JUST ADDED TO ILLUSTRATE THAT LINES ARE STILL CORRECT AT THIS POINT - BEZIER LINES ARE UNCHANGED, CONTOUR IS NO LINE. AS SOON AS YOU CLICK THE MOUSE, THE MACRO ENDS AND ALL THE LINES BECOME THIN. IS THIS BEING DONE AFTER THE MOUSECLICK OR IS IT SOMETHING EARLIER THAT'S CHANGING LINES BUT ONLY BECOMING APPARENT AT THE END OF THE MACRO?
#I'VE COMMENTED OUT THE REMAINING ACTIONS TO ILLUSTRATE THAT IT STILL CHANGES LINE TYPES EVEN WHEN NOTHING MORE IS DONE
#Select If Object_Attribute_Value "join_bez" contains "bez"
#delete object_info deep
#Select None
end macro