
WhoCanDo
Member-
Posts
446 -
Joined
-
Last visited
Content Type
Profiles
Forums
Events
Articles
Marionette
Store
Everything posted by WhoCanDo
-
Can anyone suggest why this has stopped working for me. The script just looks until I press ESC but it use to work for years. h := FInGroup (GetParent (GetObject ('Banding Cutting List'))); while h <> NIL do if (GetTypeN (h) = 18) then RecalculateWS (h); The worksheet "Banding Cutting List" exists in the sub-folder Worksheets in the Resource Browser. There are only 15 worksheets in this folder and yet the integer loop counter I tested just kept going past it's positive limits. I must be missing something here.
-
Changing dimension text size within a vectorScript
WhoCanDo replied to ClockWerX's topic in Vectorscript
Chrissy, How did you get this to work? I added SetTextSize (h, 0, 99, GetTextSize (h, 1) / GetLScale (ActLayer) * 25); after the message. This changes the text visually on the screen, but not really. If you cut and past the dimension, it shows the original text size. I think we want the same thing for different reasons. I've written a macro to change all layers of the same scale as the active layer to a new asked scale. The problem is the text doesn't stay the same point size after the layer changes scale and the code that Raymond wrote (with my addition above) changes the text only visually. -
Except when the Saved View is the Viewport sheet.
-
Actually yes but I have "Restore Unified View" off.
-
Thanks Gytis, I've been watching myself and it's definitely doing it on itself when switching to OpenGL. Anyone else having this problem?
-
Hi, Anyone had problems with Unified View? We usually draw with if off but if I switch in and out of OpenGL (I think) it seems to switch the other layers to 3D as if Unified View was active. The other layers usually switch to Top View rather than Top/Plan. Any ideas why this would happen when Unified View is not selected? Is there a keyboard shortcut that I may be using without realising it?
-
Dialog boxes not in the middle of the screen
WhoCanDo replied to WhoCanDo's topic in General Discussion
I just tried making a backup and deleting the SavedSettings.xml No luck at fixing the problem. -
Dialog boxes not in the middle of the screen
WhoCanDo replied to WhoCanDo's topic in General Discussion
Really, how annoying. As I said, mine only started after changing licence numbers. Sorry for you. -
Hi, Since loading a trial licence to test a problem for the VW techs, my dialog boxes open inconsistently in the top left corner of my screen. "Inconsistently" because the same dialog can pop up in the middle of the screen (where it should be) the next time. How can I stop the dialogs from my macros & VW (like "move") from poping up anywhere else but the middle where it should do? Even after changing the serial number back to my purchased number, it still happens.
-
The experimenting I've got it. =('Worksheet Name':I16) However, does Nemetschek have any help for worksheet formula/help?
-
There doesn't seem to be a specific worksheet discussion page so can someone let me know how to =(another worksheet.cell reference) please. Does Nemetschek have any help for worksheet formula/help?
-
Thanks Raymond, Something in you code is ReverseWallSides(h); but when I minimize it, it works fine. Thanks PROCEDURE Main; { St. Patrick's Day 2016 - Raymond Mullin } VAR h : HANDLE; StartAng, SweepAng, ArcRadius : REAL; P1, P2 : VECTOR; { ARC Start and Stop points respectively } Pcen, Pmid : VECTOR; { ARC Center and Mid points } BEGIN h := FSActLayer; if (h <> nil) then BEGIN { Get arc data } GetSegPt1 (h, P1.x, P1.y); { start point } GetSegPt2 (h, P2.x, P2.y); { stop point } hCenter (h, Pcen.x, Pcen.y); { center point } GetArc (h, StartAng, SweepAng); ArcRadius := Distance (Pcen.x, Pcen.y, P1.x, P1.y); Pmid := Pcen + Ang2Vec (StartAng+SweepAng/2, Distance (Pcen.x, Pcen.y, P1.x, P1.y)); DSelectAll; Locus(Pmid.x, Pmid.y); END; { if } END; RUN (Main);
-
Rounding Style setting - Exact as Fractions / Non-Exact as Decimals
WhoCanDo replied to LarryO's topic in Vectorscript
One option I have used is to set the units as you want them in a blank sheet and then export the script and see what you get. I used Excel to compare two scripts by pasting each into columns A & B and then by using the code.. =IF(A2=B2,"",1) in column C (dragged down) -
Thanks to all that viewed my question. The answer is.. P4.x := P2.x + ArcRadius * Cos (Deg2Rad (SweepAng/2)); P4.y := P2.y + ArcRadius * Sin (Deg2Rad (SweepAng/2));
-
Hi, I always have problems understanding vectors so a little help would be appreciated. If I draw a round wall, I would like to find the vector point on the center-line of half the arc length. I can find the radius "Distance (P2.x, P2.y, P3.x, P3.y)" and the angle "SweepAng/2" but how do I get the new vector P4 .. PROCEDURE Main; VAR h : HANDLE; StartAng, SweepAng, ArcRadius : REAL; P1, P2, P3, P4 : VECTOR; BEGIN h := FSObject (ActLayer); GetSegPt1 (h, P1.x, P1.y); hCenter (h, P2.x, P2.y); GetSegPt2 (h, P3.x, P3.y); GetArc (h, StartAng, SweepAng); ArcRadius := Distance (P2.x, P2.y, P3.x, P3.y); Message (StartAng, ' ', SweepAng, ' ', ArcRadius); P4 := Ang2Vec (SweepAng/2, Distance (P2.x, P2.y, P3.x, P3.y)); DSelectAll; h := PickObject (P4.x, P4.y); END; RUN (Main);
-
Hi, SetPrefReal (70, ???); sets the print area scale. How do I change the print area orientation from Portrait to Landscape and back again? Regards
-
attach group records to the resultant ungrouped objects
WhoCanDo replied to WhoCanDo's topic in General Discussion
Thanks Mike, I'm not ungrouping anything in the macro so I guess this is similar to VW2014 "Do you wish to attach the record to everything within the group" Thanks, I'll choose No then. Regards -
Good job Tui, HMove(hW1, BorderWdth/2 - HWidth (hW1), BorderHght/2) works a treat. Regards
-
With much hope I tried the idea twk but alas to no avail. GetWSPlacement is another non-operational function. procedure test; var hW1 : handle; t1, l1, b1, r1 : real; begin hW1 := CreateWS ('testWS', 5, 5); hW1 := CreateWSImage (GetObject ('testWS'), 0, 0); GetWSPlacement (hW1, t1, l1, b1, r1); Message (t1, ' ', l1, ' ', b1, ' ', r1); SelectObj ((T = 56)); Relative; MoveObjs (l1 - r1, 100, false, false); Absolute; end; run (test);
-
I placed a worksheet on my drawing using .. hW := CreateWSImage (GetObject ('Schedule'), 0, 0); I would like to place it as follows .. hW := CreateWSImage (GetObject ('Schedule'), 200 - (Width of WS), 200); which will be inside the drawing border at the top right. Since the WS reference point is top left then I need to move it Width(WS) to the left of the border. How do I work out the width of the WS??
-
Thanks Kevin, That worked. However, the only reason why I used Chr instead of '°' in 2016 is that '°' stoppe working in 2016. Worked fine in previous versions. So, no Alt0176 in macros, no Chr(176) {replaced by 161} in macros, but Alt0176 is still working when typing text within the drawing. A bit of a mishmash hey. I thought VW used the ASCII western character set.
-
Hi, Can anyone tell me how to get ° into my code/text please? It seems to have been overlooked in VW2016 procedure AngleText; var pt1, pt2, pt3, pt4 : vector; begin GetPt (pt1.x, pt1.y); GetPtL (pt1.x, pt1.y, pt2.x, pt2.y); GetPtL (pt2.x, pt2.y, pt3.x, pt3.y); pt4 := (pt1 + pt3) / 2; TextOrigin (pt4.x, pt4.y); CreateText (Concat (Num2Str (2, AngBVec (pt1 - pt2, pt3 - pt2)), Chr (176))); end; run (AngleText);
-
Thanks Dieter, you've been a great help. With the code above I suddenly realised that Case Item of SetupDialogC: GetTBdialog1Events; should really be Case Item of SetupDialogC: SetupEvent; which stops all the loops I was originally perplexed about. Thanks again and have a great holiday period.
-
Thanks Dieter, you are correct. I shall use code tags next time. So how do I stop this repetition? Can you re-sequence my code as you would suggest is the best format so I don't make the mistake again please. What information are you privileged too :-) that allows you to know that 12255 is an init/setup? Where does the average person find this help?