We are trying to write our first Macro for use with our Pentable. What we want to do is have the pen table "Drop element" based on criteria established, the print the element then undo the "drop element" to return it to it original status. So we started with having our steps recorded, but are unable to figure out the "Pen Table Print Element Hook". The following is our macro called "Drop_element". Any help would be greatly appreciated as we trying to learn how to do this and this seemed to be easy, but apparently it is not.
' Drop elements and undo drop
Sub main
Dim startPoint As MbePoint
Dim point As MbePoint, point2 As MbePoint
' Start a command
MbeSendCommand "DROP ELEMENT "
' Set a variable associated with a dialog box
MbeSetAppVariable "DROP", "dropOptions.complex", -1&
MbeSetAppVariable "DROP", "dropOptions.strings", -1&
MbeSetAppVariable "DROP", "dropOptions.sharedCells", -1&
MbeSetAppVariable "DROP", "dropOptions.mlines", -1&
MbeSendCommand "CHOOSE ALL "
' Coordinates are in master units
startPoint.x = 120.583542#
startPoint.y = 130.883882#
startPoint.z = 0.000000#
' Send a data point to the current command
point.x = startPoint.x
point.y = startPoint.y
point.z = startPoint.z
MbeSendDataPoint point, 1%
point.x = startPoint.x + 0.234617#
point.y = startPoint.y - 1.156249#
MbeSendCommand "UNDO "
End Sub
I could not figure out how to hook a VBA directly in my thread, Emulate Plot Hook Functions & AutoRun. Although it is possible with a BASIC macro.
Add a section to a PenTable to call the BASIC Macro:
BEGIN Splash_Draw_Order BASICFUNC = SPLASH_PenTableHook.bas,PenTableHookEND
Create a BASIC macro to call your primary macro (my "SPLASH_PenTableHook.bas" macro):
Function PenTableHook (inElem as MbeElement) As Long
Dim PenTableHookPoint As String
PenTableHook = MBE_ElemNormal
End Function
Sub main Dim startPoint As MbePoint Dim point As MbePoint, point2 As MbePoint
' Send a keyin that can be a command string MbeSendKeyin "macro Splash_Draw_Order"End Sub
Note that the "SPLASH_PenTableHook.bas" calls the "Splash_Draw_Order.ba" macro, this could also call a VBA macro.
This thread really belongs to programing forum..
but in any case I'm curious why do you need to drop anything for printing .. cant your pentable correct things that dont print the way yuo want normally?
Lorys
Started msnt work 1990 - Retired Nov 2022 ( oh boy am I old )
But was long time user V8iss10 (8.11.09.919) dabbler CE update 16 (10.16.00.80)
MicroStation user since 1990 Melbourne Australia.click link to PM me