-
Posts
286 -
Joined
-
Last visited
Reputation
227 SpectacularPersonal Information
-
Occupation
Architect
-
Homepage
www.opzoom.nl
-
Location
Netherlands
Recent Profile Visitors
-
Any news about the detailer tool in 2026 2027?
-
When using vs.GetRect I need to use a callback when using this function in Python. Unfortuantly I'm unable to display the points of both corners of the box in the main code. I am able to display it within the callback code but I'm unable to pass the value to the main code. Here is is a simplified part of the code. Can anybody help me out. Thanks! import vs def _extract_xy(arg): if isinstance(arg, (tuple, list)): return float(arg[0]), float(arg[1]) else: return def on_rect_callback(*args): if len(args) == 2: # two points x1, y1 = _extract_xy(args[0]) x2, y2 = _extract_xy(args[1]) else: vs.AlrtDialog(f"Unexpected GetRect callback signature: {len(args)} arg(s).") return vs.AlrtDialog( f"P1 here is working: ({x1:.3f}, {y1:.3f})\n" f"P2 here is working: ({x2:.3f}, {y2:.3f})\n" ) def run(): # Ask the user to drag a marquee; callback receives the points. x1, y1, x2, y2 = vs.GetRect(on_rect_callback) # Here is the TypeError: cannot unpack non-iterable NoneType object vs.AlrtDialog( f"P1 in main code: ({x1:.3f}, {y1:.3f})\n" f"P2 in main code: ({x2:.3f}, {y2:.3f})\n" ) run()
-
What function gets the Cartesian coordinates
MarcelP102 replied to MarcelP102's topic in Python Scripting
I'm almost there with the script. Unfortuantly I'm unable to set the internal origin to the user origin. # Vectorworks Python Example import vs def main(): ok, outLat, outLon, outAngleToNorth = vs.GetGISOriginN() if not ok: vs.AlrtDialog("Could not read GIS origin.\n\nMake sure the file is georeferenced.") return vs.AlrtDialog( "Georeferencing summary:\n" f"• Longitude: {outLon:.8f}\n" f"• Latitude : {outLat:.8f}\n" ) # Example: set georeferencing from User Origin (CRS 28992 = Amersfoort / RD New) vs.SetDocGeoRefByUsrOrg(28992) # Convert the same geographic coordinate to VW coordinates ok2, (x, y) = vs.GeogCoordToVWN(outLat, outLon) if ok2: vs.AlrtDialog( "Coördinaten oude nulpunt:\n" f"• X: {x:.3f}\n" f"• Y: {y:.3f}" ) else: vs.AlrtDialog("Conversion failed — check if georeferencing is properly configured.") # Put import script here vs.AlrtDialog("Do the import") # Set user origin back and correct the GIS location neg_x = -abs(x) neg_y = -abs(y) vs.SetOrigin(neg_x, neg_y) vs.SetDocGeoRefByUsrOrg(28992) main() -
Move Drawing AND User Origin to Internal
MarcelP102 replied to jacobjz's question in Wishlist - Feature and Content Requests
Hi @Katarina Ollikainen the circle hack does not work form me. The internal origin is still off a couple off mm. See: Can there be a VW script function to set the iternal origin to the user origin? See also my topic here: -
What function gets the Cartesian coordinates
MarcelP102 replied to MarcelP102's topic in Python Scripting
Or is there perhaps a way to set the user origin to Set User ´Origin to match the Georeferencing coordinate system´ and back to ´Set User Origin to Internal Origin´ after the script has run? -
-
From sketchup2Vectorworks.
MarcelP102 replied to Tismacfan.'s question in Wishlist - Feature and Content Requests
It's a nice feature you are showing, and I know VW has more of those. But when does a architect or landscape designer use those? We are talking about basic functions that are missing. Moving faces is a task I do literately every minute so to speak. Like for example the video from @Tismacfan. when you want to move those 3 holes to the right you have to push-pull 6 times in VW (!) in sketchup or any other app you select those 6 faces and move them. Far more efficient, right? What surprises me is that other software that use the same technology under the hood (Parasolid engine) are far more user-friendly and capable of so much more than VW with basic tools. Look for example at https://www.plasticity.xyz/ first version released in early 2023 already had face and edge moving. He developed that app in 1 year from scratch. We all love to designing in 2D with Vectorworks, but it's a bummer we have to switch to another app to quickly design in 3D. -
From sketchup2Vectorworks.
MarcelP102 replied to Tismacfan.'s question in Wishlist - Feature and Content Requests
Nice list, but far from complete. Don’t want to sound like a grumpy old man but even the basic tasks are not possible.. - editing a mirrored symbol within the context, not possible - moving faces or edges of a solid, not possible (Rhino has this function. Even the brand new Plasticity app can do it using the same 3d engine parasolid.. why don’t we can do that basic manipulation in VW). - orb / rotating the camera around the mouse position like sketchUp. No I don’t want to select a object first or a point to rotate around.. this disrupts the workflow. - select a different mouse button for activating orb - split a face of a solid with a line to texture only that part of the face (Rhino split face command has this..) - Give a material / symbol a material so all object with a default material get this material (so you don’t have to model the same window multiple times only for different color variations) - Pushpull mode WITHOUT removing the input shape - a default ‘make unique symbol’ function without having to use plugins/script -
Vectorworks abandoning perpetual licences
MarcelP102 replied to line-weight's topic in General Discussion
Don’t forget to checkout Rhino with VisualARQ plug-in. Rhino is great for 3D drawing, much more options compared to VW. I still have to try VisualARQ, but the website looks promising. -
Teaser Tuesday is Back: Get Your First Look at Vectorworks 2026!
MarcelP102 replied to JuanP's topic in News You Need
If you look closely you will see more new features as announced on the roadmap. Worksheet Slicing dragers/hints: Onscreen Control Redesign:- 56 replies
-
- 2
-
-
- vectorworks 2026
- new features
-
(and 3 more)
Tagged with:
-
Teaser Tuesday is Back: Get Your First Look at Vectorworks 2026!
MarcelP102 replied to JuanP's topic in News You Need
Looks really awesome! Also the ui of the worksheet looks great.- 56 replies
-
- vectorworks 2026
- new features
-
(and 3 more)
Tagged with:
-
JNC Tools Free Manager
MarcelP102 replied to Jesse Cogswell's topic in 3rd Party Services, Products and Events
Merry Christmas Jesse, thanks for the present 😀 -
Select Similar -> All Styled Object types
MarcelP102 replied to bcd's question in Wishlist - Feature and Content Requests
Check my free plugin that does this: Use it as a right click command. -
Thnx, got it working for now with the script below. Will test more later. PROCEDURE DrawToDelete; VAR H1, dummyH :HANDLE; PROCEDURE SelectThem(h :HANDLE); VAR vertX, vertY :REAL; i :INTEGER; BOOl :BOOLEAN; BEGIN FOR i := 1 to GetVertNum(h) DO BEGIN GetPolyPt(h, i, vertX, vertY); BOOL := PtInPoly(vertX, vertY, h1); IF BOOL = TRUE THEN BEGIN SetSelect(h); END; END; END; PROCEDURE DeleteThem(h :HANDLE); BEGIN DelObject(h); END; BEGIN Locus(0,0); dummyH := LNewObj; CallTool(-203); h1 := NextObj (dummyH); SetName(h1, 'MySelectionPolygon'); DSelectAll; ForEachObject(SelectThem, ALL); ForEachObject(DeleteThem, SEL=FALSE); DelObject(h1); DelObject(dummyH); DSelectAll; END; Run(DrawToDelete);
-
I'm using the below script to let a user draw a square, name it and delete everything outside that object using LOC criteria. Unfortunately it also deletes polygon's that are within the square but it center point is outside it. That happens a lot with unregular shaped polygon, like the polygon representing multiple connected streets. I've tried everything but I'm unable to keep all the objects within the square. Basically I want it to work the same as the 2D selection tool while holding ALT. Any help? See attached file for a sample project. PROCEDURE DrawToDelete; VAR H1, dummyH :HANDLE; BEGIN Locus(0,0); dummyH := LNewObj; CallTool(-203); h1 := NextObj (dummyH); SetName(h1, 'MySelectionPolygon'); DSelectAll; SelectObj(INSYMBOL & INOBJECT & (LOC<>'MySelectionPolygon')); DeleteObjs; DSelectAll; DelObject(h1); DelObject(dummyH); ReDrawAll; END; LOCproblem.vwx Something else I've tried is to call the selection tool and use that to draw a box to delete. Only thing is that I don't know a way to script the ALT pressing, is that possible? PROCEDURE DrawToDelete; PROCEDURE DeleteThem(h :HANDLE); BEGIN DelObject(h); END; BEGIN DSelectAll; CallToolWithMode(-240,3,1); ForEachObject(DeleteThem, SEL=FALSE); END;
