ARKANCE - globální Platinum partner Autodesk ARKANCE | KONTAKT - CZ | SK | EN | DE
Přes 123.000 registrovaných u nás, celkem 1.130.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.
Autodesk Civil 3D 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řenoRychlé otočení

 Odpovědět Odpovědět archiv
Autor
Ferdinand Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 01.říj.2004
Lokalita: Czech Republic
Používám:
AutoCAD
Stav: Offline
Bodů: 1919
Přímý odkaz na tuto zprávu Téma: Rychlé otočení
    Zasláno: 13.říj.2006 v 13:52
Cituji příkazový řádek [+ komentáře]:

Command: _rotate
Current positive angle in UCS:  ANGDIR=counterclockwise  ANGBASE=0.00

Select objects:  
[pick1-CrossWindow/Window]  Specify opposite corner:   [pick2-CrossWindow/Window]  97 found  [anebo se vyfiltrují potřebné entity, případně se zadá _All]
3 were on a locked la-yer.

Select objects: 
[Enter]

Specify base point: 
[pick3, anebo se zadá PočátečníBod]

Specify rotation angle or [Reference]:  [pick4, anebo se zadá HodnotaUhlu]

Upravil Ferdinand - 13.říj.2006 v 13:54
-FerTh-
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: 11.říj.2006 v 10:31
No když otáčím klasicky, tak musím zadat nejdřív co otočit, pak střed otačení, pak dát R, pak znovu střed, koncový bod 1. směru a pak koncový bod 2. směru.

Zatímco v nové funkci dám co otočit, střed, koncový bod 1.směru a koncový bod 2. směru. Ušetřím tím několik kroků.
Bena
Zpět nahoru
Ferdinand Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 01.říj.2004
Lokalita: Czech Republic
Používám:
AutoCAD
Stav: Offline
Bodů: 1919
Přímý odkaz na tuto zprávu Zasláno: 11.říj.2006 v 10:25
Pořád ale mi nějak uniká smysl této procedury. V čem je to teda lepší/rychlejší? Proč nepoužívat raději ono klasické otáčení?
-FerTh-
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: 10.říj.2006 v 22:18
Tak jsem to zdárně vyřešil. Asi jsem špatně chápal, jak to vlastně autocad při tom otáčení dělá. Tak jsem zkoumal jak to vlastně funguje při normálním otáčení a zapsal jsem pak tento kód:

;;; 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)
)


A to už funguje báječně. Bena
Bena
Zpět nahoru
Ferdinand Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 01.říj.2004
Lokalita: Czech Republic
Používám:
AutoCAD
Stav: Offline
Bodů: 1919
Přímý odkaz na tuto zprávu Zasláno: 10.říj.2006 v 19:40
Hm, tak to tedy nevím.
Zkusit to překontrolovat v lisp editoru ?
Úhlové jednotky a smysl úhlu máte OK?
Anebo nepomohlo by prvně změřit úhel od osy X (anebo Y ?) /tj. střed či počátek úhlu/  k zadanému bodu /tj. směr vektoru/ a teprve pak to tam mlasknout jako vybranou/zadanou hodnotu?
-FerTh-
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: 06.říj.2006 v 15:27
Doplnil jsem tam ty ortho a kroky. Změnil jsem to na vícenásobný výběr, ale pořád mi to nefunguje.
Jde mi o to, abych otočil objekty pomocí reference a aby střed otáčení byl stejný jako počátek, který určuje počáteční úhel. Pak bych chtěl kliknout na jeden bod (tím získat počáteční úhel) a pak na druhý bod a tím směrem objekt otočit. Tady je upravený kód:

(defun C:otocr (/ ORM SNM mysset counter stredpt firstpt endpt)
;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í:"))
(command "_rotate" mysset "" stredpt "_R" "" stredpt firstpt endpt)

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

Mám pocit, že mi nefunguje ten endpt a otáčí se mi to podle původně nastaveného referenčního úhlu. Nevíte proč?
Bena
Zpět nahoru
Ferdinand Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 01.říj.2004
Lokalita: Czech Republic
Používám:
AutoCAD
Stav: Offline
Bodů: 1919
Přímý odkaz na tuto zprávu Zasláno: 06.říj.2006 v 14:34
Já už pro jistotu píšu na začátek každého lispu
(setq OSM (getvar "osmode"))
(setq ORM (getvar "orthomode"))
(setq SNM (getvar "snapmode"))
(setvar "osmode" 0)
(setvar "orthomode" 0)
(setvar "snapmode" 0)
a na konci obnovím na původní
(setvar "osmode" OSM)
(setvar "orthomode" ORM)
(setvar "snapmode" SNM)
-FerTh-
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ů: 22215
Přímý odkaz na tuto zprávu Zasláno: 06.říj.2006 v 14:10
Na první pohled to vypadá v pořádku. Snad jen (nesouvisející) drobnosti - "objekt", ne "objekty" a "_R", ne "R".
Jste si vědom, že úhel zadáváte referencí (rozdílem) od stávajícího úhlu, ne absolutně? Drobné odchylky mohou být způsobeny též uchopovacími režimy, 3D, USS, apod.
Vladimír Michl (moderátor)
ARKANCE CZ - arkance.world
(podpora viz emea.support.arkance.world)
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: 06.říj.2006 v 11:00
Mohli byste mi prosím poradit co mám v kódu špatně?
Má to být lisp na funkci otočit (použít referenci, zadat střed otáčení, zadat 1.bod a 2. bod otáčení)
Ono se mi to ale otáčí o jiný úhel...

(defun otocrychle (selected_object / stredpt firstpt endpt)
(setq stredpt (getpoint "\nVyber stred otáčení:"))
(setq firstpt (getpoint "\nVyber 1. bod otáčení:"))
(setq endpt (getpoint "\nVyber 2. bod otáčení:"))
(command "_rotate" selected_object "" stredpt "R" "" stredpt firstpt endpt "")
)

(defun C:otocr (/ selected)
(terpri)
(setq selected (entsel "Vyber objekty:"))
(otocrychle selected)
)

P.S. Jsem začátečník

Díky Bena
Bena
Zpět nahoru

Pro technickou podporu CAD
kontaktujte Helpdesk

Příbuzné CAD tipy:
Tip 12345:Jak změnit souřadnicový systém (rovinu) náčrtu Inventoru?
Tip 13619:Jak v AutoCADu LT rychle otočit pohled o 90°?
Tip 5409:Snadné otočení popisků v Civil 3D.
Tip 3731:VIPTexty pod libovolným úhlem ve výkresech Inventoru.
Tip 527:Proč je otočení mého výkresu nesprávné?
Tip 9086:VIPJak vytvořit 2D axonometrický pohled v AutoCAD Plant 3D?


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