UT3D_stru_dump dump struct -> debug-window DBO_dump__ dump DB-object -> debug-window UTO_dump__ dump ObjGX + Inhalt UTO_dump_s_ dump ObjGX - structured display tess_dump_f_ dump tesselated (sizeRec, Typ_GL_Sur-Recs ..) UI_dump_obj dump DB-object into file & display with browser UTO_dump_obj dump struct -> UT3D_stru_dump AP_obj_analyze replace by UT3D_stru_dump (see IE_analyz__) UME_dump disp. fre space of Memspc GR_Disp_pTab disp. temp. obj UTF_dump__ disp. memory (sourcetext Alt shift s) DB_dump_stat disp DB-statistics (Alt shift o) APT_dump_itab dump EditorLine->DL-Hilfsliste DB_dump_ModBas dump Basemodels (Alt shift m) DB_dump_ModRef dump Submodels (Alt shift r) DB_dump__ dump DB DL_DumpObjTab Dump DL (Alt D (shift d!)) GA_dump__ Dump permanentAttributeList (Alt shift g) WC_actPos_dump dump NC-Records (Alt shift n) UTX_dump_cnl disp. textStrings (UTX_dump_c__ UTX_dump__)
GR_Disp_pt,vc,vc2,ln,ac,bsp,pln UI_disp_vec1 UI_disp_vec2 UI_disp_tra
ut_DB.c (DB_) ut_dbo.c handle database-objects (typ, DB-index) (DBO_)
DB_get_PT,LN,VC,CI DB_GetCurv,Sur,Sol DB_GetObjGX returns a ObjGX of a object stored in DB UTO_obj_getp returns data-struct from ObjGX DB_GetObjGX DB_GetPoint DB_StorePoint DB_QueryNxtInd DB_GetDynInd
NC_apt.c CommandInterpreter - decode-functions (APT_decode_) ut_obj.c object-manipulationes (transform, convert ..) (UTO_) xa_obj_txt.c convert object-struct -> source-text (AP_obj_) xa_src.c check, modify, convert source-objects (text) (SRC_)
AP_typ_typChar make typ from typChar ("P" -> Typ_PT) AP_typChar_typ make typChar from typ (Typ_PT -> 'P') AP_name_typInd make name from typ and DB-Index AP_cre_defHdr create new (unused) objHeader APT_decode_obj give typ, index from text "P12" DB_Typ_Char give typ(int) from text "PT" --> Typ_PT; DB_Char_Typ make text from (int)typ; Typ_PT --> "PT" .. AP_typ_2_bastyp Typ_CVBSP -> Typ_CV oder Typ_SURRU -> Typ_SUR AP_cmp_typ check for identical types UTO_ck_oTyp check object-typ (struct or object) UTO_ck_typTyp check if typ=curve (Typ_lFig) or surface (Typ_SUR) UTO_ck_curvTyp check if CurveLimits are Points or parameters UTO_ck_curvForm check if objTyp is ObjGX or other typ AP_ck_ftyp returns ftyp as int; 0=native, 1-9=Import, 10-19=Mockup.. AP_i2ftyp returns ftyp as text atomicObjTable (ausTyp/ausTab): APT_decode__ sourceObj -> atomicObj (ausTyp/ausTab-array) binObj (struct): APT_decode_objTx Create struct from ModelCode (text). AP_vec_txt give vector-struc from vector-text (only defvecs) APT_decode_pt APT_decode_ln APT_decode_ci atomicObj -> struct APT_decode_ang APT_decode_goAxis APT_decode_goRadius (../ci/NC_apt.c) OGX_SET_INDEX DB-Obj -> complexObj (also UTO_obj_load) OGX_SET_OBJ binObj -> complexObj UTO_obj_getp cplxObj -> binObj (pointer) UTO_obj_get cplxObj -> binObj (copy) UTO_copy_stru copy struct (no resolve - not recursive) UTO_copy_tab copy complexObj-Table, recursive UTO_obj_save copy complexObj -> Memspc UTO_obj_2_mem copy complexObj -> memory AP_txt_vec check if Vector is a Defaultvector (DX or DIX or ...) UTO_ck_surfTyp returns surfSubTyp (see also SUR_ck_typ) sourceObj: AP_obj_2_txt change obj to text and save it with UTF_add1_line AP_stru_2_txt change object into text (definition-line) AP_src_selObj create sourceObj (text) for selected obj SRC_dbo create sourceObj from Database-object SRC_fmt write sourceCode formatted for dynamic obj; eg "D(P1 P2)" SRC_fmt_sub format sourceObj (text) for compound-DB-obj AP_src_sel_fmt format sourceObj (text) for selected compound-obj SRC_isol_dbo convert DB-obj (typ/DB-index) into isolated sourceObj (text) AP_src_selObj create sourceObj (text) for selected DB-obj (old) AP_obj_add_obj add objname to string AP_obj_add_pt add Point* as "P(xyz)" AP_obj_add_vc add struct Vector* to string " D(x y z)" AP_obj_add_val add double > text ( xa_obj_txt.c ) //AP_pt_segpar give Text for Point on geometr. Obj near Cursor IE_decode_Ln IE_txt2par1 APED_decAdd decode textLine, add all objs to group (oTab) APED_dec_txt decode textLine, add all objs to group (oTab)
Obj-types: sourceObj text; eg "P12" "DZ" "L(P10 D(0 0 1))" .. atomicObj ausTyp/ausTab-array; (*int, *double) binObj Typ-of_struct, struct; eg (Typ_PT, Point*) complexObj struct ObjGX (ObjGX*) DB-Obj type, DB-index (int, long)
UTRA_m3_inirot transformation from rotationaxis and angle UTRA_def__ define transformation UTRA_app_pt apply all defined Transformations to a point UTRA_app_vc apply all defined Transformations to a Vector UTRA_app__ UTRA_app_oTab UTRA_app_obj UTO_obj_apptra apply Tra; creat new struct. in:Struct; preload trMat. UTO_obj_tra ruft UTO_stru_tra; in: oGX u Mat_4x3 UTO_stru_tra apply Tra; generiert neue oGX; in: oGX u Mat_4x3 UTO_pt_tratra UTO_pt_trarot UT2D_pt_traptm2 UT2D_vc_travcm2 UT3D_pt_traptm3 UT3D_pt_rotptm3 UT3D_pt_traptm4 UT3D_vc_travcm3 UT3D_vc_travcm4
WC_Init_Tol alle UT_TOL_ ex APT_ModSiz setzen WC_ask_ModSiz WC_Init_Modsiz UI_WinToler WC_Init_Tol GL_InitModelSize
GL_GetViewPos compute cursorPosition in userCoords on GL_view_pln // Viewplane (active displayplane with the GL-RotationCenterpoint GL_cen) // Always parall. to X-Y-Plane. static Plane GL_view_pln;
Plane WC_sur_act; the ConstructionPlane; in xa.c double WC_sur_Z; the active Z-Offset to the ConstructionPlane char WC_ConstPl_Z[16]; displayed name_of_Constr.Plane; is "DZ" or "R20" UI_sur_act_CB1 interactive setting of ConstructionPlane GL_SetConstrPln GL_constr_pln=(WC_sur_act+WC_sur_Z); write Label Z-Offset UI_Set_ConstPl_Z write Label name_of_Constr.Plane AP_Set_ConstPl_Z write Label name_of_Constr.Plane UI_suract_keyIn mode=2: set & display WC_sur_Z AP_Get_ConstPl_Z gives ConstPLn as text or Z-vec AP_Get_ConstPl_vz give Z-vec of ConstructionPlane Mat_4x3 WC_sur_mat; // TrMat of ActiveConstrPlane Mat_4x3 WC_sur_imat; // inverse TrMat of ActiveConstrPlane RefSys: APT_do_auxCmd perProgramm: set refsys aktivieren. NC_setRefsys activate Refsys per prog.
TX_Error display message and raise error ../xa/ut_ui_TX.c TX_Print display message AP_errStat_set raise / reset error AP_debug__ Alt shift x AP_test__ Ctl shift T exit durch Ctl shift X
main xa_main.c nur via ":/main (" AP_work__ work Startparameters UI_win_main das MainWindow aufbauen UI_GR_WinInit das OpenGL-Window aufbauen AP_defaults_write nur beim ersten Start AP_Init0 nur einmal - ganz am Beginn UI_menCB "new" AP_Init1 DL_Init WC_Init_all ED_work_END ED_work_CurSet ruecksetzen od. bis new ln abarbeiten .. ED_Run
NC_Main.c CommandInterpreter - main
UI_AP UserInterface; UI_menCB Callback f File/new ... UI_butCB Callback fuer Menufuncs, Buttons, ... ED_work_END ED_work_CurSet ED_Run ED_Read_Line WC_Work1 ========= HauptEntry in NC_Main.c ========== APT_work_def DefinitionLine abarbeiten (decode, draw) APT_decode_obj Typ und Index der Zielvariable bestimmen APT_decode_ausdr Eingabezeile zerteilen (1. Decodierstufe) APT_decode_func decode SIN() X() D() ANG() P() L() .. APT_decode_inp 2.Decodierstufe APT_store_obj decode APT-object, store object. APT_decode_var APT_decode_pt APT_decode_ln APT_decode_ci APT_DrawCirc APT_decode_ell APT_decode_pol APT_decode_bsp APT_decode_ccv AP_cont_nxt Kontursucher .. APT_decode_pln1 Plane/Refsys APT_decode_pln2 Plane R = PERP .. APT_decode_sur APT_decode_srv APT_decode_s_sph APT_decode_s_cyl APT_decode_s_con APT_decode_sol APT_decode_bsph Sphere APT_decode_bcon CONUS APT_decode_btor TORUS APT_decode_btor PRISM APT_trim_obj CUT DB_StoreCurv APT_Draw__ DB_GetCurv APT_DrawCurv APT_DrawCirc GL_DrawPoly2D GR_DrawCirc GL_DrawPoly APT_DrawPln APT_DrawSur GR_DrawSur TSU_DrawSurT_ TSU_DrawSurTRU Ruled Surface TSU_DrawSurTRV Revolved Surface TSU_DrawSurTS ungetrimmte/ungelochte Planare Flaeche TSU_DrawSurTC getrimmte/gelochte Complex-Flaeche (Typ_SURTPS) TSU_DrawSurTP getrimmte/gelochte Planare Flaechen GL_DrawSur GL_Surf_Ini GL_Disp_sur APT_DrawSol GR_CreSol__ GL_disp_prism APT_work_PrgCmd Programming-Function (goto, call, WORK, if ...) APT_work_NCCmd FROM TL .. APT_do_auxCmd T1;G20;R0 .. APT_wcut_line nur if (APT_workmode == Typ_nc_cut) ? APT_drill_line nur if (APT_workmode == Typ_nc_cut) ? UI_CB_hide Hide - Funktion DL_disp_set UI_CB_view View - Funktion GA_hide__ hidden-Elements-Tabelle bearbeiten
UI_butSM S/M/DEL ein/aus UI_EdButtonPress Mousebuttons im EdWin. UI_GR_ButtonPress Mousebuttons im GrafWin (selection, indicate) UI_GR_Select1 GL_Select UI_GR_Select2 callback von GUI_Popup (Liste der sel.Obj) UI_GR_Select_work1 work GR_Sel_Filter 3-7 UI_GR_Select_work2 work hide,view,SM or call IE_cad_sel1 CAD-report sel. ED_add_Text MAN UI_GR_view_set_Z UI_GR_Indicate UI_GR_ButtonRelease UI_EdKeyPress Keyboard - Press UI_EdKeyRelease Keyboard - Release UI_GR_MotionNotify mouse-movement UI_GR_GLInit gtk-"realize" UI_GR_Draw gtk-"expose_event" UI_GR_Redraw gtk-"draw"-Event UI_GR_Reshape UI_GR_Destroy UI_CursorWait UI_ChangeCursor UI_ResetCursor
xa_ed.c Neutral EditorFunctions (not Gtk-specific) (ED_) ut_gtk2ed.c Gtk-EditorFunctions (GUI_Ed_) xa_ed_mem.c ApplicSpecficFunctions APT-Textfunctions im Memory (APED_) xa_cad_ed.c CAD-GroupEditor (IE_ed1_)
ED_work_END Button END = alles abarbeiten TX_Print ut_ui_TX.c TX_Write GUI_Tx_wri ../gtk/ut_gtk2tx.c GUI_Tx_add
UI_cad Hauptmenue aufbauen IE_cad_p_CB PointMenueEintrag selected .. IE_activate nach Select obj: entspr. menu aktivieren. IE_decode_Ln Inputtzeile in (Typen, Worte) zerlegen IE_txt2par1 decode textline -> subgroup (nach SM) IE_cad_sel1 Selektion wird gemeldet, decodiert, eingearbeitet. IE_cad_test1 test ob alle Eingaben vorh; ja:decode Felder, exec txt, activate OK. IE_cad_OK OK-Butt.pressed: clear Inputboxen,Zeile->Datei
APT_decode_Activ DB_StoreActiv UI_menCB "Iact" ckb_Iact UI_GR_ButtonPress UI_GR_Select1 DL_IactSelect DB_QueryActiv ACT_ck_act
APT_work_PrgCmd APT_wcut_ln1 CUT P NC_up_Work_ CUT S NC_up_Pock_ POCK Pock_CUT_CIRC CUT_CIR Pock_POCK_CIRC POCK_CIR
UI_wcg__ gesamtes Panel generieren UI_wcg_init_ erster Start UI_wcg_CBcont Auswahl einer Kontur UI_wcg_InitBuf Text -> aus_typ,aus_tab; wcg_decode__ abarbeiten AP_cont_nxt Kontur -> oxInpU (memspc) wcg_decode_APT Konikinfos -> deTab wcg_CreCutAll Ausgabeelemente -> oxOutU/O[oxOutNr] wcg_CreCutCyl wcg_CreCutCon wcg_CreCutCpx wcg_cpx_break wcg_cpx_teilen wcg_OutDrawAll Ausgabeobjekte anzeigen. GR_DrawSur dzt werden Typ_SURRU einzeln ausgegeben UI_wcg_InitProc Konikinfos anzeigen UI_wcg_UpdateProc Konikinfos aus menue uebernehmen (OK-Butt.) UI_wcg_askExit beenden UI_wcg_CB_ExitDia beenden UI_wcg_SaveOK Progr -> Editwin wcg_encode__ das aktuelle APT-prog -> memspc54 ........ NC-Tech ........ APT_wcut_line eine NC-Bearbeitungszeile decodieren UI_wcTec__ Window aufbauen UI_wcTec_Init1 erster Start UI_wcTec_find_tec NC_up_Work_ WORK CUT .. NC_up_Pock_
UI_menCB "open" UI_open__ AP_Import__ ("xa_ige_r", "IGE_r__", cbuf); AP_Mod_load AP_ImportIges IGE_r__ Mainentry in ../exp/ige_r.c IGE_r_D__ IGE_r_P__ IGE_r_work__ abarbeiten IGE_r_work_1 subfigs, dann main abarbeiten IGE_r_work_2 ein Obj ausgeben IGE_r_128 AP_obj_2_txt UTF_add2_line UI_expIgeCB AP_ExportIges__ AP_ExportIges_Model IGE_w_rec IGE_w_mat IGE_w_P_ELL
UI_menCB "impDxf/expDxf" AP_ImportDxf dxfr_rec__ AP_obj_2_txt UTF_add1_line AP_ExportDxf dxfw_rec
wrl_readTess__ wrl_ut.c Import TSU_exp__ ../gr/tess_ut.c Export TSU_exp_sur
APT_DrawSur GR_DrawSur TSU_DrawSurT_ TSU_DrawSurTC getrimmte/gelochte Flaeche TSU_tr_init_ TSU_DrawSurTBox GLT_comm_work GLT_diff_work
GL_set_viewPlnPos GL_actUsrPos, on viewPlane (GL_GetViewPos) GR_set_constPlnPos GR_CurUk, on constructionPlane (GL_GetConstrPos) UI_GR_get_actPos_ return the active cursorPosition as string "<x> <y> <z>" GL_GetActSelPos Coords of last selectionPoint on viewPlane UI_GR_get_actPosA get current curPos in userCoords on constructionPlane GL_Get_View get viewport (Eyevector ..) GL_Get_Cen screencenter in userCoords GL_get_Scale GL_GetEyeLn Sichtstrahl (Point & Vector) retournieren GL_GetEyeX UI_GR_SelVert get vertext nearest to cursor
DL_ReScale__ Rescale rescale ScalAll DL_InitAttTab Def.Attributtabelle laden DL_ReScale DL_DumpObjTab dump DispList GL_DrawLine ../gr/ut_GL.c GL_DrawTxtG ../gr/ut_GL.c GL_Redraw redraw DL
xa_dll.c UI_DllLst_read fill list of userprograms (DLL's) UI_DllLst_CB DLL by user selected .. AP_exec_dll start plugin
UI_WinPrint1 AP_print__ ../exp/prt_w.c AP_print_work2
gCAD3D naming conventions --------------------------------------------------------------------------- FunktionsNamesgebung: Offen: Polygon und Polynom unterscheiden !? (see pta, plm, plmc3 polCoeff ?) Zuordnung der Funktion entspricht dem Outputtyp, nicht den Inputs ! <FNC-Group>_<output>_<Functyp>_<input>_<ZusatzInfos> FNC-Groups: UT2D UT3D UTI UTP UME UTX MEM .. output: pt ln ... entfaellt bei Testfunktionen - sofort Functyp ck od comp Functyp int proj .. input pt 2pt .. <output> / <input> ------------------------------------ Elementtypen: str (string, terminiert mit \0) strLF (string, terminiert mit LF !) ind index (int, long) db = doublezahl ndb = table of doubles i int4; ni = table of int4 m2 3x2-Matrix; m3 4x3-Matrix; m4 4x4-Matrix; side side (before behind above below) sidPerp side before or behind perpendic. Line/Plane par uPar od vPar parvc parameter of point on vector parln parameter of point on line parci parameter of point on circ parbsp (parameter of point on B-SplineCurve) parsbsp (parameter of point on B-SplineSurface) len (length) slen (signed length) sr (sense of rotation) ar (Area) angr (AngleRadians) angd (AngleDegree) adeg Winkel in Degree arad Winkel in Radianten rd (Radius) bp (BackPlane; XY, XZ, ZY) hbp Hoehenwert einer BackPlane gcp gravity-center-point (Schwerpunkt) pt Point, Typ_PT npt table of points = PointArray = Polygon; was pta inpt indexed polygon (index table to table of points) vc Vector, Typ_VC vc1 Vector with length=1 (normalized) ln Line, Typ_LN plg CurvPoly, Typ_CVPOL, Polygon mit Laengenparametertabelle) polc (closed Polygon) cv Curve; for polygon use npt; ncv Array of curves; was cva ci Circ; Typ_AC, ac, trimmed-circle ell CurvElli, Typ_CVELL, Ellipse pl Plane, Typ_PLN; Ebene. sph Sphere, Typ_SPH, Kugel. bez CurvBez, Typ_CVBEZ, Bezier-curve. clot CurvClot, Typ_CVCLOT, clothoid-curve. cbsp CurvBSpl, Typ_CVBSP, B-Spline-Curve; was bspl ccon Conic-Curve; hyperbola|parabola. pspl Typ_CVPSP3, Polynom.Spline. sur Surface sru RuledSurface, Typ_SURRU. srv RevolvedSurface, Typ_SURRV. sbsp SurBSpl, Typ_SURBSP, B-SplineSurface. spu Surf-planar-unperforated; spp Surf-planar-perforated. sus SurStd, StandardSurface. Tes tesselated surface (openGlSurface) box Box Tri (box besser -> bbox (boundingBox)) tria Triangle rbox rectangleBox; Viereck) edg Edge (Kante) fac Fac3, Typ_Fac3: Face; 3 int's (pointIndices) -"- FacNf Face with its NeigbourFaces msh Typ_SURMSH, Mesh obj any obj from ObjGX ccv Concatenated-CurVe (ObjGX) crv linear object; LN,CI,EL,CV .. from typ+struct sur planimetric obj; plane, surf from typ+struct ost object-structure; any object from typ+struct dbo DB-object; any obj from typ+dbInd src Source-object (text) Line = linesegment (2 points, both sides limited (lnLL) Ray = 1 point and 1 vector; limited on one side (lnLU). both sides unlimited (lnUU) ? <Functyp> ------------------------------------ get set add sub (subtract) mult ev evaluate (parameter) perp perpendicular = senkrecht/lotrecht/normal nor int intersect ipl interpolate lim limits (endpoints) dec decode find find prj = Projektion proj inv = invertieren (umdrehen) mir = mirror gespiegelt rot = drehen, verdreht tr tra = Translation trk = Translation kartesisch (x, y); trv = Translation Vektoriell (Vektor, Laenge); trp = Translation polar (Winkel, Laenge); tri = Triangle, Dreiecksberechnung tang = Tangente, tangential tng in near mid cnvt (convert) Funktionen: Keine Funktionsangabe bei Umwandlungen get, set, init .. ins, del (insert) swap ck = allg. Testfunktionen fix = allgem. Korrekturen len = Laengenberechnung, lenq = SquareLen (len*len) slen=signed len, nlen =lenght of a normal .. perp = Orthogonal (Normal) par = parallel on = auf in = zwischen between equ = identisch norm = normieren div = teilen (divide) orient ausrichten Testfunktionen: XXX_test_xxx werden ex Src ausgeblendet mit #ifdef globTag int XXX_test_xxx () {} #endif --------------------------------------------------------------------------- Returncodes: 0 (meistens !) OK >0 OK mit Zusatzinfo <0 Error mit Zusatzinfo --------------------------------------------------------------------------- VariablenNamesgebung: 1.char: typ i=int d=double t=text p=PT v=VC c=CI l=LN s=Curv o=ObjGX m=Memspc 2.char: Datentypinfo; kann beim DefaultTyp fehlen. DefaultTyp fuer int=i4, double=d8, char=t1 p=pointer d=data <ziffer>=size f=function 3.- Beschreibung; der erste Character ist Uppercase ! Beispiel: int i1, *ip1, iNr; short i2Typ (Int-2Byte) double d1, *dp1, dSum; char t1, *tp1, tdBuf1[256] ---------------------------------------------------------------------------