3D Framework
Overview
Framework Customer Story
CIMdata e-Book
MBD Utilities
Validate
Revision
View/Convert
Customer Stories
CAD Data Risks Whitepaper
Focus: Aerospace
KeyCreator CAD
Meet KeyCreator
What Is Direct Modeling
KeyCreator Reviews
KeyCreator Customer Stories
Focus: Drafting
Schools & Students
CKD Viewer
About
Company
International Resellers
All Customer Stories
Referral Program
Partners
News
Blog
Contact
Store
Revision/Validate
View/Convert
KeyCreator CAD
Shopping Cart
Support
Login
Software
Users
Submit Request
Remote Assist
Forum
Kubotek University
Help
Kubotek Forum
KeyCreator CAD & CKD Viewer
Technical discussion of CAD/CAM and integrated partner products
Customer Forum
>
KeyCreator CAD & CKD Viewer
>
Create an instance with one click
View modes:
View mode
Threaded
Flat - newest to oldest
Flat - oldest to newest
Advanced member
Soli
-
9/13/2022 4:34:25 AM
Create an instance with one click
With this utility is possible to execute 3 commands with one click:
1. Save a view in model mode.
2. Automatically switch to last active layout.
3. Create an instance with the saved model view orientation.
It is possible to keep the last model view created, or to delete it.
The instance scale and the instance name can be entered in the dialog box.
===========================================================
//CHECK IF YOU ARE IN MODEL MODE
clear hLay
HLayout hLay
GetLayout , hLay
int error
error = @error
if (error == 0)
MessageBox "YOU ARE IN LAYOUT MODE.\nSWITCH TO MODEL MODE.\nPRESS OK", 0
if (error == 0)
exit
clear view_number , $instance_name
int view_number
string $view_name
view_number = @dispview
GetDispViewName view_number, $view_name
if (view_number != 0)
goto dialog_box
SaveDispView "" , -1 , view_number
sprint $view_name , "VIEW %d" , view_number
SetDispViewName view_number, $view_name
:dialog_box
clear nRows , nCols , nPlacement ,hDialog , $title
string $title
int nRows = 14
int nCols = 68
int nPlacement = 4
int hDialog
$title = "CREATE THE INSTANCE IN ACTIVE LAYOUT"
DG_RET_ON_SEL = 0x00000001
DG_CANCEL = 0x00000008
dg_init_dialog nRows , nCols , , $title , , , nPlacement
hDialog = @error
int nIndex =2
dYPos = 1
dXPos = 54
nColumns = 0
dg_add_button hDialog, nIndex, dYPos, dXPos, nColumns, "&ABORT", , , DG_CANCEL
int nIndex =3
dYPos = 1
dXPos = 2
nMaxWidth =16
double %dScale
dg_add_text_double hDialog, nIndex ,dYPos, dXPos , nMaxWidth, "%.3f" , %dScale , , , 0
dYPos = dYPos-1
dg_add_title hDialog, nIndex, dYPos, dXPos, "INSTANCE SCALE"
int nIndex =4
dYPos = 10
dXPos = 25
nColumns = 0
dg_add_button hDialog, nIndex, dYPos, dXPos, nColumns, "CREATE THE INSTANCE IN ACTIVE LAYOUT "
int nIndex =5
dYPos = 5
dXPos = 2
nMaxWidth =30
//string $view_name
dg_add_text_string hDialog, nIndex ,dYPos, dXPos , nMaxWidth, , $view_name , , , 0
dYPos = dYPos-1
dg_add_title hDialog, nIndex, dYPos, dXPos, "SAVED VIEW NAME"
int nIndex =6
dYPos = 5
dXPos = 36
nMaxWidth =30
int %bChecked
dg_add_check hDialog, nIndex ,dYPos, dXPos , %bChecked , "KEEP THE VIEW IN LIST VIEWS" , , , 0
:dialog_box_run
dg_draw_dialog hDialog
dg_run_dialog hDialog
int index_result
index_result = @error
if (index_result == 2)
dg_erase_dialog hDialog
if (index_result == 2)
dg_free_dialog hDialog
if (index_result == 2)
exit
int nIndex = 3
dg_get_text_double hDialog , nIndex
%dScale = @error
int nIndex = 5
dg_get_text_string hDialog , nIndex
sprint $view_name , "%s" , @strdat
int nIndex = 6
dg_get_check hDialog , nIndex
%bChecked = @error
if (index_result == 4)
dg_erase_dialog hDialog
if (index_result == 4)
dg_free_dialog hDialog
//DIALOG BOX RESULTS
SetDispViewName view_number, $view_name
NOTESTATE
LayoutToggle
MessageBox "SELECT THE INSTANCE POSITION.\nPRESS OK", 0
CLEAR instance_position
DOUBLE instance_position[3]
type_pos=1
GETPOS "Select instance position", type_pos, adInstPos
if (@key == -3)
exit
int nMargin = 10
int dRotation = 0
int bBorder =1
int bCircular = 0
int bShowTangentLines = 1
int nRender = 1
// 0 Use Part Default values.
// 1 Wire-frame display
// 2 Hidden Line Removed display
// 3 Hidden Line Dashed display
// 4 Flat shaded display
// 5 Gouraud shaded display
// 6 Phong shaded display
int nWireRender = 0
int nThreadRender = 2
int nHLDisplayMethod = 2
NewDrawInst hNewInst , , adInstPos ,view_number , %dScale , nMargin , dRotation , $view_name , bBorder, bCircular, bShowTangentLines , nRender , nWireRender , nThreadRender , nHLDisplayMethod
NoteState
if (%bChecked == 1)
exit
DeleteDispView view_number
NoteState
MASKCLEAR
exit
=======================================================
The utility is based on the KXL command NewDrawInst.
I'm not sure when this command were added.
Possible in KC2022.
I'm used to delete the not standard views in model mode, because is very difficult
to work with a very long Views list.
If I need to recreate a deleted model view from the parameters of an instance
I use this utility:
==========================================================
clear hLay
HLayout hLay
GetLayout , hLay
int error = @error
if (error == -1)
pause "You are in MODEL mode ; Switch to LAYOUT"
if (error == -1)
exit
clear hInstance , $csName , adBaseMatrix
HDrawInst hInstance
string $csName
DOUBLE adBaseMatrix[16]
DrawInstSelect hInstance , 0x1 ,"SELECT THE INSTANCE"
GetDrawInstData hInstance , , rotation , , , adBaseMatrix , , , $csName
if (rotation != 0)
MessageBox "CAN'T CREATE A MODEL VIEW.\nINSTANCE ROTATION HAS TO BE ZERO.\nPRESS OK", 0
if (rotation != 0)
EXIT
MessageBox "KC SWITCHES TO MODEL MODE AND CHANGES THE VIEW AS THE INSTANCE ORIENTATION.\nPRESS OK", 0
clear adView
DOUBLE adView[12] = {adBaseMatrix[0] , adBaseMatrix[1] , adBaseMatrix[2] , adBaseMatrix[4] , \
adBaseMatrix[5] , adBaseMatrix[6] , adBaseMatrix[8] , adBaseMatrix[9] ,\
adBaseMatrix[10] , adBaseMatrix[12] , adBaseMatrix[13] , adBaseMatrix[14] }
CLEAR adModelView
DOUBLE adModelView[12]
MatrixInvert adView , adModelView
LayoutToggle
SetDispView adModelView , -1
NOTESTATE
========================================================
Kubotek, what about to implement this idea in the program?
Solomon Steinberg,
Israel
DELL OPTIPLEX 7050
NVIDIA QUADRO P2000
KEYCREATOR 13.5
KEYCREATOR 2022 SP0
Reply
|
Quote
|
Subscribe to post
1
Login