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ě.
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.
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.
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;;@;\
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=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ší.
[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
[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