Zobrazit plnou verzi příspěvku: Ekvid do hladiny

Radim Cech
08.01.2012, 16:57


Zdravím konferenci,kdysi jsem si stáhnul aplikaci, která umožňovala provést ekvid do nastavené hladiny, což šetřilo čas, aby se pak nemusely entity přehazovat do jiné hladiny.Pátral jsem kde se dalo, ale nedařilo se.Nemáte někdo takovou pomůcku k dispozici?Díky

Vladimír Michl
08.01.2012, 18:05


Možná by pomohla naše starší utilita XOffset - viz Download a tip:http://www.cadforum.cz/cadforum/ekvidistanta-pro-vice-vybranych-objektu-najednou-tip7794

Radim Cech
08.01.2012, 18:52


Tu jsem zkoušel, protože mně ta možnost vybrat víc entit a odsadit je o stejnou vzdálenost, zaujala. Ale to není ono. Tem dotaz na umístění INWARDS/OUTWARDS je u přímky dost zádrhel, kde je vlastně IN/OUT, když není jasný začátek a směr přímky. A nepamatuje si to poslední zadanou hodnotu ekvidistance. 

Vladimír Michl
08.01.2012, 18:56


Ano, bylo to dělané primárně na uzavřené křivky. Asi doplníme volbu "Outwards-Left" a naznačíme stávající směr křivky (jinak by to znamenalo kliknutí navíc). Doplnění zapamatování vzdálenosti bude jednoduché.

Radim Cech
08.01.2012, 19:17


Ahoj Vláďo, něco jsem našel a funguje to přesně, jak potřebuji. Snad jen, že jednotky jsou "palce"!Nejdřív se ptá na entitu v hladině, do které chceme umístit "offset" entity, pak na vzdálenost, pak entitu, od které chceme "offset" dělat a pak na kterou stranu je jí třeba umístit. A pokračuje dotazem na další entitu. Já neprogramátor neumím najít to nastavení, aby to bralo aktuální jednotky:-(  ;;;;;; jbTools R4 Copyright © 2001;;;(defun c:jbOffsetLayer (/
*Error* off_lay lay b off_dist ent_set ent p1old-dist)(defun *Error*
(Msg)(cond((or (not Msg) ;<- note this (or) clause(member
Msg'("console break""Function cancelled""quit / exit
abort")) ;_ closes member) ;_ closes or) ;_ closes condition, no
message to display((princ (strcat "\nError: " Msg))) ; else display
message) ;_ closes cond(if ent(redraw ent 4))(if (and
old_filletrad (> old-dist -1))(setvar "offsetdist"
old-dist))(princ))(setq off_lay (getvar "clayer"))(setq lay
(entsel"\nPick an object on the layer for Offset:
"))(if lay(progn(setq off_lay (cdr (assoc 8 (entget (car
lay)))))))(if (= (setq old-dist (getvar "offsetdist")) -1)(setq
b "Through")(setq b (rtos (getvar "offsetdist") 4)))(setq off_dist
(getdist (strcat "\nOffset distance or Through <" b "> ")))(if (=
off_dist nil)(setq dist b)(setq dist off_dist))(setq ent_set
(entsel "\nSelect object to offset: "))(while ent_set(setq ent (car
ent_set))(redraw ent 3)(setq p1 (getpoint "\nSide to offset?
"))(redraw ent 4)(command "_.offset" dist ent_set p1
"")(vlax-put-property (vlax-ename->vla-object (entlast)) 'layer
off_lay)(setq ent_set (entsel "\nSelect object to offset or :
")))(princ)(princ))

Vladimír Michl
08.01.2012, 20:28


Radime, jestli to dělá co má, mělo by stačit nahradit: (setq b (rtos (getvar "offsetdist") 4))novým(setq b (rtos (getvar "offsetdist") 2))Nezkoušeno, ale jiný odaz na jednotky tam nevidím.

Radim Cech
08.01.2012, 21:03


Bingo!! Díky Vláďo

Mantlík
09.01.2012, 09:50


Pro ekvid do AKTUÁLNÍ hladiny taky docela spolehlivě slouží tohle uploads/20120109_095013_OFFTOLAY.LSP

Vladimír Michl
09.01.2012, 09:59
Jinak je též doplněna upravena ta původní verze XOffset (viz Download) - vícenásobné rovnoběžky, automatická detekce vnitřní/vnější pro uzavřené křivky, volitelná cílová hladina, zapamatovaná vzdálenost.

Petr75
11.01.2012, 15:27
Příkaz EKVID umí vytvořit rovnoběžku do zdrojové hladiny nebo do aktuální, tak nevím proč to řešit nějakým dalším programem. Pak je tu ještě příkaz exoffset z express, který to též umí.

Mantlík
11.01.2012, 15:43


On dává EKVID ve verzi 2012 na výběr, zda do zdrojové hladiny nebo do aktuální? Zatím uměl jen do zdrojové ...

Vladimír Michl
11.01.2012, 19:07


[CMD]EKVID[/CMD] v novějších verzích AutoCADu už má volbu Hladina. Ale prvotní účel utility XOffset byl jiný - automatická volba vnější/vnitřní pro rovnoběžky více objektů (např. parcel) najednou. To neumí ani EKVID ani EXOFFSET.