Jump to content

Jord Visser

  • Content Count

  • Joined

  • Last visited

Community Reputation

0 Neutral

About Jord Visser

  • Rank

Personal Information

  • Homepage
  • Hobbies
    Programming, Event-production, Cad drafting
  • Location
  1. Jord Visser

    Speaker Import Not pulling from Workgroup folder

    To me it seems that the workgroup logic is not implemented in this plug-in... A workaround is making a symbolic link to the 'Audio Tools' folder from the workgroup into your user Library in "~/Library/Application Support/Vectorworks/2019/ENG/Libraries/..."
  2. Jord Visser

    Debug List View

    @klinzey Thanks for the quick response, I had a feeling it had to be something similar to the Dialog builder... but missed this one ;)
  3. Jord Visser

    Debug List View

    I'd like to know as well.
  4. Jord Visser

    VW2018 slow on MacOS Beta (10.14)

    I thought it was just released, my bad.. forgot to search.
  5. Jord Visser

    VW2018 slow on MacOS Beta (10.14)

    As a heads up to the developers and other potential testers. Vectorworks (2018 SP3 Build 418943 64-Bit) is immensely slow on the current Beta release of MacOS (10.14 bèta 18A336e)
  6. Jord Visser

    Got stuck on a compiling error in PIO

    Thanks for the quick reply! works as a charm. Makes a lot of sense now, quickly read trough the mentioned document a couple of times before.. I think it's time to read it thoroughly.
  7. Hi all, I'm made a rough PIO in vectorscript yesterday, this morning I added a procedure and it keeps getting stuck on a compiling error. I rewrote the function several times now, checked all the IF-ELSE's, WHILE's and BEGIN's and I keep falling back to this error. The MakeGrayObject Procedure is the one I added this morning The error is: Line #42: PROCEDURE LTSymbol; { Error: Extra text at end of script; missing BEGIN statement? } { Error: Identifier not declared. } I attached the pascal .txt file and the .vso, both only tested in VW2018. Can someone help me with this? With kind regards, Jord Visser ltsymbol.txt [LT] Advanced symbol.vso
  8. I think i know what is happening. I looks to me that the viewport logic first updates the annotation group before updating the crop object. I think this is due to the fact that the annotation group is needed to create the selection group. I'm going to try to save the state of the viewport within the plug-in and compare this on redraw to get to know if the parametrics of the viewport changed. Are there any core developers over here whom can explain the inner workings of the viewport object?
  9. Jord Visser

    Community Board | Forum Upgrade

    No problem. The upgrade gave a lot in return Thanks!
  10. Hi all, I'm making a plug-in which needs knowledge of the exact viewport-crop position in relation to the plug-in position in the Annotation group of the viewport, when moving/rotating the viewport a problem occurs. I attached a sample document & the .vso plugin. How to replicate the problem: - Have a viewport with and crop object - Place the plug-in in the annotation group of this viewport - exit the annotation group - move / rotate de viewport PROCEDURE CropDupeTest; VAR result :BOOLEAN; {temporary store for BOOL results} objectName :STRING; objectHandle, recordHandle, wallHandle :HANDLE; eventInfo, eventType :LONGINT; pluginObjectExists :BOOLEAN; pluginRotation :REAL; pluginPosition :VECTOR; vpRotation :REAL; vpPosition :VECTOR; vpScale :REAL; vpCropObject :HANDLE; bbHandle :HANDLE; {copy of crop object into plugin} x, y, z :REAL; is3D :BOOLEAN; userShowUnitMark :BOOLEAN; docUnitsPerInch :REAL; PROCEDURE reDraw; BEGIN Rect(-5m,-5m, 5m, 5m); Locus(0, 0); TextJust(2); TextVerticalAlign(3); MoveTo(0, 1m); CreateText('Plugin'); MoveTo(0, -1m); CreateText('Origin'); result := vsoStateGetPos( objectHandle, x, y, z, is3D ); MoveTo(0, -2m); CreateText( Concat('Object movement=', result,' offset=(x=', x, ', y=', y, ', z=', z, ') is3DMove=', is3D ) ); SetTextStyle(LNewObj, 0, GetTextLength(LNewObj), 2); END; PROCEDURE setBaseVariables; BEGIN vpCropObject := NIL; END; PROCEDURE loadBaseInfo; BEGIN GetSymLoc(objectHandle, pluginPosition.x, pluginPosition.y); pluginRotation := GetSymRot(objecthandle); {not used} vpScale := GetObjectVariableReal(GetVPGroupParent(GetParent(objectHandle)), 1003); vpPosition.x := GetObjectVariableReal(GetVPGroupParent(GetParent(objectHandle)), 1024); vpPosition.y := GetObjectVariableReal(GetVPGroupParent(GetParent(objectHandle)), 1025); vpRotation := GetObjectVariableReal(GetVPGroupParent(GetParent(objectHandle)), 1026); docUnitsPerInch := GetPrefReal(152); END; PROCEDURE loadCropObject; BEGIN IF VPHasCropObject(GetVPGroupParent(GetParent(objectHandle))) THEN BEGIN vpCropObject := GetVPCropObject(GetVPGroupParent(GetParent(objectHandle))); bbHandle := ConvertToPolygon(vpCropObject, 30); HMove(bbHandle, -pluginPosition.x, -pluginPosition.y); HRotate(bbHandle, 0, 0, -pluginRotation); END; END; BEGIN {Store & adjust user settings} userShowUnitMark := GetPref(163); SetPref(163, FALSE); PushAttrs; setBaseVariables; pluginObjectExists := GetCustomObjectInfo(objectName, objectHandle, recordHandle, wallHandle); vsoGetEventInfo(eventType, eventInfo); CASE eventType OF 5: {kObjOnInitXProperties} BEGIN SetPrefInt( 590, 1 ); {varParametricEnableStateEventing, kParametricStateEvent_ResetStatesEvent} result := SetObjPropVS(18, TRUE); {kObjXPropAcceptStates} {fallback to ensure good redraw before export} result := SetObjPropVS(23, TRUE); {kObjXPropResetBeforeExport} END; 44: {kObjOnAddState} BEGIN eventInfo := vsoStateAddCurrent( objectHandle, eventInfo ); END; 45: {kObjOnContextMenuInit} BEGIN {.......} END; 46: {kObjOnContextMenuEvent} BEGIN {.......} END; 3: {kParametricRecalculate} BEGIN IF pluginObjectExists THEN BEGIN IF NOT GetPref(531) THEN BEGIN IF objectHandle <> NIL THEN BEGIN IF NOT IsNewCustomObject(objectName) THEN BEGIN SetObjectVariableBoolean(objectHandle, 800, TRUE); {Accept text styles} loadBaseInfo; loadCropObject; reDraw; IF vpCropObject <> NIL THEN BEGIN {Temporary crop duplicate placement for visibility} HMoveBackward(bbHandle, TRUE); SetFPat(bbHandle, 0); {Clean up the crop duplicate after use} {DelObject(bbHandle);} END; END; END; END ELSE BEGIN Rect(-1m, -1m, 1m, 1m); END; END; vsoStateClear(objectHandle); END; END; {Restore user settings} PopAttrs; SetPref(163, userShowUnitMark); END; Run(CropDupeTest); [LT] Crop Dupe Test.vso crop_dupe_test.vwx
  11. Jord Visser

    Community Board | Forum Upgrade

    Is it possible some posts made in the last week didn't get migrated?
  12. Jord Visser

    Newbie questions

    Hi Dieter, Thanks for your response! I already made some proof of concept plug-ins in vectorscript, but with the size and complexity of these programs vectorscript starts to become very annoying.. so the step to python was just a matter of time, so thanks for the extra push towards python Your API looks as a very good base, too bad I am stuck with 2014 for the foreseeing future. But I will certainly use it as a guide for my journey! As for the developer mode, I am indeed working with an english version.. so I will keep looking into the help-files and other resources. On the subject of importing/including it seems to me that the way newlines are handle matters as well, I had to use CR+LF to get it to 'work' Gr, Jord
  13. Jord Visser

    Newbie questions

    I'm sort of new in vectorscript pio coding and have a couple of questions: - Where can i turn on 'developer mode' in vw2014? - Is there an good example available with all the different widgets that can be used in the shape pane? - What are the encoding and newline requirements for files I want to include via $INCLUDE ? Gr, Jord


7150 Riverwood Drive, Columbia, Maryland 21046, USA   |   Contact Us:   410-290-5114


© 2018 Vectorworks, Inc. All Rights Reserved. Vectorworks, Inc. is part of the Nemetschek Group.