Jump to content

Search the Community

Showing results for tags 'debugger'.

The search index is currently processing. Current results may not be complete.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


    • General Modeling
    • Software Connections
    • Variation & Optimization
    • Post-Processing
    • Feature Programming
    • Installation
    • Miscellaneous
    • Ideas and Suggestions
    • FAQ


  • Articles
    • Forum Integration
    • Frontpage
  • Pages
  • Miscellaneous
    • Databases
    • Templates
    • Media


  • Mr. Arne Bergmann's Blog
  • Mr. Arne Bergmann's Blog
  • Rel 3.1
  • Joerg Palluch's Blog

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start





Website URL







Found 1 result

  1. The editor for the Create Function of a feature has some (so far) undocumented (which will change in 3.0) possibilities that can come in handy. So, here's a list of things that you may not be aware of: Copy/Cut whole lines If you press the keyboard shortcut for copy or cut (i.e. Ctrl+c and Ctrl+x) without having any text selected, the whole line will be copied/cut. If you then paste it, it will be inserted as a whole line Select words Select words works by double clicking on them. Nothing new? Do the same by single clicking an pressing CTRL. Find next occurence When using the text search (Ctrl+f) you can press F3 to find the next occurence of the search string Help By pressing F1 (or using the question mark button in the toolbar) the documentation browser will open the documentation (if available) of the type/command that is currently under the cursor. Debugging shortcuts The debugger can also be controlled by keyboard shortcuts: F5 : start debuggingF9 : toggle breakpoint in the current lineF10 : execute next lineShift + F5 : stop debuggingMore shortcuts Additional shortcuts: F7 : Evaluate the feature (same as the "Evaluate" button on the lower left)Ctrl+F7 : Apply the changes to the feature (same as the "Apply" button on the lower right)Collapse code You may have already noticed that parts of the code can be collapsed by pressing on the little arrow on the left of the code (in between the code and the line numbers). This applies to "block"-statements (e.g. if, while) and can help to get a clearer view of the code as parts that you are currently not interested in can be hidden. What you probably do not know is the ##region/##endregion functionality. This way you can define collapsable regions yourself, e.g.: ##region myRegion // this is some code point p() line c() ##endregionThe identifier behind the ##region directive allows you to give a name to the region, so you see what's inside when collapsing it. So the example can be collapsed to ##region myRegion { . . . }Of course, this only works if collapsing is enabled in the editor settings. Column select When using the mouse to select text it is not only possible to select lines, but you can also create a selection that only spans part of a line but expands to other lines. To do so, hold Ctrl+Alt while selecting with the mouse. This can come in handy when you want to change the type or name of multiple objects, for example. These screenshots should illustrate it a little better: feature defining 4 points: Select using Ctrl+Alt: Type fvector3: That's about it for now, however here's a little teaser about the news in the next release: Auto close blocks The editor automagically adds the corresponding keyword when starting a new block statement (e.g. if/while). New language features The feature language has been expanded a little further. The biggest news are: foreach -> iterate over objectlists and entitygroups in a very convenient way. Forget about all those castTo commands and counter variables! You probably know code like this: unsigned i(0) while(i < myObjectList.getcount()) f3dpoint p (myObjectList.at(i).castTo(F3dpoint)) if (!(!p)) p.setx(5) endif i += 1 endwhileNow, you can just write this: foreach(f3dpoint p in myObjectList) p.setX(5) endforswitch -> getting lost in all those if/elseif cascades? The new switch statement should solve that. unsigned i(2) switch (i) case 1 echo("i is 1") case 2 echo("i is 2") case 3,4,5 echo("i is 3, 4 or 5") default echo("i is larger than 5) endswitchfunction -> writing the same code inside your feature over and over again? Put it in a function and just call it! Example: function calculatePlusTwo(double d) : fdouble return(d + 2) endfunction echo(""+calculatePlusTwo(1)) echo(""+calculatePlusTwo(2)) echo(""+calculatePlusTwo(3))You can even reimplement existing commands inside your feature: function echo(string text) ::echo("My Feature" + text) endfunction echo(" wants to say hello")will output: "My Feature wants to say hello" on the console
  • Create New...