Archived

This topic is now archived and is closed to further replies.

Guest luissa

SBuilderX - what can be fixed?

Recommended Posts

Hello,I am revising SBuilderX and these are some things that I have looked at:1) During the first run, and if SBuiderX does not find FSX or the SDK, the user is prompted to a window where he can chose the folders that contain FSX and SDK. Fixing of Vista64 problems.2) TaxiwaySigns placed with BGLComp3) Appending of BGL Object files (thanks to Jon Masterson)4) More robust tile downloading5) Tiles are cached in a folder structure so that no more than 1024 tiles exist in each folder at any Zoom6) Utility to convert old tile structure to new tile structure7) Automatic downloading of missing tiles (at higher zooms) when adding a map from the background8) Placement of MDL object models (thanks to Arno)9) Fixing of the parent/child ordering of polygons10) Rearranging of the LibObjects folder so that thumbnails go to a category subfolder11) ScreenCapture for object thumbnails12) Reading of BGL Object Libraries and automatic creation of corresponding folders (and object.TXT)13) Support for General Buildings (due to the incomplete description in BGLCompiler SDK, support is limited to import/change position and dimension, ...) still to do but planned:14) In addition to type = vector I plan to add 2 more types for lines. One is extrusion bridge. Other is textured.I consider suggestions for improvement. Finally I have a doubt: should the /Tiles subfolder be under SBuilder as it is now? Or could it be moved "outside" SBuilder? The reason I ask is that when I copy the SBuilder project to my pendrive to work during the weekend on a laptop, it takes to long because of the tiles. May be this is not a valid reason.Kind Regards,Luis

Share this post


Link to post
Share on other sites
Help AVSIM continue to serve you!
Please donate today!

Hello Luis. I am really new to using your tool, since last Wednesday. One thing I would like to see if you could change is when you click Add Map From Backgroud the little window that pops up could be bigger so that it is easier to view the area in which we draw the red rectangle. When I click on the zoom level of say 17 for example, the grids are so tiny in the box that it is hard to see exactly which grid line you are clicking on to draw the rectangle. Perhaps since I am so new to your tool there is a different way to do this, but I am not aware of it. Sometimes I get maps that are overlapping a little bit, but from what i understand that doesn't really make a difference.Also would there be a way that when you start a new project that after you get to about 9 or 10 maps, the image of all the map could stay on the screen. What happens is that when I get to this point a box pops up saying something to the efect of the map view was turned off and I cant see the maps any longer. Or is there just a limit in how many maps you can display at once, depending on how much system memory you have?Sorry for my ignorance if there are already answers to these questions. Like I said I am really new to using it, but so far I am creating some really nice photo sceneries thanks to the help I have gotten in this forum. Being new to scenery design I have found it really challenging, especially doing a project on my own. The tutorials are very helpful, but it is a lot to digest at once.Thanks for all the work that you have put into making this wonderful tool that allows us to make out own sceneries.Regards,Sean

Share this post


Link to post
Share on other sites

Luis,I have been using your program for a long time and find it to be excellent. The changes you are proposing will make it better!I have been unable to register on your forum for about 1.5 years. I have tried various email addresses but no luck. It tells me I am being sent an email but none arrives and the forum program now thinks that I am registered (partially) and I can't use the same email address to try again. I have run out of email addresses to try.

Share this post


Link to post
Share on other sites

HiSean: ok, I will make that window greater. I also added an extra Zoom (meaning that bigger, up to 2GB, images can be generated). An exe version has been available at ptsim forum for a while. When I was experimenting with large bitmaps I had crashes related to availability of system memory. Therefore I just placed a Catch for that error which turns off map view. I think that the error will be uncommon as you increase the memory of your systemDick: I have changed the forum to phpBB and may be there has been a problem with the translation of user accounts. Could you please send me a private mail telling me the emails that you tried? I could delete those accounts and create one for you that you can customize later on.Regards,Luis

Share this post


Link to post
Share on other sites

As I have said previously, your efforts are much appreciated Luis.And as I have wished upon Jon (Scruffyduck) and his utility, ADE, I also wonder about the importation of BGL files that contain objects for EZ Scenery and Instant Scenery. Many of these are FS9 compiled files, but still work well in FSX. I've selfish wished for some method to catagorize objects after importation. Even within the FSX default libraries there are similar objects scattered amongst different BGL files and to have them catagorized as a common item would be a great time saver versus having to scour many files trying to find an item you know is there, but can't recall the specific file it came from. It would be such a time saver to be able to work through my BGL collection and tag certain objects as Hangers or Vegetation/Trees or Houses and so on. And please, I'm not suggesting you make up all the catagories and place the items into their proper place. I don't mind doing that and could be something to share with the community.I'm a happy user of SBX now and will continue to be with whatever changes you give us.

Share this post


Link to post
Share on other sites

Hi Lance,I am very grateful for the help you give to SBuilderX users! I noticed that you have posted a collection of thumbnails for EZ/IS objects. I am not familiar with these tools but what I plan is: SBuilderX will have a "Object Manager". You start it by chosing a BGL file in your disk. SBuilderX reads the file and extracts the Guid, the Friendly Name, and the Footprint for each object in the BGL. If it happens that you have unzipped to the LibObjects folder a chunk of pictures whose files names without extension contain the string "{...guid of object ...}" that picture will be shown when you select one of the extracted objects. Then you can pick up extracted objects and add them to an existing (or you create a new one) Category. When you finish this "picking up" process, SBuilderX will add a line to the <existing_category.txt> file or will create a <new_category.txt> and add a line for each extracted object. Categories are defined in txt files using a kind of delimiter like [some_Category]. Each time SBuilderX starts it reads main <objects.txt> file and included <*.txt> files and will create LibObjects subfolders using the category name. It will also move to this subfolder any picture that contains the string "{...guid of object ...}". The user is responsible for managing these categories taking into account that if he just uses a unique category SBuilderX will be slow in showing the thumbnails.You are saying that this should be extended to FS9. I was thinking in FSX only but I can also include this possibility. If you have further ideas or suggestions please write to me.Kind Regards,Luis

Share this post


Link to post
Share on other sites

Well, I guess append of cvx would be great, but I'm assuming that is out of reach.I don't think it is possible to import sbuilder 2.05 sbx currently? Probably not a high priority for most folks at this point, though.The main bug-type problem I encounter is the island problem. Complex polygons with many islands causes problems. But I think maybe FSX has some problems with this too. Also, many options have to be set in the ini file. Some of these were available as options in sbuilder 2.05 preferences.I have another problem, but suspect it is local to me. When I try to set the attribute guid for imported shapefile or bln, SBuilderX crashes. I assume I have some problem in my lines.txt or polys.txt and I just work around it by setting it in the ini file so it hasn't been that difficult.scott s..

Share this post


Link to post
Share on other sites

Hi Scott,Thanks for the suggestions. I comment in context ...

Well, I guess append of cvx would be great, but I'm assuming that is out of reach.Luis: I never saw a descrition of the BGL vector terrain format. So I am not able to import those BGLs.I don't think it is possible to import sbuilder 2.05 sbx currently? Probably not a high priority for most folks at this point, though.Luis: yes! At least it is supposed to work. You cannot read binary (SBP) files created by SB205 but you can import SBX files. In the code below may be you can see how the lines.txt and polys.txt are used to convert between, say a LWM old polygon and a new shape water polygonThe main bug-type problem I encounter is the island problem. Complex polygons with many islands causes problems. But I think maybe FSX has some problems with this too. Luis: I am revising the parent/child handling of polygons. It will be great if you can test it when I finish it.Also, many options have to be set in the ini file. Some of these were available as options in sbuilder 2.05 preferences.Luis: Yes. I will try to do it.I have another problem, but suspect it is local to me. When I try to set the attribute guid for imported shapefile or bln, SBuilderX crashes. I assume I have some problem in my lines.txt or polys.txt and I just work around it by setting it in the ini file so it hasn't been that difficult.Luis: could you send me a project so that I can replicate it?scott s..
... and here is the code to convert lines and polys from 205 to 310.I wonder if I could open a thread in ptsim.com instead of being discussing these matters here.Regards,Luis
 Private Sub ConvertOldPolyType(ByVal N As Integer, ByVal Key As String)        Dim A, B As String        A = Trim(Key)        'set to none        Polys(N).Type = ""        Polys(N).Guid = "{00000000-0000-0000-0000-111111111111}"        If A = "" Then Exit Sub        ' set to old        Polys(N).Guid = "{00000000-0000-0000-0000-222222222222}"        On Error GoTo erro1        Dim J, K As Integer        Dim Flag As Boolean        B = Mid(A, 1, 3)        If B = "VTP" Then            J = InStr(A, "//")            A = Mid(A, J + 2)            J = InStr(A, "//")            A = Mid(A, J + 2)            J = InStr(A, "//")            A = Mid(A, 1, J - 1)            J = CInt(A)            Flag = False            For K = 1 To NoOfLegacyPolys                If J = LegacyPolys(K).LClass Then                    Flag = True                    Exit For                End If            Next            If Flag Then                Polys(N).Guid = LegacyPolys(K).Guid                Polys(N).Type = "LCP"            End If        End If        If B = "TEX" Then            Polys(N).Type = A            Exit Sub        End If        If B = "LWM" Then            J = InStr(A, "//")            A = Mid(A, J + 2)            ' Water//455//455//1//1//            J = InStr(A, "//")            B = Mid(A, 1, J - 1)            A = Mid(A, J + 2)            ' 455//455//1//1//            If B = "Water" Then                J = InStr(A, "//")                B = Mid(A, 1, J - 1)                K = CInt(B)                If K = -9999 Then                    Polys(N).Guid = "{5835459A-4B8B-41F2-ADC1-DEE721573B28}"                    Polys(N).Type = "HPX"                Else                    Polys(N).Guid = "{F4775962-DA14-4BF6-9C70-672420752870}"                    Polys(N).Type = "HPX"                End If            End If            If B = "Land" Then                J = InStr(A, "//")                B = Mid(A, 1, J - 1)                K = CInt(B)                If K = -9999 Then                    Polys(N).Guid = "{3EC48E64-5522-449C-96C6-96F8CEBDBDE2}"                    Polys(N).Type = "HPX"                Else                    Polys(N).Guid = "{D242B77F-7308-4685-9B6C-89AF1CD43D13}"                    Polys(N).Type = "HPX"                End If            End If            If B = "Flatten" Then                Polys(N).Guid = "{18580A63-FC8F-4A02-A622-8A1E073E627B}"                Polys(N).Type = "FLX"            End If        End If        Exit Suberro1:        Polys(N).Name = Polys(N).Name & "_not converted from SB205"    End Sub    Private Sub ConvertOldLineType(ByVal N As Integer, ByVal Key As String)        'Type=VTP//7//1032//        Dim A, B As String        A = Trim(Key)        ' set to none        Lines(N).Type = ""        Lines(N).Guid = "{00000000-0000-0000-0000-333333333333}"        If A = "" Then Exit Sub        On Error GoTo erro1        ' set to old        Lines(N).Guid = "{00000000-0000-0000-0000-444444444444}"        Dim J, K As Integer        Dim Flag As Boolean        B = Mid(A, 1, 3)        If B = "VTP" Then            J = InStr(A, "//")            A = Mid(A, J + 2)            J = InStr(A, "//")            A = Mid(A, J + 2)            J = InStr(A, "//")            A = Mid(A, 1, J - 1)            J = CInt(A)            Flag = False            For K = 1 To NoOfLegacyLines                If J = LegacyLines(K).Legacy Then                    Flag = True                    Exit For                End If            Next            If Flag Then                Lines(N).Guid = LegacyLines(K).Guid                Lines(N).Type = LegacyLines(K).Type            End If        End If        Exit Suberro1:        Lines(N).Name = Lines(N).Name & "_not converted from SB205"    End Sub    Private Structure LegacyPoly        Dim LClass As Integer        Dim Guid As String    End Structure    Private LegacyPolys() As LegacyPoly    Private NoOfLegacyPolys    Private Structure LegacyLine        Dim Legacy As Integer        Dim Guid As String        Dim Type As String    End Structure    Private LegacyLines() As LegacyLine    Private NoOfLegacyLines    Private Sub SetLegacyPolys()        Dim A, B, C, File As String        Dim Marker, N, K, J As Integer        ReDim LegacyPolys(200)        File = My.Application.Info.DirectoryPath & "\tools\Polys.txt"        FileOpen(2, File, OpenMode.Input)        N = LOF(2)        Marker = 0        K = 1        Do While Marker < N            A = LineInput(2)            Marker = Marker + Len(A) + 2            B = UCase(Trim(Mid(A, 1, 4)))            If B = "GUID" Then                C = Trim(Mid(A, 6))                LegacyPolys(K).Guid = C            End If            If B = "TYPE" Then                C = Trim(Mid(A, 6, 3))                If C = "LCP" Then                    If Len(A) > 8 Then                        Try                            J = CInt(Trim(Mid(A, 9)))                        Catch ex As Exception                            J = 0                        End Try                        If J > 0 Then                            LegacyPolys(K).LClass = J                            K = K + 1                        End If                    End If                End If            End If        Loop        FileClose()        NoOfLegacyPolys = K - 1        ReDim Preserve LegacyPolys(NoOfLegacyPolys)    End Sub    Private Sub SetLegacyLines()        Dim A, B, C, File As String        Dim Marker, N, K, J As Integer        ReDim LegacyLines(250)        File = My.Application.Info.DirectoryPath & "\tools\Lines.txt"        FileOpen(2, File, OpenMode.Input)        N = LOF(2)        Marker = 0        K = 1        Do While Marker < N            A = LineInput(2)            Marker = Marker + Len(A) + 2            B = UCase(Trim(Mid(A, 1, 4)))            If B = "GUID" Then                C = Trim(Mid(A, 6))                LegacyLines(K).Guid = C            End If            If B = "TYPE" Then                If Len(A) > 8 Then                    Try                        J = CInt(Trim(Mid(A, 9)))                    Catch ex As Exception                        J = 0                    End Try                    If J > 0 Then                        LegacyLines(K).Legacy = J                        LegacyLines(K).Type = Trim(Mid(A, 6, 3))                        K = K + 1                    End If                End If            End If        Loop        FileClose()        NoOfLegacyLines = K - 1        ReDim Preserve LegacyLines(NoOfLegacyLines)    End Sub

Share this post


Link to post
Share on other sites
You are saying that this should be extended to FS9. I was thinking in FSX only but I can also include this possibility. If you have further ideas or suggestions please write to me.
Luis,Thank you for your input on the development of SBX. I'll try to assemble some thoughts and see about emailing them to you.Regards,Lance

Share this post


Link to post
Share on other sites

It would be nice to see the scroll wheel recenter when zooming in and out to make it easier to place long vectors like roadway traffic.Have you given any thought to making SBX capable of doing FSX and FS9? It seems like there is a pretty even split of people flying both versions and the ability to compile both would be really handy.

Share this post


Link to post
Share on other sites

Hello Luis,Just a small thing; I made a mistake when putting together the modified terrain.cfg file. It will make SBuilderX default to the Rock Slope Hydro Polygon listing, even though it displays correctly in game.Could you please change the GUID for that entry in your Polys.txt file, for example to:[Texture.386]Name=Hydro_RockSlope_PerennialColor=800000C0Guid={A22EE388-EA8E-4747-858B-1D05E3CC067D}Textures=000b2su1Type=HPXThis should at least prevent SBuilderX from constantly returning to this. Thank you.Best regards.Luis

Share this post


Link to post
Share on other sites

Hello Luis,many thanks for continuing to support SBuilderX, without which a lot of us would be out in the woods, so to speak.At first I couldn't really think of any update request other than what you've listed but today I remembered something: it would be great to have the ability to import land and water class files in .raw format. Currently, to combine existing projects requires using EZ-Landclass or graphics editors, and further adjustments to the land class in SBuilderX then requires repeating those steps. Not a big deal but perhaps something to consider.Kind regards,Holger Sandmann

Share this post


Link to post
Share on other sites

HelloThank you for giving suggestions.kjb: Your suggestions is: when a mouse wheel event is detected then the position of the mouse on the display would be used to center the display. Then the wheel sense of rotation would be used to zoom in our zoom out. It looks good and I can easily change it. Regarding FS9/FSX it looks to me that SBuilder206 is fine for FS2004. May be I could add the tile background function to SBuilder206, but it was written in Visual Basic 6. SBuilderX is written in Visual Basic 2005. It is not easy for me to go back. If you want to make scenery for both sims you can use SB2006 and then export the project into a SBX file. Then you can start SBX and import that SBX project. You will need to make some mods as things are not exactly the same.Luis: I will do that correction. I count with your help if I have problems in implementing the extrusions bridges.Holger: In the File > Append menu I could add another entry (in addition to "Object BGL/XML ...") named as, may be, "Class RAW ..." . When the user clicks that, the OpenFileDialogue would appear and a file could be selected. If the file has the right size of 257x257 bytes, it would be read and the contents would be taken as Land (or water) classes depending on the file name (ex: LC_4619.RAW or WC_3426.RAW). From LC_ or WC_ I would decide about land or water and from the 4 digits that follow I would decide the position of the quad. It is easy to do that and I will add this.Regards,Luis

Share this post


Link to post
Share on other sites

Thanks Luis,I wouldn't worry about the FS9 compatibility if it's a lot of work. I was just thinking that it would be handy to do both from one app, but it isn't that important.

Share this post


Link to post
Share on other sites

One more thing, please, Luis, if you find the time and think it important.When drawing a polygon, the default color is an opaque yellow. The opacity prevents seeing the underlying map, making it somewhat difficult to draw. While we can set the color and opacity of the default polygon attribute in the ini file, the initial polygon has no attribute when being drawn and is always completely opaque.Would you please consider making the initial color mostly transparent? Thank you.Best regards.Luis

Share this post


Link to post
Share on other sites