Author Topic: Arrow options  (Read 903 times)

adriank

  • Hero Member
  • *****
  • Posts: 504
Arrow options
« on: September 27, 2017, 09:37:13 PM »
How abut a 'same as' button on the arrow command?
I've just been working on a drawing where I need several types of arrow & I have to manually keep changing the size and style.

I've also for a long time wanted a way to design 'custom' arrows in the same way that we can design our own line styles. (the choice of arrow types is actually quite poor)

Adrian

Bob P

  • Hero Member
  • *****
  • Posts: 1195
    • Era Replica Automobiles
Re: Arrow options
« Reply #1 on: September 28, 2017, 03:39:10 AM »
I couldn't find a direct method to change the arrowhead size, (it may be related to text size) but sys(104) is the arrowhead style.

Something like this makes it easy to change the current arrowhead. Duplicate for your other choices.

'a1.d3m
sys(104)=1      ' other styles:1-12

JJG

  • Hero Member
  • *****
  • Posts: 729
Re: Arrow options
« Reply #2 on: January 27, 2018, 12:43:21 AM »
you can use the "same as" a posteriori ... through Infobox, or directly by using the "same as " that we told in the folowing topic :
http://forum.designcadcommunity.com/index.php?topic=26.0

bdeck

  • Hero Member
  • *****
  • Posts: 868
Re: Arrow options
« Reply #3 on: January 27, 2018, 04:16:26 PM »
The same-as finger in the dimension command does not work correctly when pointed at arrow entities.

The same-as finger in the info box does not work at all when using an arrow as a model for a dimension, or vice versa.

Maybe that could be fixed too.

And if a same-as finger is added to the arrow dialog, it should work when pointed to a dimension.
« Last Edit: January 28, 2018, 02:38:05 AM by bdeck »

adriank

  • Hero Member
  • *****
  • Posts: 504
Re: Arrow options
« Reply #4 on: January 27, 2018, 06:48:18 PM »
I've been asking for a 'same as' finger in the arrow menu for ever! When I'm adding notes to a drawing it'd save me having to go and select another arrow to check what size it is then go and adjust the size manually just so I can get a new arrow to match.

Seems like it should not be difficult to do?

Adrian

bdeck

  • Hero Member
  • *****
  • Posts: 868
Re: Arrow options
« Reply #5 on: January 28, 2018, 02:45:32 AM »
I've been asking for a 'same as' finger in the arrow menu for ever!

Hi Adrian,
You could try using the pullout command instead of arrow. If you don't want text in the pullout, just put a space there.

Aside from having a same-as finger, the best part of the pullout is that it draws from arrow to text, rather than vice versa.

Alternatively, rather than using pullout with same-as, you could simply duplicate an arrow or a pullout (using the N macro), and then use point select mode, if necessary, to further edit the points.

BD

« Last Edit: January 28, 2018, 02:53:12 AM by bdeck »

JJG

  • Hero Member
  • *****
  • Posts: 729
Re: Arrow options
« Reply #6 on: January 28, 2018, 03:33:42 AM »
The same-as finger in the dimension command does not work correctly when pointed at arrow entities.

The same-as finger in the info box does not work at all when using an arrow as a model for a dimension, or vice versa.

Maybe that could be fixed too.

And if a same-as finger is added to the arrow dialog, it should work when pointed to a dimension.
of course, if you try to copy properties of entities that are originally different in nature (ie as you say arrows that are a specific entity, and dimension that are another entity), no chance that it does work ...
But if you want to copy properties between entities of the same nature, it works, try it ! (ie arrows betwen themselves, or dimensions betwen themselves)

Note that the result can depend of the point you are pointed with the "same as" finger too, ie if you do not point of the same nature, DesignCad copy only the properties that are common, ie such as color etc... but not the ones that are not common.
« Last Edit: January 28, 2018, 10:14:03 AM by JJG »

bdeck

  • Hero Member
  • *****
  • Posts: 868
Re: Arrow options
« Reply #7 on: January 28, 2018, 08:58:10 AM »
of course, if you try to copy properties of entities that are originally different in nature (ie as you say arrows that are a specific entity, and dimension that are another entity), no chance that it does work ...

Hi JJG,

All true... except the "of course."

If same-as works for color, I see no reason why it should not work for  arrow, text, and lineweight properties among text, dimension, pullout, balloon, and arrow entities.

Best Regards

BD

PS:  On second thought, Lar published some very nice macros some time back that could be pressed into service for this sort of thing. 
« Last Edit: January 28, 2018, 09:39:19 AM by bdeck »

JJG

  • Hero Member
  • *****
  • Posts: 729
Re: Arrow options
« Reply #8 on: January 28, 2018, 10:13:03 AM »
Ok, Bdeck, I have crossed the "course" !
 ;)

adriank

  • Hero Member
  • *****
  • Posts: 504
Re: Arrow options
« Reply #9 on: January 29, 2018, 02:45:48 AM »
Hi BD,
I do use the copy command to duplicate arrows when I only need to add one or two - and as you say, use point select to edit where it's pointing. There is certainly no need for a macro to make a copy - with a shortcut key it only takes a heartbeat to copy and paste an arrow, but I still need to mess around adjusting it. I just think it is odd that we have 'same-as' fingers for just about everything else...
Your idea of using the pullout as an arrow is interesting, and it does lead me to think I should be requesting the option in the arrow menu window to be able to draw it backwards (enter the arrow-end point first) which could be useful.
Reversing the order of points on an arrow does swap ends for the pointer actually, which achieves the same result and as I have a shortcut key for that too (I need it frequently in 3D work to make extrudes work properly) it is quick to change.

Adrian

bdeck

  • Hero Member
  • *****
  • Posts: 868
Re: Arrow options
« Reply #10 on: January 29, 2018, 07:03:58 PM »
Hi BD,   Your idea of using the pullout as an arrow is interesting, .... 

Hi Adrian,
      I  suggested the pullout only because its dialog has same-as fingers for the arrow and text.
      My suggestion appears to have been premature.
      As best I can tell, the fingers in the dialog appear not to be functional.
Best Regards,
BD

Lar

  • Hero Member
  • *****
  • Posts: 2745
Re: Arrow options
« Reply #11 on: January 31, 2018, 07:49:50 AM »
Here is my attempt at a 'same as' macro for the arrow command. Select an arrow or dimension with the necessary properties then run this macro. If nothing is selected you will get a chance to select something (will abort after 5 failed attempts). I could not find a QUERY for the curved arrow option but the arrow dialog will open so you can manually set it. If a dimension is selected only the arrow head and size will be used (ie, no double headed, but you can still set it in the dialog).

Copy the code below and paste into a new Notepad file (or any word processor) and save in your macros folder with the name at the top of the code.

Fix these 2 lines as necessary (near the top):
include "*\dcadalias.d3i"             'use this if dcadalias.d3i is in the default macro folder, or is it the parent folder, can't remember which...
'include "C:\Macros\dcadalias.d3i"    '...or edit this as necessary to use the exact path (also remove the apostrophe at the start of this line and put one at the line above - or delete it)...
(NOTE: with my browser on this forum, where ever I put a line feed is either doubled or removed when posted so you can fix as necessary when you paste - also, sometimes a line feed is added in the middle of a sentence, which will mess up the code, so let me know if that happens)

Code: [Select]
'Arrow_Copy Props_by Lar.d3m...     'just so y'all know, whenever I copy a macro from the forum I tag the author in the name...
'by Lar, Nassau, Bahamas, 31jan18...

'Macro to get the properties from a selected arrow or dimension (arrow props only) then run the Arrow command so user can set the points to draw an arrow...
'INSTRUCTIONS: Before running the command select an arrow or dimension. If you did not select anything or you selected some other entity type you will get a chance to select something proper. If you make 5 failed attempts the macro will inform you then end...

include "*\dcadalias.d3i"             'use this if dcadalias.d3i is in the default macro folder, or is it the parent folder, can't remember which...
'include "C:\Macros\dcadalias.d3i"    '...or edit this if necessary to use the exact path (and remove the apostrophe at the start of this line, and put one at the line above)...

count=0

if sys(80)<>0 then goto PAS_RE_SEL
if sys(80)=0 then
'----------------------------------------------------
RE_SEL1:
sys(1027)=0  'message box style = OK, (1) (default)...
if count=5 then
message "Too many failed attempts. Macro will end.",CHR$(13),"SELECT an ARROW or DIMENSION then repeat this macro..."
END
end if
'---------
sys(1027)=5  'message box style = Retry (4) /Cancel (2)...
message "Nothing is selected. CLICK to SELECT an ARROW or DIMENSION to get its properties << or CANCEL to END>>..."
'1=OK, 2=Cancel, 3=Abort, 4=Retry, 5=Ignore, 6=Yes, 7=No...
if sys(1028)=2 then END
>PointSelect
{
}
count=count+1
goto PAS_RE_SEL
end if

'----------------------------------------------------
RE_SEL2:
if count=5 then
sys(1027)=0  'message box style = OK, (1) (default)...
message "Too many failed attempts. Macro will end.",CHR$(13),"SELECT an ARROW or DIMENSION then repeat this macro..."
END
end if
'---------
sys(1027)=5  'message box style = Retry (4) /Cancel (2)...
message "...WRONG entity type. CLICK to SELECT an ARROW or DIMENSION to get its properties << or CANCEL to END>>..."
'1=OK, 2=Cancel, 3=Abort, 4=Retry, 5=Ignore, 6=Yes, 7=No...
if sys(1028)=2 then END
>PointSelect
{
}
count=count+1
'----------------------------------------------------

PAS_RE_SEL:

if sys(80)=0 then goto RE_SEL1   'if nothing is selected...
getselect 1, e
entity e
if sys(90)=24 then   'if an arrow is selected...
 Query AW_Type, atype
 Query AW_Size, asize
 Query AW_Double, adouble
 'Query AW_Scale, ascale   'scale relative to text size, no necessary for this macro (but good to know this capability is still around)...
'NOTE there is no curve parameter but arrow dialog will open so user can enable/disable it manually...
goto ARRO
end if

if sys(90)>73 AND sys(90)<82 then   'if one of the dimension types is selected (types 74 thru 81)...
 Query D_ArrowType, atype
 Query D_ArrowSize, asize
goto ARRO
end if

'----------------------------------------------------
'if any other type is selected...
goto RE_SEL2
'----------------------------------------------------

'sys(80)=0   'deselect...  NO, will keep the selection so user can just press F3 to repeat the macro and not be bothered about selecting anything (will have to manually deselect for a different arrow/dim type)...

ARRO:
>Arrow
{
'  <Color []
'  <Layer []
  <Type [atype]
  <Size [asize]
  <DoubleSided [adouble]    '0=No, 1=Yes...
'  <CurvedArrow [acurve]    'no query/change parameter for curved, I made this one up as a placeholder...
'  <PointXYZ []             'user will manually enter points...
  }


Lar
« Last Edit: January 31, 2018, 08:29:43 AM by Lar »

bdeck

  • Hero Member
  • *****
  • Posts: 868
Re: Arrow options
« Reply #12 on: January 31, 2018, 02:49:26 PM »
Lar,

Cool Beans. The interface is thinking outside the box.

I gotta get me a box so I can think outside it.  8)

bd

DrollTroll

  • Kindly Curmudgeon
  • Administrator
  • *****
  • Posts: 4216
Re: Arrow options
« Reply #13 on: February 01, 2018, 11:12:34 AM »
> AW_CURVED
Alias AW_CURVED &H0905 'R/W - b (0: false, 1: true) version 22.1 indicates/sets the ability to draw an arrow with a curved body.
[/color][/size][/font]
25 years with DesignCAD

Lar

  • Hero Member
  • *****
  • Posts: 2745
Re: Arrow options
« Reply #14 on: February 01, 2018, 11:38:03 AM »

Thanks, DT. I was hoping you would chime in.


Here's the updated code...


Code: [Select]
'Arrow_Copy Props_by Lar.d3m...     'just so y'all know, whenever I copy a macro from the forum I tag the author in the name...
'by Lar, Nassau, Bahamas, 30jan18, 1feb18...
'Macro to get the properties from a selected arrow or dimension (arrow props only) then run the Arrow command so user can set the points to draw an arrow...
'INSTRUCTIONS: Before running the command select an arrow or dimension. If you did not select anything or you selected some other entity type you will get a chance to select something proper. If you make 5 failed attempts the macro will inform you then end...

include "*\dcadalias.d3i"             'use this if dcadalias.d3i is in the default macro folder...
'include "C:\Macros\dcadalias.d3i"    '...or use the exact path...
count=0
if sys(80)<>0 then goto PAS_RE_SEL   'if something i selected...
if sys(80)=0 then                    'if nothing i selected...
'----------------------------------------------------
RE_SEL1:
sys(1027)=0  'message box style = OK, (1) (default)...
if count=5 then
message "Too many failed attempts. Macro will end.",CHR$(13),"SELECT an ARROW or DIMENSION then repeat this macro..."
END
end if
'---------
sys(1027)=5  'message box style = Retry (4) /Cancel (2)...
message "Nothing is selected. CLICK to SELECT an ARROW or DIMENSION to get its properties << or CANCEL to END>>..."
'1=OK, 2=Cancel, 3=Abort, 4=Retry, 5=Ignore, 6=Yes, 7=No...
if sys(1028)=2 then END
>PointSelect
{
}
count=count+1
goto PAS_RE_SEL
end if
'----------------------------------------------------
RE_SEL2:
if count=5 then
sys(1027)=0  'message box style = OK, (1) (default)...
message "Too many failed attempts. Macro will end.",CHR$(13),"SELECT an ARROW or DIMENSION then repeat this macro..."
END
end if
'---------
sys(1027)=5  'message box style = Retry (4) /Cancel (2)...
message "...WRONG entity type. CLICK to SELECT an ARROW or DIMENSION to get its properties << or CANCEL to END>>..."
'1=OK, 2=Cancel, 3=Abort, 4=Retry, 5=Ignore, 6=Yes, 7=No...
if sys(1028)=2 then END
>PointSelect
{
}
count=count+1
'----------------------------------------------------
PAS_RE_SEL:
if sys(80)=0 then goto RE_SEL1   'if nothing is selected...
getselect 1, e
entity e
if sys(90)=24 then   'if an arrow is selected...
 Query AW_Type, atype
 Query AW_Size, asize
 Query AW_Double, adouble
 Query AW_Curved, acurved
' Query AW_Scale, ascale   'scale relative to text size, no necessary for this macro (but good to know this capability is still around)...
goto ARRO
end if
if sys(90)>73 AND sys(90)<82 then   'if one of the dimension types is selected (types 74 thru 81)...
 Query D_ArrowType, atype
 Query D_ArrowSize, asize
goto ARRO
end if
'----------------------------------------------------
'if any other type is selected...
goto RE_SEL2
'----------------------------------------------------
'sys(80)=0   'deselect...  but we'll keep the selection so user can just press F3 to repeat the macro and not be bothered about selecting anything (will have to manually deselect for a different arrow/dim type)...
ARRO:
>Arrow
{
'  <Color []
'  <Layer []
  <Type [atype]
  <Size [asize]
  <DoubleSided [adouble]    '0=No, 1=Yes...
  <CurvedArrow [acurved]    '0=No, 1=Yes...
'  <PointXYZ []             'user will manually enter points...
  }




Lar