Jump to content

Pat Stanford

Moderator
  • Posts

    12,675
  • Joined

  • Last visited

Everything posted by Pat Stanford

  1. It sounds like there may be some corruption lurking in your template file(s). It may be time to start from scratch and recreate the templates new in VW2008. Pat
  2. Also check that you don't have your grid snap turned on. If you resize by dragging and the grid snap is on, you will often have problems getting the exact measurment you want. Grid snap is a great feature, but it also results in more frustration (especially from new users) than almost anything else. Pat
  3. Take your extruded cylinder and put in a left isometric view and try the rotat with the Screen Plane on and off and you will get a better feeling for what they are supposed to do. You get the same strange snap angle display in VW2008 if you have a screen plane that is parallel/perpendicular to the working plane and have the working plane button turned on. I will file a bug on this. Pat
  4. What is the Rotate in Screen Plane toggle? I am not seeing that with the rotate tool on my machine. I just tried both with in plan view and rotated plan view and I can't duplicate your problem. What happens if you try this in a new blank document? Pat
  5. Couple of ideas: 1. Are you using sheet layers or just design layers in the files? If just design layers, then create a single VE "Plot File" and reference in all of the other files and create a saved view (or sheet layer/Viewport) of each one. You can then use the batch print command. 2. VectorScript is file based and basically useless for inter-file work. But since you are on a Mac, you can use AppleScript. The dictionary for VW is small, but should allow you to open a file, run a VectorScript (either already in the VW file or coded in the Applescript) and close the file. If you need help with this, please let me know. Pat
  6. Patrick, If you right click (control click) on a viewport, you will get an option called Edit followed by Edit Annotation, Edit Crop and Edit Design Layer. It you select Edit, you can set which option (or the dialog box asking what you want to do) as the default for a double click on a viewport. So set you double click on the viewport to Edit Annotation and then use a Right Click for the times you want to edit the crop or design layer. Maybe an even better soluiton than yours? Pat
  7. I hope I am not being overly simplistic, but how are you using the rotate tool? The tool takes three clicks. First click is the point you want to rotate around. The second click defines a "handle" that you can then use to rotate the object. The third click locks in the rotation. It looks like you might have accidentaly clicked once at the bottom of the extension line, then made the second click at the bottom of the object. I hope this helps. Pat
  8. VW works a little differently. A template file will only be used when you create a new document, not when you create a new layer in an existing document. To come close to what you want, create a template file with a "Template" design layer with your title block on it. Then instead of creating a new design layer, duplicate the template layer. Pat
  9. Roch are you Windows or Mac based? If you are on windows, there appear to be a number of inexpensive (<$200) options to convert your STL files to something VW can read like 3DS or DWG. http://www.filedudes.com/Mesh_To_Solid-download-43322.html http://www.staigerland.com/amapi/obj2amapi.html http://www.regnow.com/softsell/nph-softsell.cgi?item=5697-3&affiliate=24872 If you don't want to spend the money and don't mind a little more time, then check out http://home.austin.rr.com/reubenrachel/reuben/3D/index.html#stl It gives "recipes" of how to convert using free or inexpensive software, but many of the options are multiple step and not necessarily the simplest to use. Pat
  10. If you set up a template with Use at Creation turned on for the None class then you have what you want. If you really want it on all the time, save a template file and name it default.sta. This will be used whenever you create a new document and when VW first starts up. There are many of us who do not use class attributes. Possibly more that those who do. If it was turned on by default, it would inconvenience us. There are also many of us who don't think the None class should ever have any attributes. It would also be easy to write a script that would fix this problem. It could set the defaults to By Class. You could also write a script that would go through and set every object to By Class. If you are interested in the scripts or need help with them let me know. Pat
  11. Here is the short version of how to use the script: Copy everything between the {**********} lines. Activate the drawing you want the script to be in. Use the resource browser to create a new VectorScript. It will first ask for a name for the script palette and then for the script. After putting in both names, it will open the script editor. Paste the text into the editor. Click OK to close the editor. Double Click on the name of the script in the Script Palette to run the script. Let me know how it goes. Pat
  12. It doesn't update becasue the title block is not really a symbol. The drawing border object uses the geometry in the title block symbol to draw its own copy rather than just inserting a copy of the symbol. This is also the reason that you can't use different fonts in a title block. It gets that there is text there, but uses teh font it wants, rather than what is specified in the tilte block symbol. Pat
  13. How about a script to put a symbol at the location of each loci? Create a symbol that looks the way you want the loci to print, name it PrintLocus, and run this script: {**********************} Procedure PrintableLoci; {Inserts a symbol named PrintLocus at the locaiton of each loci on the active layer} {? 2008, Coviana, Inc - Pat Stanford pat@coviana.com} {Licensed unde the GNU Lesser General Public License} Var H1:Handle; X1,Y1:Real; N1,N2:Integer; Begin H1:=FActLayer; While H1 <> nil do Begin If GetType(H1) = 17 then Begin GetLocPt(H1,X1,Y1); Symbol('PrintLocus',X1,Y1,0); H1:=NextObj(H1); End else Begin H1:=NextObj(H1); End; End; End; Run(PrintableLoci); {**********************} Pat
  14. If you have anything above Fundamentals, the Batch Print and Batch Export (PDF) allow you to set each "page" of the export/print to be either color or black/white. The other option is to go into Document Preferences and select the Black & White Only check box and then do your print or export. Pat
  15. What exactly are you trying to do with this script? Here are three short scripts that might get you started. To run each script, copy the lines between the {**************} and paste them into a new VectorScript Editor Window. The first one returns the line weight and the Red/Green/Blue colors of the first selected object on the active layer. You can manually set one object to your preferences, then use the output of this script to know what values to enter into the other scripts. {**************} Procedure GetObjectPenInfo; Var R1,G1,B1 : LongInt; LW : Integer; Begin LW:=GetLW(FSActLayer); GetPenFore(FSActLayer,R1,G1,B1); Message('Line weight is: ',LW,' and colors are: ',R1,' ',G1,' ',B1); End; Run(GetObjectPenInfo); {**************} The second script changes the pen weight and color of the first selected object on the active layer to the values manually set in the script. Since it does not use any variables, it does not need to be called a Procedure or have a Begin/End or a Run statement. Change the 20 to the line weight (in mils) that you want, and set the 0,0,65535 to the values you get from the first script for the color you want. {**************} SetLW(FSActLayer,20); {Change this value to the mils of line weight you want} SetPenFore(FSActLayer,0,0,65535); {Change these values to the color values you want} RedrawAll; {**************} The third script sets that document default pen color and weight to the values manually set in the script. Set the colors and line weight the same way you do in the second script. {**************} PenFore(0,0,65535); PenSize(20); RedrawAll; {**************} Let me know if you have additional questions. Sincerely, Pat
  16. I think is has to do with files that are not saved yet. If you do a Save As on a file, I don't think that VW actually saves the file to disk, just changes the display name and closes the original file. When the Autosave kicks on, since the file does not exist on disk, it autosaves to the disk root. As soon as you make a change and manually save the file, the backups will save to the correct location. You might want to file this as a bug if it bothers you. Pat
  17. Since at least Minicad 3+, you have been able to use the 2D Selection Tool (now with the reshape mode on) and select teh text block and drag the lower left handle to whatever width you want. Am I misunderstanding your question? Pat
  18. This is almost certainly a class visibility problem. Any time objects you know are supposed to be there are missing, check the class visibility. In order for an object to be visible, the class of the object AND the class of any container object (Groups, symbols) that contain the object must all be set to be visible. Good luck, Pat
  19. After posting this, i had to restart VW. I am seeitng the debug file also and it is created on launch. If it bothers you, then submit a bug. I am seeing it on Mac OSX.4.10 runing VW2008 SP2(82099). Pat
  20. Are you sure it is created on launch? VW debug output.txt is normally created when you are working in Vectorscript and turn debug mode on in a Plug-in object. It seems more likely that there is a tool or menu command that accidentally was left in debug mode. It should not hurt anything, and the file should be overwritten every time the script/object runs. So as you said, it might be annoying, but is not anything you should worry about. If you can figure out what command is actually causing th efile to be created, you can file it to bug submit so it can be turned off. If you are using any third party objects, you might want to check them out first. Pat
  21. Check out Hidden Line Rendering. It should give the 3D line art you are looking for. VectorWorks will print whatever you have displayed on the screen, be it a rendered drawing or a wireframe. Pat
  22. You mean that you have assigned Style-1 through Style-15 (or some subset of those) to different parts of the doors and windows? Have you also gone into the class setups for Style-1 through Style-15 and set the texture/color attributes for those styles? Pat
  23. In the Object Info Palette, when you have a Callout Selected, there is (should be?) a box labeled "Always Left Justify Text". When I select that, I get Left justified text even with the arrow and line to the right. Pat
  24. I didn't have a rotate, but I do now. This will rotate each object individually. Symbols and PIOs are rotated around the insertion point, Other objects around their geometric center. Regards, Pat ============== Procedure RotateEachObject; {Rotates each selected object in the active layer} {Symbols and PIOs are rotates around the insertion point} {Other Objects are rotated around their center point} {? 2007,2008, Coviana, Inc - Pat Stanford pat@coviana.com} {Licensed unde the GNU Lesser General Public License} Var H1,H2:Handle; N1,N2:Integer; A1:Dynarray[ ] of handle; R1,X1,Y1 :Real; Begin N1:=Count(Sel); If N1>0 then Begin Allocate A1[1..N1]; N2:=1; While N2<=N1 do Begin A1[N2]:=FSActLayer; SetDSelect(FSActLayer); N2:=N2+1; End; R1:=RealDialog('Enter the amount to rotate each object by','90.0'); N2:=1; While N2<=N1 do Begin If ((GetType(A1[N2]) = 15) or (GetType(A1[N2])=86)) then GetSymLoc(A1[N2],X1,Y1) else HCenter(A1[N2],X1,Y1); HRotate(A1[N2],X1,Y1,R1); N2:=N2+1; End; End else AlrtDialog('At least one object must be selected'); End; Run(RotateEachObject); ==============
  25. Here is a revised version of the script. It shows a message so you can see how far along it is. It also shows the watch cursor. The biggest change is in how may polys it handles. There is a line at the top setting a constant right now it is set to 5000. You can set this down as far as you like by changing the 5000 to whatever you want. Const NumPolys = 5000; If there are more polys in the drawing than the NumPolys constant, you get a dialog box at the end of the run suggesting that you run it again to handle more more polys. Let me know if this works any better. Pat ============= Procedure ExtrudePolygonTo3DLoci; {? 2007,2008, Coviana, Inc - Pat Stanford pat@coviana.com} {Licensed unde the GNU Lesser General Public License} {This procedure steps through each 2D Polygon} {on the active layer looking for 3D Loci located} {with the boundary of the poly. If there is } {exactly one 3D Loci within the Poly boundary} {the polygon is extruded to the Z-Height of} {the Loci and the Loci is deleted. If there are} {no 3D Loci or more than 1 3D Loci, the polgon} {is left untouched. Any remaining 2D Polygons} {and 3D Loci will be selected at the end of} {the procedure.} Const NumPolys = 5000; Var PolyHandle, LocusHandle: Handle; PolyCount,PolyIndex:LongInt; PolyCriteria:String; PolyArray:DynArray of Handle; Procedure LocusHandler(LH_Locus, LH_Poly:Handle); {This procedure takes the locus handle and} {uses the Z+Height of the locus as the height} {to extrude a copy ofthe polygon pointed to by} {PolyHandle. The original polygon and the locus} {point are then deleted.} Var X1,Y1,LocusZ:Real; {X1,Y1 are dummy variables, we only need the LocusZ} NewExtrude:Handle; {Dummy Variable for Duplicate} Begin GetLocus3D(LH_Locus,X1,Y1,LocusZ); {Get Height to extrude to} BeginXtrd(0,LocusZ); {Start the extrude} NewExtrude:=CreateDuplicateObject(LH_Poly,Nil); {Need a new object to extude} EndXtrd; {End the extude} DelObject(LH_Poly); {Delete the original polygon} DelObject(LH_Locus); {Delete the locus point} End; Procedure PolyHandler(PH_Poly:Handle); {PH_Poly is a handle to the polygon} {This procedure gets the name of the polygon} {changes it to one we can use. It then counts} {the number of 3D Loci in the area of the} {Polygon. If there is exactly 1 Loci, it passes} {the Loci's handle to the LocusHandler procedure.} Var S1,S2,S3,S4:String; {Strings to hold the criteria and polygon name} Begin S1:=GetName(PH_Poly); {Store the existing name} S2:='COV_123-456-789'; {Set the temp name} S3:=concat('Loc=',S2); {Set up the criteria for the poly area} S4:=concat('(T=LOCUS3D) & (Loc=',CHR(39),S2,CHR(39),')'); SetName(PH_Poly,S2); {Set the poly name to the temp name} If Count(S4)=1 then {If only one poly then} Begin DSelectAll; {DSelectAll} SelectObj(S4); {Select the one locus point} LocusHandler(FSActLayer,PH_Poly); {Call the LocusHandler procedure with the handle to the locus point} End; SetName(PH_Poly,S1); {Restore the original poly name} End; Begin {Main Procedure} SetCursor(WatchC); {Set the watch cursor to show long time} PolyIndex:=1; PolyCriteria:='(T=POLY)'; PolyCount:=Count(PolyCriteria); If PolyCount>NumPolys then PolyCount:=NumPolys; PolyHandle:=FInLayer(ActLayer); Allocate PolyArray[1..PolyCount]; {Make list of polys before we begin} While ((PolyHandle <> Nil) & (PolyIndex <= NumPolys)) do If GetType(PolyHandle)=5 then Begin PolyArray[PolyIndex]:=PolyHandle; PolyIndex:=PolyIndex+1; PolyHandle:=NextObj(PolyHandle); Message('Making List of Polygons. ',PolyIndex,' of ',Polycount,' completed'); End Else PolyHandle:=NextObj(PolyHandle); {Use List of Polys to handle Areas} PolyIndex :=1; While PolyIndex <= PolyCount do Begin PolyHandler(PolyArray[PolyIndex]); {call PolyHandler Procedure} Message('Extruding Polygons. ',PolyIndex,' of ',Polycount,' completed'); PolyIndex := PolyIndex + 1; end; DSelectAll; SelectObj((T=POLY)); SelectObj((T=LOCUS3D)); ResetOrientation3D; ClrMessage; SetCursor(ArrowC); If Polycount=NumPolys then AlrtDialog(Concat('Possibly more than ',NumPolys,' polygons. Rerun script to handle additional polys.')); End; {Main Procedure} Run(ExtrudePolygonTo3DLoci); =============
×
×
  • Create New...