Diskuzní fórum a databáze tipů a utilit pro AutoCAD, Inventor, Revit a další produkty Autodesk - od firmy Arkance Systems [www.cadforum.cz]
CZ | SK | EN | DE
Přihlášení
či registrace
   právě nás čte: 2862 
RSS kanál - CAD tipy RSS tipy
RSS diskuze

Diskuze Diskuzní fórum, poradna

 

NápovědaCAD 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 360, 3ds Max a s dalšími CAD 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 Systems (CAD Studio) - přímá podpora pro zákazníky funguje na helpdesk.cadstudio.cz
  FAQ FAQ  Prohledat fórum   Události   Registrovat Registrovat  Přihlásit Přihlásit

Téma uzavřenoVyčtení souřadnic bodů z modelu

 Odpovědět Odpovědět archiv
Autor
michal.stary Zobrazit panel
Diskutér
Diskutér

Přihlášen: 09.lis.2010
Lokalita: ČR (LB)
Používám:
Inventor2016
Stav: Offline
Bodů: 10
Přímý odkaz na tuto zprávu Téma: Vyčtení souřadnic bodů z modelu
    Zasláno: 22.led.2018 v 11:25
Dobrý den,
potřeboval bych poradit ohledně možnosti jak co nejsofistikovaněji získat souřadnice bodů na zakřivené ploše. Chápu, že běžný je spíše opačný postup - z mračna bodů vytvořit plochu, ale to není můj případ.

Na zakřivené ploše potřebuji získat matici bodů (v definované rozteči) a načíct jejich souřadnice (ideálně s možností exportu do xls apod.).

Napadá mě jen amatérský postup, který není možné aplikovat často a ve větším rozsahu. Konkrétně takto:
1. vytvořím si vertikální osu;
2. vygeneruji pole těchto os v potřebné rozteči;
3. vytvořím body v průsečíku os a dané plochy;
4. odměřuji souřadnice bodu vůči základně, tj. výšku Z, protože X, Y je dáno maticí os.


Připojené náhledyPřihlaste se pro zobrazení plné verze - 28498/Body.JPG



Doplňující informace:
1. většinou se jedná o soubory v univerzálním formátu STEP;
2. základní souřadný systém modelu neodpovídá požadovanému souřadnému systému pro odečet hodnot, ideální by byl automatizovaný přepočet, ale to už je zas jiný problém, kterým asi nemá smysl teď komplikovat tento dotaz.
Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar
Arkance Systems

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Dodáváme produkty Autodesk
Stav: Offline
Bodů: 21432
Přímý odkaz na tuto zprávu Zasláno: 22.led.2018 v 11:46
Můžete si vytvořit pracovní body a ty pak promítnout na vybranou plochu (3D náčrt > Kreslení > Promítnout na plochu). Souřadnice pak lze vyexportovat.
Vladimír Michl (moderátor)
Arkance Systems s.r.o. - www.arkance-systems.cz
(podpora viz hd.cads.cz)
Zpět nahoru
Navara Zobrazit panel
Arkance Systems support
Arkance Systems support
Avatar
Arkance Systems

Přihlášen: 08.zář.2008
Lokalita: ČR (Pha)
Používám:
Inventor
Stav: Offline
Bodů: 1636
Přímý odkaz na tuto zprávu Zasláno: 22.led.2018 v 14:06
Záleží na tom, kolik toho je a jak často je potřeba to provádět. Vámi uvedený postup funguje pro pár bodů a pokud to není příliš často.
Pokud by to mělo být častější, tak bych na to šel přes programování. Buď Inventor umí přímo vygenerovat sadu bodů, které leží na ploše, ale není možné to příliš ovládat. Nebo zadat rozsah souřadnic X a Y (možno vztáhnout k vlastnímu souřadnému systému) a potom iterovat a hledat průsečík s plochou ve směru osy Z.
 
EDIT:
Tady je kód pro tu jednodušší variantu.
 
Sub GetFacePoints()
    Dim oFace As Face
    Set oFace = ThisApplication.ActiveDocument.SelectSet(1)
    Dim tolerance As Double
    Dim vertexCount As Long
    Dim facetCount As Long
    Dim vertexCoordinates() As Double
    Dim normalVectors() As Double
    Dim vertexIndices() As Long
   
    tolerance = 0.01
   
    Call oFace.CalculateFacets(tolerance, vertexCount, facetCount, vertexCoordinates, normalVectors, vertexIndices)
   
    Call CreateStrokesWorkPoints(vertexCoordinates)
   
End Sub
Sub CreateStrokesWorkPoints(vertexCoordinates() As Double)
    Dim part As PartDocument
    Set part = ThisApplication.ActiveDocument
   
    Dim wPoints As workPoints
    Set wPoints = part.ComponentDefinition.workPoints
   
    For i = 0 To UBound(vertexCoordinates) Step 3
        Call wPoints.AddFixed(ThisApplication.TransientGeometry.CreatePoint(vertexCoordinates(i), vertexCoordinates(i + 1), vertexCoordinates(i + 2)))
    Next
   
End Sub
 
Výsledek pak vypadá nějak takhle:

Připojené náhledyPřihlaste se pro zobrazení plné verze - 9996/22-1-2018_14-33-44.png



Upravil Navara - 22.led.2018 v 14:34
Zpět nahoru
michal.stary Zobrazit panel
Diskutér
Diskutér

Přihlášen: 09.lis.2010
Lokalita: ČR (LB)
Používám:
Inventor2016
Stav: Offline
Bodů: 10
Přímý odkaz na tuto zprávu Zasláno: 22.led.2018 v 15:23
Velice děkuji za obě reakce. Rozumné cesty tedy evidentně jsou, uvidím která bude pro mě vhodnější.

Dovolil bych si ale položit s tím související doplňující dotaz. Snad nebude vadit, že to nechám v jednom tématu.
V případě, že výše uvedený objekt nemá rovnou základnu a ani souřadný systém modelu nekoresponuje s geometrií, tak nevím od čeho se "odrazit", viz obr (modrá základna).

Připojené náhledyPřihlaste se pro zobrazení plné verze - 28498/Body2.JPG



Pokud bych chtěl vytvořit rovinu, na kterou by šlo daný objekt položit (a od ní pak definovat výšku bodů), tak mě nenapadá jak postupovat nebo pod jakým tématem danou problematiku hledat. Tedy jak najít na prostorové kontuře 3 dotykové body s rovinou.
Zpět nahoru
Navara Zobrazit panel
Arkance Systems support
Arkance Systems support
Avatar
Arkance Systems

Přihlášen: 08.zář.2008
Lokalita: ČR (Pha)
Používám:
Inventor
Stav: Offline
Bodů: 1636
Přímý odkaz na tuto zprávu Zasláno: 22.led.2018 v 15:29
To záleží hodně na účelu, pro který to potřebujete. Dá se využít přímá manipulace s tělesem (posun, otočení) a tím ho dostat do "správné" polohy vůči základnímu souřadnému systému.
 

Připojené náhledyPřihlaste se pro zobrazení plné verze - 9996/22-1-2018_15-28-14.png

Zpět nahoru
Navara Zobrazit panel
Arkance Systems support
Arkance Systems support
Avatar
Arkance Systems

Přihlášen: 08.zář.2008
Lokalita: ČR (Pha)
Používám:
Inventor
Stav: Offline
Bodů: 1636
Přímý odkaz na tuto zprávu Zasláno: 22.led.2018 v 20:41
Další možností je definovat si vlastní souřadný systém, který je možné volně přetáhnout a natočit tak, aby vyhovoval vašim potřebám. Inventor potom obsahuje řadu nástrojů pro práci s transformačními maticemi a pomocí nich je možné přepočítat polohu bodů z globálního souřadného systému do vašeho uživatelského.
Takže si zvolte postup, který vám bude vyhovovat.
Zpět nahoru
michal.stary Zobrazit panel
Diskutér
Diskutér

Přihlášen: 09.lis.2010
Lokalita: ČR (LB)
Používám:
Inventor2016
Stav: Offline
Bodů: 10
Přímý odkaz na tuto zprávu Zasláno: 23.led.2018 v 08:32
Omlouvám se, asi jsem to nedostatečně popsal. Tyto kroky bych chápal, šlo mi spíše o to, čeho se chytit. Pokud by spodní zvlněnou hranu tvořily 3 vrcholy, tak si mezi nima udělám rovinu a zbytek je tak nějak jasný nebo tedy stejným způsobem přesunu objekt do základního souřadného systému atp.
Ale jak vytvořit tu rovinu nebo jak posunout objekt aby ležel základnou na rovině, když je obvod podstavy tvořen sadou různě zakřivených křivek. Tedy něco jako vytvořit tečnou rovinu k 3D křivce (resp. sadě křivek) dotýkajícíse jich pouze ve 3 bodech a přitom tu rovinu 3D křivka nikde neprotíná. Samozřejmě ještě záleží na poloze těžiště a směru působení gravitace v jakých 3 bodech by to bylo, ale to už bych neautomatizoval a rozhodoval bych to logicky.

V nakresleném případě by se rovina dotýkala křivek dejme tomu podle směru gravitace buď v černených nebo modrých bodech. Pokud by to bylo ve vrcholech, tak žádný problém, ale většinou to bude někde na křivce (tedy nutno udělat tečnu).


Připojené náhledyPřihlaste se pro zobrazení plné verze - 28498/Obr3_2018-01-23_08-15-00.JPG



Zpět nahoru
Navara Zobrazit panel
Arkance Systems support
Arkance Systems support
Avatar
Arkance Systems

Přihlášen: 08.zář.2008
Lokalita: ČR (Pha)
Používám:
Inventor
Stav: Offline
Bodů: 1636
Přímý odkaz na tuto zprávu Zasláno: 23.led.2018 v 08:54
A jsme zpátky u toho, k čemu je to dobré. CO všechno si můžete zvolit a CO je pevně dané. USS i pootočení si můžete zvolit od oka podle citu. Rovinu můžete definovat například pomocí tří bodů, dvou přímek, atd. Tohle už je na vás.
S podobnou úlohou jsem se setkal jenom při zjišťování bodů pro kontaktní měření sondou a tam je potřeba dodržet souřadný systém. Nebo si to vyřeší operátor na stroji.
Zpět nahoru

Pro technickou podporu CAD
kontaktujte Helpdesk

Příbuzné CAD tipy:
Tip 8717:Jak ve výkresu zobrazit těžiště podsestavy?
Tip 8143:Revit chyba: Čára je příliš krátká
Tip 10851:iLogic - jak ve výkresu zpracovat materiál a cestu součásti?
Tip 11550:iLogic: Spuštění externího procesu s parametry
Tip 9476:Ukládání DWG kopie IDW výkresu pojmenované podle revize.
Tip 9467:Automatické publikování schválených výkresů z Inventoru.


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