Jump to content

Fuge

Member
  • Posts

    157
  • Joined

  • Last visited

Everything posted by Fuge

  1. Curious if someone can confirm what I'm seeing with the following script. Below.. I'm wanting to select an object and make it a child of a PIO. It appear from the testing I've done that the PIO has to already exist, or exist on the layer, before it can be made the parent. It appears the PIO can't created during the script, and isn't realized yet... for CreateDuplicateObject to work. If the PIO already exists on the layer and selected with the other object to be made the child, CreateDuplicate works fine.. Maybe I'm missing something... but I'm wondering how I can make this work if the PIO isn't already on the layer prior to running the script. What's a workaround or another approach? Should the PIO be made a symbol.. Would making it into a symbol, and inserting the symbol during run behave different since I wouldn't be "creating" it since it would already exist?! Thanks!! PROCEDURE SetParent; VAR h1, h2, hPIO, DupObjh: HANDLE; ObjName :STRING; BEGIN { Select an object, run, script adds the PIO, Does not work 😞 } ObjName:= 'TESTPIO'; h1 := FSActLayer; hPIO := CreateCustomObject( ObjName ,0,0,0) ; SetSelect( hPIO ); DupObjh := CreateDuplicateObject( hPIO, h1 ); { Sub this... On the active layer, select an object, then select the PIO, run, works } { h1 := FSActLayer; h2 := NextSObj(h1); DupObjh := CreateDuplicateObject(h2, h1); } END; RUN(SetParent);
  2. Fuge

    RunImageComp

    Thanks Josh... I did further Scooby-doo-ing around but didn't find anything about bitmap interface... It doesn't appear to be very well documented. Appreciate your time... Dave
  3. Fuge

    RunImageComp

    Curious if anyone knows anything about RunImageComp? I don't see anything online about it... An example would be nice! I'm looking to create a thumbnail of the active sheetlayer outputted at a predefined size saved at a predefined location... Of course I realize i can do something with Publish but would rather not for this solution. 🙃 Thanks! Dave
  4. Ahh... Yeah... Good Idea Pat.. Then the Worksheet can have =COUNT+('Part'.QTY) Thanks for chiming in again... Dave
  5. Hey Maarten, Thanks for your reply.... Due to what we do, the components in the end, probably won't be screws... that was just an example of what a component could be. When I mention PIO inside a PIO... I was thinking It would be nothing more than a dummy PIO.. My thought is it wouldn't have any geometry, it would just be there to be duplicated in a For loop and would have a record attached to it, as you mentioned, for the the Worksheet to count. Appreciate the ideas guys!! thanks for your time..
  6. Thanks for the suggestion Pat... Seems there's not really a clean simple way of doing it. I was thinking inserting a PIO inside a PIO, or even just a locus3D and multiplying it within the PIO. The PIO i'm creating could have 12 of this, 4 of that and so on... so it could get messy fast whichever way it's done... Another program I was using has a special function for doing something like this... One of the few things I like about the other program... Hence why we've moved back to VWs. It would be great to see a built-in function for this... something like QTY( LnewObj, 12 ); 12 of the last new object... super simple! Dave
  7. Hey Guys, Does anyone have a clever way of creating a PIO where you have a large quantity of a component without having to create geometry of each inobject instance? For example, If you had a BOM and it required 12 screws... I don't want to create 12 instances of the screw, Maybe only one... but have my worksheet count a quantity of 12, but insert only 1 instance of the PIO (with a variable = 12) into my document. Hope that makes sense... Thanks for any insight... Dave
  8. It would be great if we could select a bunch of objects on a layer and create a view of only those items. This would allow us to always only work from 1 model and not have to worry about creating a duplicate model or assembly with different classes etc as a work around.....
  9. Okay I've done some more digging and testing, and found that you can attach a texture(s) to a PIO. If you use SetTextureRefN the result is the same as selecting a texture on the Render tab, however the Render tab options for textures ends up getting changed bit for the PIO depending on the texPartID flags you use. Thought I'd share what I found to hopefully save someone else some time in the future! Thanks!
  10. Hi Everyone... Which VS call do you use to attach a texture to a Plugin Object? The effect I'm looking for is the same as when you manually choose a texture on the Render Tab of the Object Info palette as shown below. Thanks for the help! Dave
  11. Thanks Josh... Much appreciated.. I ended up using CreateDuplicateObject... It works great! Dave
  12. Hi Guys... Am I missing something? I don't see a procedure available to create a symbol from a selected object. MySoonToBeNewSymbol := LSActLayer; The only way to create a symbol from what I see is using BeginSym, EndSym... Seems like there should be a way.. but it appears not to be available... Looking to automate creating a symbol from imported geometry. I see the XT import can now create a symbol, but it creates a symbol from the import for each geometry group within the file. I want 1 symbol. Any insight is appreciated... Thanks! Dave
  13. Ahh got it's a toggle to force compiling... Perfect! Thanks for your quick reply...
  14. Hi Guys, As the scripts grow larger we're forced to us PX files and INCLUDES. That's fine.. but is there an easier way to then compile the script than having to go back to: Tools > Scripts > Vectorscript Plug-in Editor... Find your Plugin, Open it.. and hit the Compile button? This is extremely in-efficient and slow........... There has to be a better way! And sugestions would be appreciated.. Thanks... Dave
  15. I know you guys had a power outage last week.. I was on hold for 20 minutes and got hung up on waiting for someone to help me simply get a quote for an upgrade. So I call back several times and finally talked to someone. I'm told I'd have pricing within a 1/2 hour, never happened, no call nothing. Call again and leave a message for Pablo. He leaves me a message about needing more info. Left him a message with what I'd like to upgrade. No call back, not quote again. is it that hard? Today I call and NNA is closed.. The 800 number has a the Thanks giving message on it from last fall... Hello? In all my years of using Vectorworks.. I can't understand why it's so difficult to get something as simple as a quote? You have to be losing business.. this isn't that hard... I can't but help feel it's time to change software packages. I'm sorry.. I'm not one to rant... but this is ridiculous...
  16. I know everyone was asked to send in there crash logs... From that I would have thought a solution was derived... Can the solution be posted? This problem is killing my work flow... Thanks Dave
  17. Bob, PIOs with 2D & 3D elements can only be inserted in Top/Plan since it's a hybrid object. If you read the VS manual in regards to PIOs, you should never set views or call dialog boxes from within your object. PIOs are intended to be inserted in Top/Plan. Dave
  18. we build and design tradeshow exhibits. So we use Vectorworks for designing, quoting, assembly drawings, detail drawings. We export to MasterCAM for CNC and export to Artlantis or Cinema4D for rendering. we have many inhouse written plugin objects and over 1500 symbols. We organize everything via classes and automate many tasks using vectorscript. We pretty much do everything from design through production with Vectorworks
  19. Fellow VectorWorks Users, We have been long time users of VectorWorks and love it. But lately some people in our organize feel Solidworks would be a better solution of us. Yes, there is a big price difference between Vectorworks and Solidworks, but from speaking to Solidworks the price difference can be justified because of the time Solidworks can save in speed and it's feature set and automation. Does anyone have good knowledge of both Vectorworks & Solidworks and willing to share personal experience on what makes one better or worst than the other? Any insight is appreciated. Thanks Dave
  20. Alright what's the deal? You have to buy the "Designer" version to get the "Navigation" Palette?
  21. I like when they throw in NON industry related things like the "Navigation" palette in hopes you'll upgrade to a more expensive version of VWs. It's the same with Print Sheets. The rest of the things I would get with more expensive version we would NEVER use so it would be a waste of money... and considering we have over 30 user licenses this is a real turn off for us!
  22. Fuge

    compose

    Just use: DoMenuTextByName('Compose', 0); Dave
  23. Here's something I put together using the modern dialog commands for creating a layer and sheet in one shot. You should be able to modify it to fit your needs, the structure is there. The "return" key (carriage return) will act the same as hitting the OK button as you want. HTH Dave OK, here it is, sorry fella's... Procedure Createlayersheet; CONST kOK = 1; kCancel = 2; VAR LayerName ,TempLayerName :STRING; Layerhd :HANDLE; dialogOK,Done: Boolean; dlogID, dialogResult : LONGINT; newname:DYNARRAY[] of CHAR; startname:DYNARRAY[] of CHAR; LayerVis :INTEGER; PROCEDURE DriveDialog(VAR item:LONGINT; data:LONGINT); VAR L1 : ARRAY [ 1..256 ] OF STRING; i : INTEGER; BEGIN CASE item OF SetupDialogC:BEGIN SetField(3,'Enter Name'); BEGIN Layerhd := FLayer; i := 1; WHILE Layerhd <> NIL DO BEGIN L1 := GetLName(Layerhd); i := i + 1; Layerhd := NextObj (Layerhd ); END; END; END; {end dialog init} SetdownDialogC:BEGIN { dialog cleanup } END; 3:BEGIN newname:= GetField(3); END; END; {end CASE} FOR i := 1 TO NumLayers DO BEGIN i := 1; If ( GetField(3) = L1 ) THEN BEGIN AlrtDialog('That name is already exists!'); SetField(3,'enter different name'); End; i := i + 1; End; IF(GetField(3) ='') THEN { Checks for blank field } BEGIN AlrtDialog('Please enter a name!'); sysbeep; END; END; BEGIN { Create Dialog } ALLOCATE newname[1..29]; ALLOCATE startname[1..29]; dlogID := CreateLayout ('Create Name', TRUE, 'Ok', 'Cancel'); CreateGroupBox( dlogID, 13,'Layer & Sheet Name', TRUE); SetFirstLayoutItem( dlogID, 13 ); CreateEditText( dlogID, 3, '', 29); SetFirstGroupItem( dlogID, 13, 3); SetHelpString( 3 , 'Enter a name for layer & sheet.'); SetHelpString( kOK, 'OK'); SetHelpString( kCancel, 'Cancel'); AlignItemEdge( dlogID, 5, 2, 30, 1); AlignItemEdge( dlogID, 20, 2, 30, 1); dialogOK := VerifyLayout( dlogID); IF dialogOK THEN { Check Dialog is Good } BEGIN dialogResult := RunLayoutDialog( dlogID, DriveDialog ); IF dialogResult = 1 THEN BEGIN VSave('Temp Sheet'); TempLayerName:= GetLName(ActLayer); Layerhd := FLayer; WHILE Layerhd <> NIL DO BEGIN LayerName:= GetLName(Layerhd); Layer ( LayerName ); If LayerName = 'Page Border' THEN ShowLayer ELSE HideLayer; Layerhd := NextObj (Layerhd ); END; Layer ( newname ); SaveSheet( newname , False , False, True ); HideLayer; VRestore('Temp Sheet'); VDelete('Temp Sheet'); END; END; END; RUN ( Createlayersheet ); [ 10-16-2003, 11:12 PM: Message edited by: Fuge ]
  24. There is an updated plugin from Abvent v10.0.3 that works fine with VW10.5 Dave
×
×
  • Create New...