ARKANCE - globální Platinum partner Autodesk ARKANCE | KONTAKT - CZ | SK | EN | DE
Registrujte se na 22. ročník konference CADfórum 2025 - 30.9. Zámek Valeč.
Přes 119.000 registrovaných u nás, celkem 1.101.000 registrovaných (CZ+EN), přes 53.000 CAD/BIM bloků. Vyzkoušejte nový přesný Inženýrský kalkulátor a proměnné prostředí AutoCADu.
Registrujte se na konferenci CADfórum 2025 - automatizace navrhování
RSS kanál - CAD tipy RSS tipy
RSS diskuze

Diskuze Diskuzní fórum, poradna

?
CAD diskuze, rady, výměna zkušeností

CAD Fórum - Homepage Veřejné diskuzní fórum k CAD aplikacím - ptejte se na libovolné otázky týkající se oboru CAx, podělte se o vaše znalosti a zkušenosti s programy AutoCAD, Inventor, Revit, Fusion, 3ds Max, Vault a s dalšími CAD/BIM/PDM aplikacemi. Zaregistrujte se nebo se přihlašte a zašlete váš příspěvek do odpovídajícího fóra. Viz další informace o CAD Fóru. Nechcete se registrovat? Zeptejte se v naší Facebook poradně.
Fórum nenahrazuje technický support firmy ARKANCE (CAD Studio) - přímá podpora pro zákazníky funguje na helpdesk.arkance-systems.cz
  FAQ FAQ  Prohledat fórum   Události   Registrovat Registrovat  Přihlásit Přihlásit

Téma uzavřenoNalezení např. 1/6 mezi dvěmi body

 Odpovědět Odpovědět archiv
Autor
chlebovsky Zobrazit panel
Zasloužilý člen
Zasloužilý člen
Avatar

Přihlášen: 18.čer.2007
Lokalita: ČR (JM)
Používám:
Autocad R9 - 2022
Stav: Offline
Bodů: 112
Přímý odkaz na tuto zprávu Téma: Nalezení např. 1/6 mezi dvěmi body
    Zasláno: 02.srp.2007 v 13:16
Zdravím. Někdy se mi stane že mám dva objekty a potřebuju mezi ně třeba do 1/6 nakopírovat něco. Vytvořil jsem si utilitku rozdel, ale volám ji vrámci příkazu. A ta mi to má provést. Ale mám problém s tím že mi ten výsledný bod sice dobře spočítá ale vždy přichytí k uchopovacím funkcím. Tak jsem tam nastavil vypnutí, teď to funguje bezvadně, ale vždy vypne uchop. Nevíte jak to opětovně zapnout? Problém je v tom že výsledkem funkce musí být (xyz)....
 
Tady je lsp:
 
(defun rozdel (dist / b1 b2 b)
  (setq b1 (getpoint (getvar "LASTPOINT") "\nDefinuj první bod :"))
  (setq b2 (getpoint (getvar "LASTPOINT") "\nDefinuj druhý bod :"))
  (if (< (getvar "OSMODE") 16384)
       (setvar "OSMODE" (+ 16384 (getvar "OSMODE")))
  )
  (setq b (polar b1 (angle b1 b2)(* dist (distance b1 b2))))
)
 
Funguje takto, mám dva prvky. Vemu jeden, dám kopie, a teď určuju bod vložení a já napíšu : (rozdel 0.166666), spustí se funkce, zadám první bod, druhý bod, a prvek se nakreslí do 1/6 ale jak pak zapnout uchop ???
Vždy musím znovu f3.....
Zpět nahoru
Kackac Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 11.úno.2006
Lokalita: ČR (Pha)
Používám:
AutoCAD
Stav: Offline
Bodů: 469
Přímý odkaz na tuto zprávu Zasláno: 03.srp.2007 v 01:00
mám v některých svých lispech:
    (setq osold (getvar "OSMODE")) - na začátku programu
    (command "_-osnap" "") - před vložením bloku, resp. ukázáním místa vložení
    (setvar "OSMODE" osold) - na konci
možná to není nejhladší způsob, ale mělo by to fungovat i u toho vašeho lispu

Zpět nahoru
Seiner Zobrazit panel
CAD/BIM manager
CAD/BIM manager

Přihlášen: 01.říj.2004
Lokalita: ČR (PA)
Používám:
Mechanical 2017, Inventor 2017 a starší
Stav: Offline
Bodů: 1662
Přímý odkaz na tuto zprávu Zasláno: 03.srp.2007 v 06:57
Nojo - to je notoricky známá věc, jejíž první část taky p.Chlebovský ve svém lispu (korektněji napsaný) má. Jenže jste si asi nevšimnul, že on chce zadat příkaz normálně (tlačítkem, zkratkou...) a někde uprostřed vkládání parametrů použít předdefinovanou funkci.
   Nějak mne nenapadá jiné řešení, něž napsat lispy, které by zahrnovaly i vlastní modifikační funkci (kopírování aj.). Pak není problém vrátit uchopovací mód zpátky. Ztrácí se tak ona flexibilita použití. Na druhou stranu si myslím, že vypisovat pořád "(rozdel 0.166666)" taky není příklad uživatelského konfortu :-)
Vítězslav Seiner

Chrudim
Zpět nahoru
chlebovsky Zobrazit panel
Zasloužilý člen
Zasloužilý člen
Avatar

Přihlášen: 18.čer.2007
Lokalita: ČR (JM)
Používám:
Autocad R9 - 2022
Stav: Offline
Bodů: 112
Přímý odkaz na tuto zprávu Zasláno: 04.srp.2007 v 08:16

Použití zpětného nastavení osold, nelze, z důvodu jak zmiňuje i p. Seiner. Poněvadž kdybych použil na konci lispu nastavení (setvar osmode tak hodnota co funkce vrátí je číslo uchopu a nikoliv hodnota spočítaného bodu.

Samo že nevypisuju (rozdel.....) ale mám to defunované v ikoně.
Prostě kliknu na ikonu 1/6 a ta volá celou funkci.
Jen mě napadlo, jestli to co funkce vrátí by nemusel být celý bod, ale posloupnost příkázu
např
(setvar "OSMODE" 0)(list x y z)(setvar "OSMODE" old).... jenže nějak to nemůžu rozchodit.... prostě že výstupem bude celý proces nastavení i bodu...
Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar
ARKANCE

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Implementujeme řešení Autodesk
Stav: Offline
Bodů: 21992
Přímý odkaz na tuto zprávu Zasláno: 05.srp.2007 v 17:28
Nezkoušel jsem to, ale myslím, že by mohlo v tomto případě pomoci nastavení OSNAPCOORD na 1 - nemusíte pak OSMODE vůbec vypínat.
Vladimír Michl (moderátor)
ARKANCE CZ - arkance.world
(podpora viz helpdesk.arkance-systems.cz)
Zpět nahoru
chlebovsky Zobrazit panel
Zasloužilý člen
Zasloužilý člen
Avatar

Přihlášen: 18.čer.2007
Lokalita: ČR (JM)
Používám:
Autocad R9 - 2022
Stav: Offline
Bodů: 112
Přímý odkaz na tuto zprávu Zasláno: 06.srp.2007 v 13:37
pane Michl tak Vám jsem dával největší šanci, ale taky né. Taky to pořád chytá za uchopovací body....
 
To předělání funkcí (kopie, ....) dle p. Seinera moc nechci dělat...
 
Způsob že bych jako vrácenou hodnotu použil
(setvar "OSMODE" 0)(list x y z)(setvar "OSMODE" old) nelze taky protože to sice, vypne, nakreslí bod, a tapne, ale i ty dvě nastavení bere jako info o bodu, takže ve skutečnosti nakreslí 3 body.
 
Jen mě napadlo, kterou funkci vyvolává klávesa F3 jestli by se to nedalo řešit přímo takto :
(funkce F3)(list x y z)(funkce F3)  jen vědět co ta F3 spouští za funkci, a hlavně musí vracet nil..
Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar
ARKANCE

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Implementujeme řešení Autodesk
Stav: Offline
Bodů: 21992
Přímý odkaz na tuto zprávu Zasláno: 06.srp.2007 v 15:30
ne, to na to jdete špatně
 
zkuste do té vaší rutiny připsat na konec ještě převod na text:
 
  (strcat (rtos(car b)) "," (rtos (cadr b)))
pak bude chodit ten postup s OSNAPCOORD
Vladimír Michl (moderátor)
ARKANCE CZ - arkance.world
(podpora viz helpdesk.arkance-systems.cz)
Zpět nahoru
Seiner Zobrazit panel
CAD/BIM manager
CAD/BIM manager

Přihlášen: 01.říj.2004
Lokalita: ČR (PA)
Používám:
Mechanical 2017, Inventor 2017 a starší
Stav: Offline
Bodů: 1662
Přímý odkaz na tuto zprávu Zasláno: 07.srp.2007 v 07:13
Hezké - ono to skutečně funguje. Logika mi sice uniká, ale pokusím si to zapamatovat :-)
Vítězslav Seiner

Chrudim
Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar
ARKANCE

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Implementujeme řešení Autodesk
Stav: Offline
Bodů: 21992
Přímý odkaz na tuto zprávu Zasláno: 07.srp.2007 v 07:54
Logika je ta, že musíte AutoCAD přesvědčit že jde o "souřadnici zadanou pomocí klávesnice" - pak zabere nastavení OSNAPCOORD.
Vladimír Michl (moderátor)
ARKANCE CZ - arkance.world
(podpora viz helpdesk.arkance-systems.cz)
Zpět nahoru
chlebovsky Zobrazit panel
Zasloužilý člen
Zasloužilý člen
Avatar

Přihlášen: 18.čer.2007
Lokalita: ČR (JM)
Používám:
Autocad R9 - 2022
Stav: Offline
Bodů: 112
Přímý odkaz na tuto zprávu Zasláno: 13.srp.2007 v 16:39
Jo tak nakonec to funguje, moc moc díky všem.
A tady je teda výsledek :
 
(defun rozdel (dist / b1 b2 b)
  (if (/= (getvar "OSNAPCOORD") 1)(setvar "OSNAPCOORD" 1))
  (setq b1 (getpoint (getvar "LASTPOINT") "\nDefinuj první bod :"))
  (setq b2 (getpoint (getvar "LASTPOINT") "\nDefinuj druhý bod :"))
  (setq b (polar b1 (angle b1 b2)(* dist (distance b1 b2))))
  (strcat (rtos(car b)) "," (rtos (cadr b)))
)
 
a pak mám dvě ikonky :
a v makru mám lispík : (rozdel 0.5)
a druhý (rozdel (/ 1.0 3.0))
 
díky.
 
Zpět nahoru
Sedláček Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 15.dub.2005
Lokalita: Czech Republic
Používám:
AutoCad 2024 LT
Stav: Offline
Bodů: 384
Přímý odkaz na tuto zprávu Zasláno: 13.srp.2007 v 17:02
Nebylo by to jednodušší pře geometrickou kalkulačku _CALC?
Já to sice nepoužívám (ani nemohu - mám LT) ale dle helpu by to mělo jít.
Zpět nahoru
Seiner Zobrazit panel
CAD/BIM manager
CAD/BIM manager

Přihlášen: 01.říj.2004
Lokalita: ČR (PA)
Používám:
Mechanical 2017, Inventor 2017 a starší
Stav: Offline
Bodů: 1662
Přímý odkaz na tuto zprávu Zasláno: 13.srp.2007 v 17:12
BTW, tu polovinu teď už nemusíte řešit - uchopení _M2P.
(Ale takhle to máte jednotné a můžete případně přidávat další zlomky.)
Vítězslav Seiner

Chrudim
Zpět nahoru

Pro technickou podporu CAD
kontaktujte Helpdesk

Příbuzné CAD tipy:
Tip 6527:Import SHP souborů, stylizace zobrazení a topologická analýza v AutoCADu Map.
Tip 9589:Problém obchodního cestujícího - nejkratší cesta mezi body.
Tip 12788:Jaký je v analýze rozdíl mezi napětím Von Mises, prvním a třetím hlavním napětím?
Tip 2254:VIPKolize datových zdrojů SDF a SHP mezi MapGuide a OnSite 6.
Tip 8599:Kontrola kolizí 3D návrhu v Autodesk Navisworks.
Tip 6411:Nesprávné oříznutí výstupu při tisku mezí výkresu.


 Odpovědět Odpovědět

Přejít na fórum Oprávnění fóra Zobrazit panel



Stránka byla vygenerována za 0,398 sekund.