Jump to content

All Activity

This stream auto-updates

  1. Past hour
  2. Today
  3. The U key will step through the modes of the first mode group. Hit is accidentally and you can change the mode.
  4. Yesterday
  5. My reply was only intended to be a response to @Matt Overton’s post stating that there is no software out there that has walls that can do everything users want them to do. My replay was an attempt to explain that there’s a good reason for that due to many different challenges. I’m not talking about Vectorworks but all software. What issues are you still having in 2024 Update 4.1?
  6. Thanks for the response. I'm not really sure why but the issue fixed itself after I left it alone for a few days. I double checked on your suggestion and this was definitely something good to know thanks! Not sure how I switched it without realizing, I'm just glad it went back to working!
  7. Yes, the Licence system has changed in the last 16 years and this on longer works.
  8. Do not ever ask me to complete a survey that makes me sign up for a 4th party service. If you value customer feedback, you have direct channels, including these forums.
  9. The "Value" of a non-blank cell in a VW Spreadsheet is either 1 if it is a non-numeric value or it is the numeric value. When you SUM those values, the non-numeric "1"s get added into the total. That is why you can use COUNT on non-numeric values.
  10. You’re joking? you mean, VW counts the numeric area of all polygons and adds the number of them? Whyy? Normally it should be either the sum of all areas or the number of all polygons, not both… strange worksheet…
  11. sorry y'all been awhile. sometimes I gotta do my day job. lol for those in the future looking for an example here's what I ended up going with. hPath = vs.GetCustomObjectPath(objectHand) arrows = int(vs.GetRField(PIO_handle, recname, "arrows")) amount = arrows + 1 testing = vs.HPerim(hPath) / amount starting = 0 for i in range(amount - 1): starting += testing vs.RegularPolygon(0, 0, 30, 3, 1) last = vs.LNewObj() cur_loc = vs.PointAlongPoly(pathHandle, starting) vs.HRotate(last, 0, 0, vs.Vec2Ang(cur_loc[2])-90) vs.HMove(last,cur_loc[1][0], cur_loc[1][1])
  12. There was a book, "Custom Solutions in Vectorworks 8.5" which did a good job of explaining all this. Unfortunately I can't find an electronic version. 😞 Here is a very quick summary from my memory: Point, Linear, Rectangle, 2D Path, and 3D Path, are all object types and just have different number of clicked to define and number of control points. Point (1) and Linear (2) are pretty simple. Rectangle gives you two points on the center line, and then one point that is offset from the center line at 90°. I haven't used the two Path options so I can't remember what they have. Tool is for scripts that are not going to create a new object or objects that need to collect a lot of data in order to draw the object correctly. The Objects in the previous paragraph actually create the own "tool" so they can be added to the workspace. Command creates a Menu Command that runs without requiring clicks in the drawing. If you need 2 or 3 points to define you object, then using a Linear or Rectangle mode might be worth considering. HTH
  13. That's a good point. Presumably 'area' just gives you the 2D area whereas 'landscape area.area' gives you the 3D surface area... which may or may not be an issue depending on the circumstances
  14. The NO values in the D column are being counted as 1 in the VW version. Change your formula to put the NO or blank in a separate column and it will total correctly. Or manually subtract NO from the total
  15. I think you are displaying the 'Landscape Area'.'Area' from the first part and the formula in the WS_ is incorrect. Try: #WS_Int('Landscape Area'.'Area'/10)*10+10# SqFt Which is very close to @Tom W.'s suggestion. For trouble shooting, include both lines in the Data Tag Definition to make sure you are getting what you want. This is what I used in testing. Each line in the Tag Define Tag Field dialog box will display as a separate line in the tag. Start simple and work toward the eventual goal.
  16. I don't know what it was, but editing the Graphical Legend Style and changing the scale from 250 to 1:1 seems to have fixed the problem for me. Let me expand on that. The above is what I tried that forced a recalculation of the GL. I then went back to the original version of the file and just did a Recalculate on the GL without editing the style and it also seems to have cleared the problem. Tested in VW2024 Update 4. I don't have a way to test in VW2020. If 2020 is not the version you are running, please update you signature so we can more easily help.
  17. import vs import math import Marionette @Marionette.NodeDefinition class Params(metaclass=Marionette.OrderedClass): # Erscheinungsbild # Name this = Marionette.Node("Get Point on Poly and Distance") this.SetDescription('Gibt einen Punkt an der angegebenen Entfernung entlang des Polygons zurück, beginnend vom ersten Eckpunkt des Polygons, und berechnet die Entfernung zwischen zwei Punkten') # Eingabeanschlüsse poly = Marionette.PortIn(vs.Handle(0), 'hPoly') poly.SetDescription("Das Eingabepolygon") nDist = Marionette.PortIn(0, 'nDist') nDist.SetDescription("Die angegebene Entfernung") p1 = Marionette.PortIn((0, 0), 'p1') p1.SetDescription("Ein 2D-Punkt, der den Startpunkt repräsentiert") nSehne = Marionette.PortIn(0, 'nSehne') nSehne.SetDescription("Eine angegebene Länge, die den Radius eines Kreises repräsentiert") # OIP-Steuerungen tolerance = Marionette.OIPControl('Toleranz', Marionette.WidgetType.Text, '0.0000000000001') tolerance.SetDescription("Ein akzeptabler Unterschied zwischen den berechneten und approximierten Werten") # Ausgabeanschlüsse p2 = Marionette.PortOut('p2') p2.SetDescription("Der Ergebnispunkt") vTan = Marionette.PortOut('vTan') vTan.SetDescription("Der Vektor tangential zum Polygon am Ergebnispunkt") b = Marionette.PortOut('b') b.SetDescription("True, wenn der Knoten seine Aufgabe erfolgreich abschließt, sonst False") # VERHALTEN def RunNode(self): # Eingaben poly = self.Params.poly.value dist = self.Params.nDist.value tolerance = self.Params.tolerance.value p1 = self.Params.p1.value nSehne = self.Params.nSehne.value # Skript result = vs.PointAlongPolyN(poly, dist, tolerance) p2 = result[1] vTan = result[2] # Berechnen der Entfernung zwischen p1 und p2 c = Marionette.TupleMap(lambda x, y: (y - x) ** 2, p1, p2) l = math.sqrt(sum(c)) # Annäherung in noch kleineren Schritten und Präzisierung in noch kleineren Schritten while l < nSehne: new_dist = dist + 0.000001 # Annäherung in noch kleineren Schritten if new_dist >= nSehne: # Überprüfe, ob die neue Entfernung nSehne überschreiten würde break else: # Präzisierung in noch kleineren Schritten step = 0.00000001 while dist < new_dist: dist += step result = vs.PointAlongPolyN(poly, dist, tolerance) p2 = result[1] vTan = result[2] c = Marionette.TupleMap(lambda x, y: (y - x) ** 2, p1, p2) l = math.sqrt(sum(c)) # Ausgaben self.Params.b.value = result[0] # Koordinaten mit höherer Genauigkeit erfassen self.Params.p2.value = (round(result[1][0], 15), round(result[1][1], 15)) self.Params.vTan.value = result[2]
  18. The chord is now calculated from p1. However, processing the list would also have to use a sequence of consecutive points. How do I have to incorporate this into the code? import vs import math import Marionette @Marionette.NodeDefinition class Params(metaclass=Marionette.OrderedClass): # APPEARANCE # Name this = Marionette.Node("Get Point on Poly and Distance") this.SetDescription('Returns a point at the specified distance along the poly starting from the first vertex of the poly, and calculates the distance between two points') # Input Ports poly = Marionette.PortIn(vs.Handle(0), 'hPoly') poly.SetDescription("The input poly") nDist = Marionette.PortIn(0, 'nDist') nDist.SetDescription("The specified distance") p1 = Marionette.PortIn((0, 0), 'p1') p1.SetDescription("A 2D point representing the start point") nSehne = Marionette.PortIn(0, 'nSehne') nSehne.SetDescription("A specified length representing the radius of a circle") # OIP Controls tolerance = Marionette.OIPControl('Tolerance', Marionette.WidgetType.Text, '0.0000001') tolerance.SetDescription("An acceptable difference between the calculated and approximate values") # Output Ports p2 = Marionette.PortOut('p2') p2.SetDescription("The result point") vTan = Marionette.PortOut('vTan') vTan.SetDescription("The vector tangent to the poly at the result point") b = Marionette.PortOut('b') b.SetDescription("True if the node completes its job successfully, false otherwise") # BEHAVIOR def RunNode(self): # inputs poly = self.Params.poly.value dist = self.Params.nDist.value tolerance = self.Params.tolerance.value p1 = self.Params.p1.value nSehne = self.Params.nSehne.value # script result = vs.PointAlongPolyN(poly, dist, tolerance) p2 = result[1] vTan = result[2] # Calculate distance between p1 and p2 c = Marionette.TupleMap(lambda x, y: (y - x) ** 2, p1, p2) l = math.sqrt(sum(c)) # If the distance between p1 and p2 is greater than or equal to nSehne, extend the distance until it reaches nSehne while l < nSehne: dist += 1 # Increase dist by 1 unit result = vs.PointAlongPolyN(poly, dist, tolerance) p2 = result[1] vTan = result[2] c = Marionette.TupleMap(lambda x, y: (y - x) ** 2, p1, p2) l = math.sqrt(sum(c)) # outputs self.Params.b.value = result[0] self.Params.p2.value = result[1] self.Params.vTan.value = result[2]
  19. I don't have a way to test in VW2012, so all my tests are in VW2024. Worksheets have been greatly enhanced since 2012 so it is likely that things for you are different. A lot of your problems stem from trying to have different objects types work in a single database in the worksheet For Column G, you can't specify an extra criteria to the Volume function. The criteria passed to the function is the criteria that is used for the database. So change the formula to just =Volume() and you will get your value for each object, not just the extrudes For the Length, the Channel - 3D objects don't respond to the Length function properly, for that you have to use the 'Channel - 3D'.'Length" field value. You can put both versions in a single column using an IF function. =IF(OBJECTTYPENAME='Channel - 3D', 'Channel - 3D'.Length, LENGTH) If you end up using more object types, then you could use nested IFs, but it can get complicated pretty quickly. Another option would be to use separate databases for the different object types. Each would use the proper functions for the object type. Hide the database header row and they would all look like a single table, but you would not be able to "interleave" them in a sort. To change to Rack Parts, you would need to right click on the database header row and Edit Criteria and change to the Rack Parts Record is Present. You would also need to change the formula in column A to show 'Rack Pars'.'Name" instead of Box Parts. HTH
  20. And you might want to update your signature. Your still says VW 2019. My Signature has the steps.
  21. Matt, I think that VW as a company is missing the point of the question that was raised. Over the years VW has struggled with providing real time working solutions to shortcomings in the actual software. If you go back to the start of this thread and look at @Jonathan Pickup's post, this is all that we are really asking for. You mention closures and visibility of components in Top/Plan - this is still touch and go as far as working properly in the current version of VW (2024 v4.1) - how many years was this in the making and it was released not working properly, actually damaging VW files and entire projects in the process - almost as badly as the catastrophe of the introduction of the Title Block Manager. One might ask, if I am so disappointed with VW, why don't I go elsewhere. The simple answer, I like the software - but there is only so far that that will travel. It's a question I seem to be asking myself more often. I have invested many thousands of pounds in this software and all the seats that I own, my business would seriously struggle if I were to change software providers. Although if I did I would be able to access manufacturer libraries much easier and also collaborate with other design team members without any concerns or compatibility issues. Something VW needs to take note of, especially as they broke their promise of never changing to a subscription model - the users never wanted or asked for this.
  22. Yes! Same here. Don’t keep them open together.
  23. This keeps cropping up - I just happened to put a roadmap request on this item earlier today. I'll summarise below - Is what I'm suggesting too radical, or is it just basics. The ability to create a wall containing all the necessary components required to construct the wall up to and including say the outside cavity. Being able to 'stick' a cladding (of our choice) on to the structure - with the ability to control both vertical and horizontal extents), but when doing so the cladding recognises openings like doors and windows. A great number of 'cladding' variations happen at locations the designer has chosen specifically to create a specific outcome, sometimes we just want to experiment to see how the design will look with different elevational treatments before deciding on the final options. These don't always tie-in with a predetermined formula. This is technically achievable at the moment by excluding the external cladding material from the wall structure and placing a 'cladding' wall directly in front of the main wall, but then all openings etc. have to be manually added in - and it gets very messy. One advantage though is that wall joining and component joining becomes much better, as we are in control where walls join together and not a piece of software
  24. Hey there! Ever tried installing Vectorworks 2024 Update 4.1 in silent mode? I've run into a problem: the command doesn't seem to pass the session automatically. attempted: using the command " .\Vectorworks 2024 Installer.exe" --unattendedmodeui none --mode unattended --Serial "XXXX-XXXX-XXXX-XXXX-XXXX" --LDFChoice licenceID. However, despite my efforts, the session didn't progress automatically as expected. Any idea what the problem might be?
  25. Pat, Will take a look. Thank you.
  26. I'm sometimes digging in old cases and I have found Yours @RBergman Could You please show us some updates how did You job worked?
  27. I'll leave it here for users how are still running VW 20xx-2022 this is the way to solve and turn off auto calculation in irrigation by @Vlado
  28. @Dave Phelps and/or others who are still running VW 20xx-2022 the way to solve and turn off auto calculation in irrigation by @Vlado:
  1. Load more activity
×
×
  • Create New...