Zobrazit plnou verzi příspěvku: Zoom 1:1

peterka256
03.10.2023, 19:36
Da se nejakym zpusobem nastavit zoom pri tvorbe nacrtu na 1:1 (zobrazeni na monitoru vuci skutecnosti)? Pripadne jde nekam ulozit nastavene priblizeni, kdyz si to pracne najdu manualne a pak nejak rychle obnovit? Nechce se mi verit ze to Inventor neumi, kdyz tohle zvladal i predpotopni CAD ktery jsem pouzival v dobach kdy Inventor jeste ani neexistoval. Proste se v parametrech nastavila sirka a vyska monitoru a jedinym klikem bylo vyreseno. Jde mi o to, ze casto kreslim veci ktere je nejrychlejsi obtahnout podle predmetu prilozeneho k obrazovce a to trefovani meritka je opravdu opruz. Kdyz potrebuji udelat napriklad drzak na krimplovaci kleste, tak je jejich skemovani, foceni na profilprojektoru apod. naprosta ztrata casu. Proste je prilozim k monitoru, obkreslim a je bleskove hotovo s dostatecnou presnosti pro takovy ucel.

Vladimír Michl
03.10.2023, 20:57
Pro AutoCAD jsme na to dělali utilitu VIEW11 - https://www.cadforum.cz/cz/cad-model-na-obrazovce-1-1-ve-skutecnych-rozmerech-mm-tip8793 - asi by šlo něco podobného i pro Inventor, ale je to hodně nepřesná metoda, takový spíš vtípek, asi není použitelné pro vážnější projekt.To spíš vzít šupleru a parametry zadat do náčrtů.

peterka256
03.10.2023, 22:41
Pokud je to nejaky normalni tvar, tak je urcite rychlejsi to odmerit, ale treba ted delam futral na nejruznejsi elektrikarske kleste ktere maji ruzne zaoblene tvary, nahodile uhly apod a to se odmeruje dost spatne a nespolehlive. Tady neni milimetr zadna mira, dulezite je ale dodrzet celkovou geometrii. Proste prilozim kleste na monitor, mysi je carami obkreslim a hned je hotovo.
peterka2562023-10-03 22:44:03

pavelstyl
04.10.2023, 07:04
Na tohle ani není potřeba to měřítko 1:1. Prostě to obkreslím, změřím jednu referenční kótu (délka kleští), tu samou kótu sám do skici a pak to celé nazvětšuji v poměru těch kót.Pavel Štyl

peterka256
30.06.2024, 15:20
Vcera jsem pri reseni cehosi jineho zjistil roztomilou vec, ze v inventoru je implementovan vba (nesmejte se, ja s tim nijak zvlast moc nekreslim :-) ) Tak jsem z nedelni nudy zkusil vyresit tuhle zalezitost se zoomovanim 1:1 na monitoru.po zevrubnem prozkoumani jak funguje system zoomovani a vlastne celeho zobrazovani v inventoru jsem zjistil ze je to delane tak, ze je kolem modelu umistena kamera a zmenou jeji vzdalenosti, uhlu atp. se nastavuje to co vidime na monitoru, takze by nemel byt problem funkci zoom 1:1 napsat. Celou vec trochu komplikuje fakt ze v ortogonalnim zobrazeni muzu z principu kameru priblizovat k modelu jak chci, ale zadne zoomovani se konat nebude. Musim menit velikost zorneho pole. Jsou tam dalsi zadrhele typu ze tohle se meni i pri zmene velikosti pracovni plochy apod. ale to uz by nemel byt problem spocitat.Z legrace jsem tohle zkusil predhodid GPT, jak se s tim popere. Zpocatku placal kraviny, jako ze to nejde apod, ale kdyz jsem ho nakopnul at pouzije .SetExtents zacal se trochu chytat. Po asi hodince presvedcovani, hanrkovani a hromade nefunkcnich pokusu z nej vypadl nize uvedeny kod, ktery zda se dela presne to co ma - muzete to dukladneji otestovat. Opravdu cely kod tak jak je vypotil GPT (ta zadarmo verze), vcetne tech komentaru, ja v tom zadne zmeny ani opravy nedelal, jen jsem pro prehlednost pesoupl promenne desiredModelScreenWidth a screenDPI na zacatek kodu. Jejich hodnotou si trefite zobrazeni tak, aby velikost modelu odpovidala realite podle toho jaky mate monitor apod. Jsou to cisla typu double, takze by nemel byt problem to jemne doladit.Schopnosti tehle AI mne opravdu mile prekvapily. V kodu je nejspis spousta zbytecnosti, ale zda se ze funguje jak ma, tak jsem se v tom dal nestoural a ani nezkoumal jak to pracuje (mozna az bude cas)[CODE]Public Sub Zoom_11()    ' Výpočet požadované šířky zorného pole kamery na základě velikosti okna        Dim desiredModelScreenWidth As Double        desiredModelScreenWidth = 120 ' Požadovaná šířka modelu na obrazovce v mm        Dim screenDPI As Double        screenDPI = 96 ' Předpokládáme DPI obrazovky 96 (změňte dle potřeby)            ' Získání aktuálního dokumentu    Dim oDoc As Document    Set oDoc = ThisApplication.ActiveDocument    ' Ověření, zda je dokument typu součást nebo sestava    If oDoc.DocumentType = kPartDocumentObject Or oDoc.DocumentType = kAssemblyDocumentObject Then        ' Získání aktivního pohledu        Dim oView As View        Set oView = ThisApplication.ActiveView        ' Získání velikosti okna        Dim clientWidth As Double        Dim clientHeight As Double        clientWidth = oView.width        clientHeight = oView.height        ' Získání kamery        Dim oCamera As Camera        Set oCamera = oView.Camera        ' Uchování aktuálních hodnot Eye, Target a UpVector        Dim currentEye As Point        Set currentEye = oCamera.Eye        Dim currentTarget As Point        Set currentTarget = oCamera.Target        Dim currentUpVector As UnitVector        Set currentUpVector = oCamera.UpVector        Dim windowInchesWidth As Double        windowInchesWidth = clientWidth / screenDPI        Dim scaleFactor As Double        scaleFactor = desiredModelScreenWidth / windowInchesWidth        Dim desiredWidth As Double        desiredWidth = scaleFactor ' Zde nastavíme požadovanou šířku zorného pole v mm        ' Výpočet požadované výšky zorného pole podle poměru stran okna        Dim desiredHeight As Double        desiredHeight = desiredWidth * (clientHeight / clientWidth)        ' Nastavení extents kamery        oCamera.Perspective = False        oCamera.ApplyWithoutTransition        ' Nastavení cílového bodu kamery na střed modelu        Dim modelCenter As Point        Dim oCompDef As ComponentDefinition        If oDoc.DocumentType = kPartDocumentObject Then            Set oCompDef = oDoc.ComponentDefinition        ElseIf oDoc.DocumentType = kAssemblyDocumentObject Then            Set oCompDef = oDoc.ComponentDefinition        End If        Dim oRangeBox As Box        Set oRangeBox = oCompDef.RangeBox        Set modelCenter = ThisApplication.TransientGeometry.CreatePoint((oRangeBox.MinPoint.X + oRangeBox.MaxPoint.X) / 2, (oRangeBox.MinPoint.Y + oRangeBox.MaxPoint.Y) / 2, (oRangeBox.MinPoint.Z + oRangeBox.MaxPoint.Z) / 2)        oCamera.Target = modelCenter        ' Výpočet nové pozice kamery (Eye) s ohledem na zachování vzdálenosti        Dim directionVector As Vector        Set directionVector = ThisApplication.TransientGeometry.CreateVector(currentEye.X - currentTarget.X, currentEye.Y - currentTarget.Y, currentEye.Z - currentTarget.Z)        directionVector.Normalize        directionVector.ScaleBy (desiredWidth / 2) ' nebo jiné měřítko podle potřeby        Dim newEye As Point        Set newEye = modelCenter        Call newEye.TranslateBy(directionVector)        oCamera.Eye = newEye        ' Zachování aktuálního UpVector        oCamera.UpVector = currentUpVector        ' Nastavení zorného pole kamery        oCamera.SetExtents desiredWidth, desiredHeight        oCamera.Apply        ' Znovu nastavení Eye a UpVector po aplikaci extents, aby se nezměnil úhel pohledu        oCamera.Eye = newEye        oCamera.UpVector = currentUpVector        oCamera.Apply    Else        ' Zobrazení zprávy, pokud dokument není typu součást nebo sestava        MsgBox "Tento skript lze použít pouze v prostředí návrhu modelu (součást nebo sestava).", vbExclamation, "Neplatný dokument"    End IfEnd Sub[/CODE]


peterka2562024-06-30 16:36:05