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