Jump to content


  • Content count

  • Joined

  • Last visited

Community Reputation

121 Spectacular

About DomC

  • Rank

Personal Information

  • Location

Recent Profile Visitors

2,532 profile views
  1. Version 1.0.0

    1 download

    A Rectangle Line Pattern with a random option. Also the files show, hot how to project on a NURBS Surface. This 3D Projection contains two additional custom nodes. 1. GetZatXY (Also used in many other examples on the community board) 2. GetZamong Pt. Not so easy to understand. This nodes calculates the z value of a 2D Point between two 3D Points without trigonometry (faster). Movie Link (2nd Part of Movie) https://youtu.be/GcFwW-k5Lms?list=PL8s_WkTvFQ2YdFlMfU7Teuh5QrmsO03gW
  2. DomC

    Growing Lines

    Version 1.0.1


    This example is based on a custom node. which returns a line pattern. This pattern is based on several while and random loops. I have not found a proper way to run a while loop over a marionette network so this is better to create in a custom node. It is easier to play with the example, than explaining exactly how it works. Have fun with it. This is my base study to find a workflow to project any pattern on a NURBS Surface which would be a real scope of usage. Movie Link (first Part of Movie) https://youtu.be/GcFwW-k5Lms?list=PL8s_WkTvFQ2YdFlMfU7Teuh5QrmsO03gW Growing Lines 1.0.0.mp4
  3. DomC

    Bar Diagram

    Version 1.0.0


    A nice, small Marionette for creating bar diagrams. This is much more simpler and more flexible than a spread sheet bar diagram. Options: 1. ColNames 2. Col Values -> mandatory 3. RefValue -> A bar with this value, has the height of the BArHeigtRefValue field 4. BarWidth 5. BarHeigtRefValue 6. Invert -> A bigvalues results in small bar There is a 2 minute movie (without audio) Bar Diagram.mp4
  4. DomC

    AMD or Nvidia, any real world comparisons?

    Beside that. We took a look at other CAD applications in the same market segment. They do not really take more advantage from multi-core CPUs than Vectorworks. They all need seperate threads for more or less the same actions. Also the gaming industry are trying to use advantage of more cores. People thinking it would be easy to just split every action on 32 cores and make it 32times faster. I think this is something where VW Inc. team makes a great job, thanks.
  5. DomC

    AMD or Nvidia, any real world comparisons?

    Hi We tested NVIDIA and AMD in comparison in a small frame on Windows. So far there were some little surprises by the result: 1. Zoom/pan differences are as expectably the same as the etablished open GL benchmarks. So NVIDIA 1080ti is fastest by zooming paning big models than 580 and would be a little faster than vega I guess. So far no surprice. AMD consumer cards have better price value than NVIDIA. NVIDIA wins the High End scope by he consumer cards with 1080ti 2. Quadro Based Graphic Cards have similar hardware and so I expected nearly same performance. But as far as I could test, the Quadro drivers performs better with Wireframe and Planar Objects. This is hard to measure but M2000 wins agains a GTX 1060 which have a much higher Hardware performance. As I told this is hard to measure ... 3. If I have a specific drawing with much of png pictures on it and I switch to this layer the first time in the session I can wait with an invidia card about 20 seconds till all ojects are visible on the screen. With an amd it takes about 5 seconds. Seems that processing the drawing to the graphic driver could be faster in some specific cases with AMD cards. A normal 2D 3D Plan have no measurable difference between amd nvidia or between High End Graphic or cheap graphic for navigation between layers/layout/classes/saved views. It seems mainly be related to the cpu single thread performance.
  6. DomC

    Awesome Marionette Project

    http://blog.vectorworks.net/moveart-wins-european-product-design-award Well done Norbert, this is also a great application of a Marionette based workflow.
  7. Got it Your Autohybrid content has it's own origin you have to compensate this. My first script works but the autohybrid is already wrecked. by use parent node wrong. So be careful what object you put in what other object. Worst case you put them somewhere you can't delete them anymore. Autohybrid2.vwx
  8. Hi You have to browse the container-nesting of the object to find out, how they are nested. Sometings the Content node works, sometings you need commands like vs.GetCustomObjectProfileGroup(objectHand) etc. As you can see, the autohybrid from an extrude is pretty good nested. Try first to replace the object (delete and set new object to it's parent). Maybe you have to reset object after that manipulation. Or maybe you will crash if you delete the content and do not attach a new contend (maybe start with add an additional object to the exitsting). Not tested any of this, but that's the way I would try to crack the riddle. Autohybrid.vwx
  9. DomC

    Apartment Area

    Version 1.0.0


    This nice script summarize all Space-Areas, which are part of the same Appartement Number and shows the result in a symbol based stamp. Alternatively you can get apartment. Alternatively we can pull out sum of apartment area with a worksheet. But this Marionette is also a nice method to do this. Instructions: 1. The Marionette Objects access to the field "11_Room ID" of the space object. Every other field can be used if necessary by editing script 2. with the Marionette PIOs field "Raum ID" you can tell the stamp, which apartment should be displayed. Appartment Area.vwx
  10. 1. The Input Wrapper automatically will detect the new row and read it out. So create your additional row Maybe disconnect from space creation to get faster testing. Use pass node and "bug" method to see, what data flowing through the wires. Also goot hint is to place some valve nodes to divide the network and to not execute parts of it. 2. The "Unnest List" Node will return the additional row at e3 3. To Attach that values to the space, use the "Set Record Field". Record Name is 'Space' Field Name you can find out with a Worksheet from one of your space object. I think you want to have '11_Occupant' 4. Maybe try first to input ONE Space with the Name input and set the record field to see, if that works. Maybe you have to reset the space first. It's a popup field so this could maybe fail first try.
  11. Version 1.0.0


    If you need Worksheet-like Numbering like A, B, C .... AA, AB ..... AAA .... This node offers you an easy solution. There are two nodes for both directions. Limitations: 1. Input from special characters etc. will result in wrong values or errors.
  12. DomC

    PDF Export, ResetObject

    The Script resets a ComputerWorks Multi-Stamp SDK PIO. For just PDF export I never would create a script. The main part is updating all stamp symbols. The real script does the following: 1. Importing (updating PIO graphic) symbols 2. Create a time and date value (thanks to python) 3. Update PIOs (The pio is linked to a record format which is importing data from an external source by another script) I love vectorscript and marionette. But I am always sceptical if a script is really is necessary. This is a border case for sure. #28.03.2018 #Alte Planköpfe mit neuen ersetzen vs.DSelectAll() listID, numItems = vs.BuildResourceListN(16, 'S:\\Vorlagen\\VectorWorks\\18_Offerte\\Vorgabe_Offerte_2018.vwx') sym_names = [] def callback(): pass for i in range(numItems): res_name = vs.GetNameFromResourceList(listID, i) sym_names.append(res_name) if res_name == 'SSSPK Küche A4': vs.ImportResToCurFileN(listID, i, callback) if res_name == 'SSSPK Küche A4q': vs.ImportResToCurFileN(listID, i, callback) if res_name == 'SSSPK Küche A4h': vs.ImportResToCurFileN(listID, i, callback) if res_name == 'SSSPK Küche Installation A4': vs.ImportResToCurFileN(listID, i, callback) if res_name == 'SSSPK Küche Installation A3': vs.ImportResToCurFileN(listID, i, callback) #Datum und Zeit vor PDF aktualiesiern Ja/Nein import datetime now = datetime.datetime.now() jahr = now.year; monat = '%02i' % now.month; tag = '%02i' % now.day; stunde = '%02i' % now.hour; minute = '%02i' % now.minute Datum = str(tag)+'.'+str(monat)+'.'+str(jahr) Zeit = str(stunde)+':'+str(minute) #Datum = 'DatumTest' #Zeit = 'ZeitTest' objs = [] def AktualisiereDat(): plankopf="INSYMBOL & INOBJECT & INVIEWPORT & (R IN ['Daten_ERP'])" def PlankopfFelder(h): vs.SetRField (h, 'Daten_ERP','114_Datum', Datum) vs.SetRField (h, 'Daten_ERP','115_Zeit', Zeit) objs.append(h) vs.SetObjectVariableBoolean(h,1167,True) vs.ResetObject(h) vs.SetObjectVariableBoolean(h,1167,False) vs.ForEachObject(PlankopfFelder, plankopf) auswahl = vs.YNDialog('Zeit, Datum aktualisieren?') if auswahl: AktualisiereDat() vs.DoMenuTextByName('Export PDF',0)
  13. DomC

    PDF Export, ResetObject

    Hi Mullin thanks for comment Yes thats the pragmatically solution which is running at the Moment -two separate scrips. Just tested Miguel's hint, and it works. Really Great! criteria="L = 'Lay-1'" objs = [] def BuildObjList(h): vs.SetFillBack(h, (4567,4123,78694)) vs.SetObjectVariableBoolean(h,1167,True) objs.append(h) vs.ForEachObject(BuildObjList, criteria) for h in objs: vs.ResetObject(h) vs.SetObjectVariableBoolean(h,1167,False) vs.DoMenuTextByName('Export PDF',0) Or even shorter and simpler: criteria="L = 'Lay-1'" def DoIt(h): vs.SetFillBack(h, (4567,4123,78694)) vs.SetObjectVariableBoolean(h,1167,True) vs.ResetObject(h) vs.SetObjectVariableBoolean(h,1167,False) vs.DoMenuTextByName('Export PDF',0)
  14. DomC

    PDF Export, ResetObject

    @Miguel Barrera I am not sure if I understand and I am think you mean playing with ObjectVariableBoolean 1167 I will try soon if I have time. Thank you for the hint!