Jump to content

michaelk

Moderator
  • Posts

    6,349
  • Joined

  • Last visited

Everything posted by michaelk

  1. Can you copy the wall with that window into a blank file and post it?
  2. Is that a custom window or two windows directly adjacent to each other?
  3. Still there! (Not optimized for dark mode) VWSanta2023.mp4
  4. You CAN encrypt plug-ins in 2024 one at a time using the method in my post above. I don't go for all the fancy stuff Josh, Jesse, and Sam do. 🙂
  5. Be very careful w/ chatGPT writing VS. I have tried it and found that chatGPT often hallucinates functions that don't exist. If you want it to do something super simple - like draw a rectangle of a given size - it can do it, but often in a bizarre, verbose way. I'm sure it will get better in a year or two and we will all be writing fabulous scripts 🙂.
  6. File > Document Settings > Document Preferences… > Display Tab. Second checkbox from the top.
  7. You might find this helpful. I made a couple scripts when 3D Web views first came out to open all the doors in a drawing so the client wouldn't have to crash through closed doors. One opens all the doors that have "On Schedule" checked. The other one returns them to their original state. It uses User Field 9 and 10 to store the original state of the door. I'll attach a file with the scripts and a couple doors to swing open and closed. Here is the script to open the doors in 3D: PROCEDURE OpenTheDoor; {14 April 2017} {Badly scripted by Michael Klaers} {This script preps the doors in a drawing to be ready to 'Export Web View' It preserves the 3D Open boolean and the open angle of each door in User Field 9 and 10 and then sets the 3DOpen to TRUE and the Open Angle to 90°} {There is a companion script that restores the doors to their original state} VAR ShouldILeaveThisOpen : STRING; OriginalOpenAngle : STRING; {------------------------------------------------------------Record & Open Procedure} PROCEDURE RecordAndOpen(h : HANDLE); BEGIN ShouldILeaveThisOpen := GetRField(h,'Door','3DOpen'); OriginalOpenAngle := GetRField(h,'Door','OpenAngle'); SetRField(h,'Door','UserFld9',OriginalOpenAngle); SetRField(h,'Door','UserFld10',ShouldILeaveThisOpen); SetRField(h,'Door','OpenAngle','90'); SetRField(h,'Door','3DOpen','TRUE'); ResetObject(h); END; {-----------------------------------------------------------------------Main Program} BEGIN ForEachObject(RecordAndOpen,(((R IN ['Door']) & ('Door'.'OnSched'=TRUE)))); END; RUN(OpenTheDoor); Change the number in SetRField(h,'Door','OpenAngle','______'); to be whatever angle you want. This is the script to restore the doors to closed: PROCEDURE CloseTheDangDoor; {14 April 2017} {Badly scripted by Michael Klaers} {This script restores the doors in a drawing after 'Export Web View' It recalls the 3D Open boolean and the open angle of each door from User Field 9 and 10 and then restores the 3DOpen Boolean and the Open Angle to their original values} {There is a companion script that records original state of the doors. Run that one first.} VAR OriginalOpenAngle : STRING; ShouldILeaveThisOpen : STRING; {------------------------------------------------------------Read & Restore Procedure} PROCEDURE WereYouBornInABarn(h : HANDLE); BEGIN OriginalOpenAngle := GetRField(h,'Door','UserFld9'); ShouldILeaveThisOpen := GetRField(h,'Door','UserFld10'); SetRField(h,'Door','OpenAngle',OriginalOpenAngle); SetRField(h,'Door','3DOpen',ShouldILeaveThisOpen); ResetObject(h); END; {----------------------------------------------------------------------Main Program} BEGIN ForEachObject(WereYouBornInABarn,(((R IN ['Door']) & ('Door'.'OnSched'=TRUE)))); END; RUN(CloseTheDangDoor); Much faster than doing it manually 🙂 Open the Doors.vwx
  8. @grant_PD For the foreseeable future, yes. I think there is even more going on here than we can see. Graphic elements of the callout object can be controlled from a Keynote Legend and from Text Styles. That's in addition to callouts being attached to databases. I think the callout object is a much more complicated object than it appears to be. It wouldn't be that difficult (famous last words of everyone writing vectorscript) to make a callout replacement plug-in object that could never be a keyed note and could never attach to a database. There may already be some out there floating around. (I always need to check every idea I have for a script or plug-in to make sure @Sam Jones hasn't already written it.)
  9. Looks like you are in a design layer. is there a SLVP rendering in the background?
  10. Yes. You can edit the placement of the elements of the data tag and the justification of the static and linked text in the tag. Not sure which data tag you are using. Can you post a file with the tag?
  11. I just tried it and it worked. Are you going through File>Import>import mtextur… ? I'm currently on a flight so there must be a firewall and a VPN. For me it never opened a webpage. Just the little download content browser. I search for 69201 and hit the download button. It never opened anything like your screen shot. The texture just appeared in the RM.
  12. So you don't see this? I don't think there is any way to turn that off. Does it still work in 2023? Could it be interference with a system extension or other software? (I'm tracking down a similar issue right now with the B shortcut). If you were on a Mac I'd recommend booting in safe mode or switching to a "blank" user account to see if that fixes it. There must be an equivalent process on Windows.
  13. Nope. Unless there's something in the SDK. I did it unsuccessfully for a while just using the usuall methods. Then I tried exporting a file with nothing but a callout as a VS and got that nonsense. Turns out that nonsense is totally necessary to create a new callout from scratch if you want the leader line to work. Without the nonsense you can create a callout, but nothing you do in the OIP after creation will create a leader line. It looks like the nonsense controls the attributes. Which I assume is why you can't do it the normal way with your menu command. There's a hidden field in the Callout record called __SubObjectDataAttributes which is a big concat. Somehow I think THAT is controlling the attributes.
  14. I could only get one of them to open. The other seems damaged/corrupted. Project 4-Bedroom v2023.vwx
  15. @Josh Loy That's exactly what I'm seeing. Once in a while editing a SLVP and choosing a design layer will do it.
  16. Callouts are not normal. Here's a script that changes a text object to a callout. You would think that to create a callout you just CreateCustomObject('Callout',…. Then write some data to the record and Bob's your uncle. Nope. Take a look at how attributes are handled inside of what looks like comments. PROCEDURE Test; VAR hCallout,hText,Waldo : HANDLE; tempHandle, objectHandle, textHandle:HANDLE; objectName:STRING; index:INTEGER; s1 : DYNARRAY[] of CHAR; fakeName : STRING; objType : INTEGER; xx,yy,zz : REAL; BEGIN; Locus(0,0); Waldo := LNewObj; hText := PrevSObj(Waldo); DelObject(Waldo); HCenter(hText,xx,yy); fakeName := Date(2,1); SetName(hText,fakeName); objType := ObjectType(N = fakeName); IF objType = 10 THEN BEGIN {AlrtDialog(CONCAT('Objecty Type: ',objtype));} s1 := GetText(hText); {AlrtDialog(s1);} tempHandle := CreateCustomObject('Callout',0",0",#0.0000000000000d); objectHandle := LNewObj; SetDropShadowData(objectHandle, 0,0.003937,0.001969,#315.0000000000d,75,0,0,0); EnableDropShadow(objectHandle, FALSE); objectHandle := LNewObj; {SetObjectVariableBoolean(objectHandle, 1160, FALSE);} Record(LNewObj,'Callout'); SetRField(LNewObj,'Callout','Link To Database','False'); SetRField(LNewObj,'Callout','Place As Keynote','False'); SetRField(LNewObj,'Callout','Keynote Prefix',''); SetRField(LNewObj,'Callout','Keynote Suffix',''); SetRField(LNewObj,'Callout','BubbWidth','2"'); SetRField(LNewObj,'Callout','Vertical Placement','Auto'); SetRField(LNewObj,'Callout','Orientation','Auto'); SetRField(LNewObj,'Callout','Left','False'); SetRField(LNewObj,'Callout','Bubble Style','None'); SetRField(LNewObj,'Callout','Radius Factor','0.046850393700787"'); SetRField(LNewObj,'Callout','Margin','0.046850393700787"'); SetRField(LNewObj,'Callout','Bubble Shadow','False'); SetRField(LNewObj,'Callout','Shoulder','1''0.000000000000002"'); SetRField(LNewObj,'Callout','Leader Type','Straight'); SetRField(LNewObj,'Callout','Leader Style','Line'); SetRField(LNewObj,'Callout','LineLength','7''2.331410057273573"'); SetRField(LNewObj,'Callout','__ShowDialog','False'); SetRField(LNewObj,'Callout','Rise','0.19"'); SetRField(LNewObj,'Callout','Text',S1); SetRField(LNewObj,'Callout','DNE','Solid Arrow\1\-1'); SetRField(LNewObj,'Callout','TextFont','Arial'); SetRField(LNewObj,'Callout','TextSize','203.200000'); SetRField(LNewObj,'Callout','TextStyle','Plain'); SetRField(LNewObj,'Callout','ControlPoint01X','-1''7.526018289463835"'); SetRField(LNewObj,'Callout','ControlPoint01Y','-1''11.734217624645211"'); SetRField(LNewObj,'Callout','ControlPoint02X','-4''7.239175964666458"'); SetRField(LNewObj,'Callout','ControlPoint02Y','-1''7.431487403991564"'); SetRField(LNewObj,'Callout','ControlPoint03X','1''0.000000000000002"'); SetRField(LNewObj,'Callout','ControlPoint03Y','0"'); SetRField(LNewObj,'Callout','ControlPoint04X','9''0.046850393700751"'); SetRField(LNewObj,'Callout','ControlPoint04Y','0"'); SetRField(LNewObj,'Callout','__dbName',''); SetRField(LNewObj,'Callout','__dbUUID',''); SetRField(LNewObj,'Callout','__NoteUUID','{FFA5C43C-FC3C-40A2-AC80-C4D561E385E2}'); SetRField(LNewObj,'Callout','__NoteDescrip','This is a callout'); SetRField(LNewObj,'Callout','__KeynoteNumber','0'); SetRField(LNewObj,'Callout','__OldPlaceAs','False'); SetRField(LNewObj,'Callout','__OldBubbWidth','2"'); SetRField(LNewObj,'Callout','__OldShoulder','1''0.000000000000002"'); SetRField(LNewObj,'Callout','__OldLeaderStyle',''); SetRField(LNewObj,'Callout','__IsFlipped','False'); SetRField(LNewObj,'Callout','__isNew','False'); SetRField(LNewObj,'Callout','__version','2800'); SetRField(LNewObj,'Callout','__markerCode','1;0;15;0.125000;0.000000;2;2.000000;'); SetRField(LNewObj,'Callout','Arrow Style',''); SetRField(LNewObj,'Callout','Marker Symbol',''); SetRField(LNewObj,'Callout','Marker Scale Factor','0.039370078740157"'); SetRField(LNewObj,'Callout','MarkerAng','15'); SetRField(LNewObj,'Callout','Marker Weight','1'); SetRField(LNewObj,'Callout','__OldCtrlPt03X','304.8'); SetRField(LNewObj,'Callout','__OldCtrlPt03Y','0'); SetRField(LNewObj,'Callout','__OldCtrlPt04X','2744.39'); SetRField(LNewObj,'Callout','__OldCtrlPt04Y','0'); SetRField(LNewObj,'Callout','Keynote Legend','Default Legend'); SetRField(LNewObj,'Callout','__OldKeynoteLegend','Default Legend'); SetRField(LNewObj,'Callout','Leader Radius','0"'); SetRField(LNewObj,'Callout','OldText','This is a callout'); SetRField(LNewObj,'Callout','__IsUseReletivePath','False'); SetRField(LNewObj,'Callout','__DBReletivePath',''); SetRField(LNewObj,'Callout','Text Angle','0.00°'); SetRField(LNewObj,'Callout','Rotate Text','False'); SetRField(LNewObj,'Callout','__OldTextAngle','0.00°'); SetRField(LNewObj,'Callout','__BubbleShadowPenColor','-3'); SetRField(LNewObj,'Callout','__BubbleShadowFillColor','-3'); SetRField(LNewObj,'Callout','HorizontalTextAlignment','Center'); SetRField(LNewObj,'Callout','New Bubble Style V20','None'); SetRField(LNewObj,'Callout','New Vertical Placement','Auto'); SetRField(LNewObj,'Callout','Draw Extended Shoulder','False'); SetRField(LNewObj,'Callout','Text Style Ref','0'); SetRField(LNewObj,'Callout','Text Spacing Index','2'); SetRField(LNewObj,'Callout','Text Spacing Value','0'); SetRField(LNewObj,'Callout','Leader Angle','-150.00°'); SetRField(LNewObj,'Callout','__ObjectRotationAngle','0'); SetRField(LNewObj,'Callout','__DrawTwoSoulders','False'); SetRField(LNewObj,'Callout','__LeadingLeaderPointX','0'); SetRField(LNewObj,'Callout','__LeadingLeaderPointY','0'); SetRField(LNewObj,'Callout','__SecondaryLeaderPointX','2028.6094375'); SetRField(LNewObj,'Callout','__SecondaryLeaderPointY','0'); SetRField(LNewObj,'Callout','ControlPoint05X','5''7.866513287401574"'); SetRField(LNewObj,'Callout','ControlPoint05Y','0"'); SetRField(LNewObj,'Callout','__OldSecondaryShoulderPointX','1723.8094375'); SetRField(LNewObj,'Callout','__OldSecondaryShoulderPointY','0'); SetRField(LNewObj,'Callout','__LeaderLinesData','{ "handles" : [ { "index" : 1, "firstPtIndex" : 1, "lastPtIndex" : 4, "leaderType" : 0 } ] }'); SetRField(LNewObj,'Callout','__CustomPointsData',Concat('{ "handles" : [ { "index" : 1, "type" : 1, "x" : 0, ',' "y" : 0, "bezier" : false }, { "index" : 2, "typ','e" : 2, "x" : -1899.0359340549093758, "y" : -1096.40890772','73740713, "bezier" : false }, { "index" : 3, "type"',' : 4, "x" : -495.96086455238139479, "y" : -602.84912766598','836242, "bezier" : true }, { "index" : 4, "type" : ','5, "x" : -1403.0750695025280947, "y" : -493.55978006138570','89, "bezier" : true } ] }')); SetRField(LNewObj,'Callout','Max Leader Lines','2'); SetRField(LNewObj,'Callout','__ActiveSubObject','4'); SetRField(LNewObj,'Callout','__SubObjectDataAttributes',Concat('{ "handles" : [ { "index" : 1, "objectType" : 1, "hi','ghlightingObject" : false, "objectPenStyle" : 1, "objectCl','assPenStyle" : 1, "objectPenPatternIndex" : 2, "objectPenP','atternForeColor" : 257, "objectPenPatternBackColor" : 256, ',' "objectPenColor" : 257, "objectPenLineType" : 2, "objectP','enLineTypeName" : "", "objectThickness" : 2, "objectMarker','Style" : 0, "objectMarkernAngle" : 15, "objectMarkerdSize"',' : 0.125, "objectMarkerdWidth" : 0, "objectMarkernThicknes','sBasis" : 2, "objectMarkerdThickness" : 2, "objectFillOpac','ity" : 100, "objectOpacity" : 100, "fillColorByClass" : fa','lse, "penColorByClass" : false, "thicknessByClass" : false',', "markerByClass" : false, "fillOpacityByClass" : false, ',' "opacityByClass" : false }, { "index" : 2, "objectTy','pe" : 2, "highlightingObject" : false, "objectPenStyle" : ','1, "objectClassPenStyle" : 1, "objectPenPatternIndex" : 2,',' "objectPenPatternForeColor" : 257, "objectPenPatternBackC','olor" : 256, "objectPenColor" : 257, "objectPenLineType" :',' 2, "objectPenLineTypeName" : "", "objectThickness" : 2, ',' "objectMarkerStyle" : 0, "objectMarkernAngle" : 15, "obj','ectMarkerdSize" : 0.125, "objectMarkerdWidth" : 0, "object','MarkernThicknessBasis" : 2, "objectMarkerdThickness" : 2, ','"objectFillOpacity" : 100, "objectOpacity" : 100, "fillCol','orByClass" : false, "penColorByClass" : false, "thicknessB','yClass" : false, "markerByClass" : false, "fillOpacityByCl','ass" : false, "opacityByClass" : false }, { "index" : ','3, "objectType" : 3, "highlightingObject" : false, "obj','ectPenStyle" : 1, "objectClassPenStyle" : 1, "objectPenPat','ternIndex" : 2, "objectPenPatternForeColor" : 257, "object','PenPatternBackColor" : 256, "objectPenColor" : 257, "objec','tPenLineType" : 2, "objectPenLineTypeName" : "", "objectTh','ickness" : 2, "objectMarkerStyle" : 0, "objectMarkernAngle','" : 15, "objectMarkerdSize" : 0.125, "objectMarkerdWidth" ',': 0, "objectMarkernThicknessBasis" : 2, "objectMarkerdThic','kness" : 2, "objectFillOpacity" : 100, "objectOpacity" : 1','00, "fillColorByClass" : false, "penColorByClass" : false,',' "thicknessByClass" : false, "markerByClass" : false, "','fillOpacityByClass" : false, "opacityByClass" : false }, ','{ "index" : 4, "objectType" : 4, "highlightingObject" :',' false, "objectPenStyle" : 1, "objectClassPenStyle" : 1, ',' "objectPenPatternIndex" : 2, "objectPenPatternForeColor" : ','257, "objectPenPatternBackColor" : 256, "objectPenColor" :',' 257, "objectPenLineType" : 2, "objectPenLineTypeName" : "','", "objectThickness" : 2, "objectMarkerStyle" : 0, "obj','ectMarkernAngle" : 15, "objectMarkerdSize" : 0.125, "objec','tMarkerdWidth" : 0, "objectMarkernThicknessBasis" : 2, "ob','jectMarkerdThickness" : 2, "objectFillOpacity" : 100, "obj','ectOpacity" : 100, "fillColorByClass" : false, "penColorBy','Class" : false, "thicknessByClass" : false, "markerByClass','" : false, "fillOpacityByClass" : false, "opacityByClass" ',': false } ] }')); SetRField(LNewObj,'Callout','__KeynotesListUpdate','False'); SetRField(LNewObj,'Callout','TextSizePagePoints','12.000000'); SetRField(LNewObj,'Callout','Auto Fit Bubble Width','True'); SetRField(LNewObj,'Callout','Max Bubble Width','2"'); SetRField(LNewObj,'Callout','Keynote Identifier','0'); SetRField(LNewObj,'Callout','__OldKeynoteIdentifier','0'); SetRField(LNewObj,'Callout','__IsNoteUpdated','True'); SetRField(LNewObj,'Callout','__UseFirst42','True'); ResetObject(LNewObj); HMove(LNewObj,xx,yy); DelObject(hText); DelName(fakeName); END ELSE BEGIN SysBeep; AlrtDialog('No Text Object Selected'); END; END; RUN(Test);
  17. Hi @Josh Loy I think I may have already submitted this into JIRA, but I don't remember if I had a sample file. Next time it happens you'll get a file! PS. If I remember - to give credit where credit is due - it was @Jesse Cogswell who pointed out the navigation from Sheet Layer to Design Layer cause to me.
  18. I don't think you should change it. Anyone who is capable of installing a 3rd party tool and cares enough to make sure everything is in the right class is advanced enough to handle seeing non localized record names.
  19. I really hesitate to tell you this, but…. The slight offset in the column headers in the header row and in the body between Object Type and # in drawing that you see in Windows is more offset in Mac. I can see the R in Record. This is just going to make me go back over all your other menu commands and try to move columns around.
  20. That's hilarious. I remember being told in college that we could NOT use GOTO statements. Now I'm going to start GOTOing everything.
  21. You can be certain that I was poking the columns with a stick. I saw something there and moved the columns to figure out what was going on. I just tried running Locate Class Objects with developer mode turned off. No error message!
×
×
  • Create New...