ARKANCE - globální Platinum partner Autodesk ARKANCE | KONTAKT - CZ | SK | EN | DE
Přes 123.000 registrovaných u nás, celkem 1.127.000 registrovaných (CZ+EN). Tipy pro AutoCAD 2027, pro Inventor 2027 a pro Revit 2027. Nový Kalkulátor nosníků, Spirograf generátor a Regresní křivky v sekci Převodníky. Kompletní příkazy a proměnné AutoCADu 2027.
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 emea.support.arkance.world
  FAQ FAQ  Prohledat fórum   Události   Registrovat Registrovat  Přihlásit Přihlásit

Téma uzavřenoNepřesnost při cmd příkazech

 Odpovědět Odpovědět archiv
Autor
BenaCZ Zobrazit panel
Diskutér
Diskutér

Přihlášen: 02.říj.2006
Lokalita: ČR (Pha)
Používám:
AutoCad2007
Stav: Offline
Bodů: 60
Přímý odkaz na tuto zprávu Téma: Nepřesnost při cmd příkazech
    Zasláno: 23.lis.2006 v 14:46
Dobrý den,
všiml jsem si, že když se mi v lispu vyskytuje funkce "command" (např otočit), tak se do výsledku vnášejí chyby. Myslím tím že když dám něco otáčet v lispu pomocí command, tak se to otočí o trochu jiný úhel, než je ten spočtený. Přisuzuji to nějakému nastavení přesnosti při používání command příkazů v lispu. Ale přesnost v nastavení jednotek autocadu na to nemá vliv.
Nejsnáze pochopitelný je to na příkladu. Udělal jsem funkci "otocrychle", kde otáčím výběr pomocí 3 bodů. Z těchto 3 bodů si spočítám úhel o který se to má otočit. Když si to pak hodně přiblížím, zjistím, že to není otočené úplně přesně. Spočtený úhel je ale určitě správný. (když u jiného lispu podobně počítám úhel, který pak používám pro něco jiného, tak to funguje perfektně).
Tady je ten lisp, dyžtak si to vyzkoušejte:

;;; Otočí podle 3 bodů
(defun C:otocr (/        ORM           SNM               mysset
          counter        stredpt    firstpt      endpt         angle_new
          angle1        angle2     delta_x1      delta_y1   delta_x2
          delta_y2
            )
;;;nastaví orto a krok na 0
(setq ORM (getvar "orthomode"))
(setq SNM (getvar "snapmode"))
(setvar "orthomode" 0)
(setvar "snapmode" 0)
;;;násobný výběr
(setq mysset (ssget))
(setq counter 0)
(while (< counter (sslength mysset))
    (terpri)
    (setq counter (+ counter 1))
)
;;;vlastní funkce
(setq stredpt (getpoint "\nVyber stred otáčení:"))
(setq firstpt (getpoint "\nVyber 1. bod otáčení:"))
(setq endpt (getpoint "\nVyber 2. bod otáčení:"))
(setq delta_x1 (- (nth 0 firstpt) (nth 0 stredpt)))
(setq delta_y1 (- (nth 1 firstpt) (nth 1 stredpt)))
(setq angle1 (atan delta_y1 delta_x1))
(setq delta_x2 (- (nth 0 endpt) (nth 0 stredpt)))
(setq delta_y2 (- (nth 1 endpt) (nth 1 stredpt)))
(setq angle2 (atan delta_y2 delta_x2))
(setq angle_new (atof (angtos (- angle2 angle1) 0 2)))
(command "_rotate" mysset "" stredpt angle_new)

;;; obnovuje původní orto a krok
(setvar "orthomode" ORM)
(setvar "snapmode" SNM)
)

Nevíte někdo jak to udělat, aby to fungovalo správně?
Díky za každou radu, Bena
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: 23.lis.2006 v 14:58
S nepřesností jsem se nikdy nesetkal. IMHO k ní není důvod.
Ten spočítaný úhel si zaokrouhlujete na 2 desetinná místa. Nemůže to být tím?
Jinak já bych asi pouřil v příkazu otáčení referenci úhly bych nemusel počítat.
Vítězslav Seiner

Chrudim
Zpět nahoru
BenaCZ Zobrazit panel
Diskutér
Diskutér

Přihlášen: 02.říj.2006
Lokalita: ČR (Pha)
Používám:
AutoCad2007
Stav: Offline
Bodů: 60
Přímý odkaz na tuto zprávu Zasláno: 23.lis.2006 v 15:10
Aha, díky za upozornění. Toho jsem si nevšiml (tý dvojky) to bude určitě tím. Musím si najít v helpu jestli se to zaokrouhlení dá úplně vypustit nebo jestli tam musím nastavit jen více desetinných míst... nevíte to náhodou z hlavy? Díky Bena

P.S. tak nepřesnosti beru zpě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: 23.lis.2006 v 15:14
Myslím, že když se vypustí, použije se nastavení UNITS (Jednotky)
Vítězslav Seiner

Chrudim
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: 23.lis.2006 v 15:16
Když jsem tam dal 16, tak už jsem se na nepřesnost "nedozoomoval"
 
Vítězslav Seiner

Chrudim
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: 23.lis.2006 v 15:19
Opravuji - podle systemove promenne AUPREC
Vítězslav Seiner

Chrudim
Zpět nahoru
BenaCZ Zobrazit panel
Diskutér
Diskutér

Přihlášen: 02.říj.2006
Lokalita: ČR (Pha)
Používám:
AutoCad2007
Stav: Offline
Bodů: 60
Přímý odkaz na tuto zprávu Zasláno: 23.lis.2006 v 15:40
jj díky moc,taky jsem vyzkousel 16 a je to v poho... mam takovy pocit ze i excel jede na 16 desetinnych mist, tak to musi stacit :) Bena
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ů: 22189
Přímý odkaz na tuto zprávu Zasláno: 23.lis.2006 v 15:40
To je jedno - Jednotky nastavují AUPRES.
Hlavně je ale zbytečné převádět numerické hodnoty na stringy a tím pádem to komplikovat zaoukrouhleními a jednotkami - funkce (command) bere i normální numerické hodnoty (v plné přesnosti).
Vladimír Michl (moderátor)
ARKANCE CZ - arkance.world
(podpora viz emea.support.arkance.world)
Zpět nahoru
hynekn Zobrazit panel
Diskutér
Diskutér

Přihlášen: 13.lis.2006
Lokalita: ČR (Pha)
Používám:
ADT 3
Stav: Offline
Bodů: 49
Přímý odkaz na tuto zprávu Zasláno: 11.pro.2006 v 08:34
Hlavně jsem nepochopil, proč úhel nejprve převádíte na řetězec a pak zpátky na float (číslo s desetinnou čárkou). Dvojice angtos - atof je nesmyslná. Pokud budete používat "nativní" původní čísla, jedete vždy v základní přesnosti AutoCADu, AUPREC a podobné spíše formátovací záležitosti můžete zapomenout a tentokrát se opravdu nedozoomujete.
Hynek
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: 11.pro.2006 v 08:39
Ale Hlho, to už sem psal pan Michl 23/11...
Vítězslav Seiner

Chrudim
Zpět nahoru
johny Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 24.led.2006
Lokalita: ČR (JM)
Používám:
C3D 2024
Stav: Offline
Bodů: 1760
Přímý odkaz na tuto zprávu Zasláno: 18.pro.2006 v 14:27
No myslim, že to je obyčejny referenčni otačení, takže se to da udělat i takto:
(defun C:O() ;Otoc------------OtRef
  (command "vyber" pause)
  (command "_rotate" "p" "" pause "r" "@" pause pause)
  (princ)
)
Což používám já.
Zpět nahoru

Pro technickou podporu CAD
kontaktujte Helpdesk

Příbuzné CAD tipy:
Tip 4541:Jak spojit nepřesně navazující čáry do jedné polyline? (pospojování čar)
Tip 10567:Referenční rovina je nepatrně mimo osy a může způsobit nepřesnosti.
Tip 4621:Nastavení tolerance pro automatické začištění výkresu.
Tip 7582:Výběr dynamických bloků podle dynamické vlastnosti nebo stavu viditelnosti.
Tip 11809:Jak najít chybně uzavřené obrysy tvarů pro laserové vypalování?
Tip 12765:Úsečky s jediným uzlem, nepřesné uchopení, průsečíky, rovnoběžky, šrafy - CheckLarge


 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,242 sekund.