Zobrazit plnou verzi příspěvku: Šipka - směr - pomocí PLINE

Radim Cech
25.11.2007, 17:39
Dostal jsem výkres a v něm byly šipky - směry kresleny pomocí PLINE. To mě docela zaujalo a dávám k dobru sekvenci třeba pod tlačítko
 
Šipka vpravo
 
^C^C_PLINE \_L -0 _W 0 1 _L -1 _W 0.5 0.5 _L 1 ;
 

Šipka vlevo
 
^C^C_PLINE \_L 0 _W 0 1 _L 1 _W 0.5 0.5 _L 1 ;
 
L -0 , resp. L 0 řídí směr vykreslování vlevo resp. vpravo
 
W 0 1 první část z šířky 0 na šířku 1
 
L -1 délka první části
 
W 0.5 0.5 druhá část šířky 0.5
 
L 1 délka druhé části
 
Předpokládá FILLMODE=1, aby byly vyplněné
 
Pro označení vstupů do objektů pak stačí jen první část šipky, vlastně trojúhelník
 
Vstup vpravo
 
^C^C_PLINE \_L -0 _W 0 1 _L -1 ;
 
Třeba to někomu příjde k dobru jako mně.
 
 
 
 

zisoun
26.11.2007, 14:42
Celkem šikovná věc, ale je to omezené pouze na určitý směr. Užitečnější by to bylo, kdyby se třeba po vložení mohl zadat směr šipky např. myší. Ale nedaří se mi to upravit.

Radim Cech
26.11.2007, 14:59
S tím omezením souhlasím. Je potřeba natočit souřadný systém.  Dalo by se tam ještě vložit přímo natočení USS 3 body, přičemž směr X by znamenal směr šipky, ale jestli je to lepší, nedokážu posoudit. NAvíc by se neptal na směr šipky, ale na body USS. Jinak asi LISP, ale ten nevyužijí LTčkáři, tohle s drobným omezením ano.

zisoun
26.11.2007, 16:16
Tak jsem se pořád snažil to natočení dostat přímo dovnitř příkazu _pline a nakonec stačí přidat na konci makra natočení. Takže pak to vypadá takhle : ^C^C_pline;\_l;-0;_w;0.5;0.5;_l;-1;_w;1;0;_l;1;;_rotate;_l;;$M=$(getvar,lastpoint);\Ještě jsem změnil pořadí kreslení šipky, tak aby se jako poslední kreslil vrchol šipky a mohl otáčet právě v tom vrcholu a funguje to.

Radim Cech
26.11.2007, 16:39
Dobrý.  Já nejsa progrmátor ani v náznaku, ten fígl s $M=$(getvar,lastpoint);\neznám.

Radim Cech
26.11.2007, 17:36
Akorát je trochu nepraktické, že se kreslí od bodu, který vyberu. Když jsem tam natvrdo zadal otáčení o 50g, ukážu a šipka je vlastně jinde.
 
Ale zkoušel jsem tam vložit ještě otočení celé šipky v polovině o 200g, což se mi zdařilo, ale už pak ne ten další krok s tím otáčením.
 
Možná to pro Vás bude hračka. Prostě po nakreslení se šípka v polovině své délky otočí o 200g a ten bod, o který se to otáčí, je vlastně první vybraný bod.
 
Ale neumí to poskládat.

zisoun
26.11.2007, 22:56
Tak jsem si s tím pohrál a upravil jsem to takto :
^C^C_pline;\_l;-0;_w;0;1;_l;-1;_w;0.5;0.5;_l;1;;_rotate;_l;;\\_scale;_l;;$M=$(getvar,lastpoint);\
Po vložení se to zeptá na referenční bod otáčení, tzn. je možno vybrat
vrchol šipky, polovinu nebo konec a po vybrání ukážu směr nebo vyberu
bod na který chci ukázat. Nakonec jsem tam dal ještě změnu měřítka,
protože pokaždé se mi hodí jiná velikost, kterou zadám bud ručnš nebo
prostě táhnu myší až se mi to líbí. Pokud nechci měřítko měnit,zrušim
ESC.Pro samotný trojúhelník je to podobné :^C^C_pline;\_l;-0;_w;0;1;_l;-1;;_rotate;_l;;\\_scale;_l;;$M=$(getvar,lastpoint);\


Radim Cech
27.11.2007, 04:57
Už jen pro pořádek by to mělo být pro šipku s polovičními hodnotami, aby při zadání měřítka "1" měla šipka skutečně délku 1 j.
 
^C^C_pline;\_l;-0;_w;0;0.5;_l;-0.5;_w;0.25;0.25;_l;.5;;_rotate;_l;;\\_scale;_l;;$M=$(getvar,lastpoint);\
U trojúhelníku to může zůstat
 
^C^C_pline;\_l;-0;_w;0;1;_l;-1;;_rotate;_l;;\\_scale;_l;;$M=$(getvar,lastpoint);\
 
 
Ještě by stálo za upřesnění, že když příkaz z modifikuji
 
 ^C^C_pline;\_l;-0;_w;0;0.5;_l;-0.5;_w;0.25;0.25;_l;.5;;_rotate;_l;;\50;_scale;_l;;$M=$(getvar,lastpoint);2;
 
Tak se šipka po určení bodu otáčení otočí o 50g a 2x zvětší.
 
Pokud si to chce někdo natvrdo nastavit na různá otočení a velikosti.
 
Díky za pomoc. Snad jsem to nezmrvil
 

Radim Cech
27.11.2007, 05:27

Ještě drobnost. Aby se při spuštění PLINE pro kreslení nekreslilo v poslední zadané tloušťce, je potřeba vložit do příkazu
 
 
 ^C^C_pline;\_l;-0;_w;0;0.5;_l;-0.5;_w;0.25;0.25;_l;.5;;plinewid;0;_rotate;_l;;\\_scale;_l;;$M=$(getvar,lastpoint);\

Sedláček
27.11.2007, 08:04
Jen pro doplnění. Místo $M=$(getvar,lastpoint) stačí @
 
^C^C_pline;\_l;-0;_w;0.5;0.5;_l;-1;_w;1;0;_l;1;;_rotate;_l;;@;\

alfred
27.11.2007, 08:08
Nechci vypadat jako kverulant, ale v cem je sipka z krivky lepsi nez blok? Meritko bloku lze menit zvlast X a Y a natoceni je take snadne...

zisoun
27.11.2007, 08:24

[QUOTE=Radim Cech]
.....Snad jsem to nezmrvil

[/QUOTE]

Určitě ne. Upravit se to dá takto jednoduše podle svých potřeb.

[QUOTE=Sedláček]
Místo $M=$(getvar,lastpoint) stačí @
[/QUOTE]
Ano vím, že se to dá nahradit, ale nějak mi to uniklo. Takto je to kratší a elegantnější.


zisoun
27.11.2007, 08:41

[QUOTE=alfred]Nechci vypadat jako kverulant, ale v cem je sipka z krivky lepsi nez blok? Meritko bloku lze menit zvlast X a Y a natoceni je take snadne...[/QUOTE]Lepší asi nebude, ale ve výsledku to vyjde +- na stejno.
Šipka z křivky je rozdělená na dvě části, které si můžu libovolně natáhnout podle potřeby . A aspoň má člověk dobrej pocit, že to udělal nějak nestandartně.

Radim Cech
27.11.2007, 08:47
Můj osobní názor, ale samozřejmě neobjektvní, že čím je bloků ve výkrese míň, tím líp. Hlavně při sdílení s jinými projektanty. A hlavně velmi lehce mohu tento tip dát i ostatním kolegům bez složitého vysvětlování

Radim Cech
27.11.2007, 08:48
[QUOTE=Sedláček]Jen pro doplnění. Místo $M=$(getvar,lastpoint) stačí @
 
^C^C_pline;\_l;-0;_w;0.5;0.5;_l;-1;_w;1;0;_l;1;;_rotate;_l;;@;\[/QUOTE]
 
Kde na ty nápady chodíte

Kackac
28.11.2007, 05:15

[QUOTE=Radim Cech]čím je bloků ve výkrese míň, tím líp[/QUOTE]Tak to já naopak bloky preferuju, hlavně z důvodu velmi jednoduché globální editace vzhledu a velikosti. Když připravujete výkres pro 1:200, máte třeba 50 bloků v nějakém měřítku, když pak v dalším stupni projektu děláte 1:50, jen změníte měřítko bloku a je to. Kdyby to byly křivky, tak musíte na každou zvlášť, brrr :)

Ferdinand
28.11.2007, 11:23
V podstatě souhlasím s alfrédem a s Kackac. Já v tom vidím také riziko: pokud se ta "šipka" - třeba nějakým nedopatřením či při "globálním rozbitím všeho" - rozbije, zbydou po ní 2 navazující linky a "šipka" je v ... Pokud se rozbije blok (který bych osobně vytvořil jako 3 entity _solid - ten se taky nedá rozbít), zbyde po něm opět šipka. Ferdinand2007-11-28 11:24:26

Ferdinand
28.11.2007, 14:50
Viz můj dnešní příspěvek sipka1 v sekci CAD programování Ferdinand2007-11-28 14:57:46