For the extra hotspots in 3D I think you have to switch them off in the 3D WINDOW SETTINGS (menu View>3D View Options).
To manually add new hotspots there should be an easier way, for the GDL Beginners... it is non difficult, usually, but one must have a minimum programming knowledge.
I can suggest a convolute way, that can be useful for someone.
1) add 4 new parameters (in the parameters page) and name them hsx
Give to "hss" a positive value (this is a "scale" factor for the new elements, that you can vary to suit the size of your object). Give a non-zero value to "hsz" too.
2) copy the following text at the very beginning of the 3D Script
Code: Select all
!___________________________________ Hotspot Helper
MODEL WIRE : CIRCLE hss*1.2
HOTSPOT hsx, 0, 0, 1001, hsy, 1+128
HOTSPOT hsx, hsy, 0, 1002, hsy, 2
HOTSPOT hsx, -1, 0, 1003, hsy, 3
HOTSPOT 0, hsy, 0, 1004, hsx, 1+128
HOTSPOT hsx, hsy, 0, 1005, hsx, 2
HOTSPOT -1, hsy, 0, 1006, hsx, 3
HOTSPOT hsx, hsy, 0, 1007, hsz, 1+128
HOTSPOT hsx, hsy, hsz, 1008, hsz, 2
HOTSPOT hsx, hsy, -1, 1009, hsz, 3
ADD hsx, hsy, 0
CIRCLE hss : MODEL SOLID
LIN_ 0,-hss,0, 0,hss,0
LIN_ -hss,0,0, hss,0,0
LIN_ 0,0,0, 0,0,hsz
FOR f = 1 to 4
LIN_ -hss/2,0,hsz-hss/2, hss/2, 0, hsz+hss/2
DEFINE STYLE "hst" arial, hss*1000, 4, 0
SET STYLE "hst"
TEXT hss*.1, 0, " x= "+str(hsx,4,3)
TEXT hss*.1, 0, " y= "+str(hsy,4,3)
TEXT hss*.1, 0, " z= "+str(hsz,4,3)
!_____________________________ end Hotspot helper
3) save the object, but do not close it.
Place the object and, in the 3D window, you can notice a special "mark" that is in the origin (0,0,0 coordinates) of the object. Be aware that the origin CAN BE very far from your elements, depending on the way the object was originally created.
The "mark" has a text tied to it, with the current coordinates (x=0.0, y=0.0, z=0.0), and two editable hotspot (one for the x-y position and one for the Z position). Drag the mark and it will tell the coordinates for a HOTSPOT command you can add in the script.
Switch to the object window (Windows menu) and write the command, in this form:
HOTSPOT 0.352, 1.120, 0.845, 501
where the first 3 numbers are the x, y, z, coordinates, and the forth is a unique identifier. Use any number you want. You can start from 1 and go to 2, 3... if you are sure these are not already used in the same script. To be more sure it can be safer to start with a higher number.
Now... if you try this process you will discover an (obvious) oddity.
... you don't have snaps for the mark, on the object's elements. This is very bad, but is the ORIGINAL reason for us needing these hotspots!
The way I suggest to deal to this problem is: place TWO copies of the object, perfectly overlapping. Select one of them and use the "Convert selection to Morph" command, in the context menu. Eventually you can lock the morph. Now you can use the object and his "mark" as described, with full cursor snap facility.
At the end when you are satisfied with the added Hotspots, delete the script sniplet and save the object.