Jump to content

All Activity

This stream auto-updates

  1. Past hour
  2. Can the record pull the lengths of 3d objects, like nurbs curves? The record can't, you might be able to map the length field to a record field using the data manager but I am not sure how to set this up.
  3. Good morning So are we waiting to see what happens with the release of 14.5? Thank you
  4. Today
  5. I will reduce the price to 3500$ for a limited time, If anyone is interested kindly PM.
  6. Although having said that it would be great if you had an option to interactively resize Data Tag text the way you can with Callouts... The way it works now is you need multiple Tag styles set up with different width text boxes + switch between them depending on how wide you want the text in the drawing to be. At least that's the only way I know to do it.
  7. Switch to Data Tags. You can then include any data you like and have control over the layout.
  8. @Scott C. Parker Hi, I'm assuming both the Tomcat as the Christie symbols are from the VW library? Are you therefore saying some trusses from the library can be calculated, and some can't? And why does it work with a "normal" truss length, but not with a frame?
  9. Since VW2024 I have found it periodically changing to the first mode of its own accord. Or perhaps it was since Update 4 + the addition of the 4th mode. I never had this happen previously.
  10. The U key will step through the modes of the first mode group. Hit is accidentally and you can change the mode.
  11. Yesterday
  12. 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?
  13. 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!
  14. Yes, the Licence system has changed in the last 16 years and this on longer works.
  15. 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.
  16. 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.
  17. 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…
  18. 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])
  19. 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
  20. 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
  21. 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
  22. 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.
  23. 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.
  24. 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]
  25. 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]
  26. 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
  27. And you might want to update your signature. Your still says VW 2019. My Signature has the steps.
  28. 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.
  1. Load more activity
×
×
  • Create New...