首先建立乙個長方體,然後利用函式uf_modl_ask_exps_of_feature訪問長方體特徵中的所有表示式的個數和標識,利用函式uf_modl_ask_exp_tag_string獲得表示式字串,並用函式uf_modl_dissect_exp_string分離表示式的名稱和數值,最後利用函式uf_modl_rename_exp對表示式重新命名,並利用函式uf_modl_eval_exp計算表示式的值;通過函式uf_modl_edit_exp修改表示式的值,然後利用函式uf_modl_update來更新模型。
int modelte::update_cb(nxopen::blockstyler::uiblock* block)
; //長寬高
double block_orig[3] = ; //原點
tag_t blk_obj; //長方體特徵的標識
int number_of_exps = 0, i; //部件中所有表示式的個數
tag_t *exps; //部件中所有表示式的標識
char buffer[max_string_len];
char *string; //表示式的字串
char *lhs_str, *rhs_str; //表示式中等號左邊的字串和右邊的字串
tag_t exp_tag; //對應的表示式的標識
char *name[3]; //新的表示式的名稱
name[0] = "l";
name[1] = "w";
name[2] = "h";
double exp_value; //表示式等號右邊的值
uf_ui_open_listing_window(); //開啟文字
//第乙個引數:建立新的幾何實體
//第二個引數:長方體的原點
//第三個引數:長寬高
//第四個引數:輸出引數,長方體的特徵標識
uf_modl_create_block1(uf_nullsign, block_orig, block_len, &blk_obj); //建立乙個長方體
//第乙個引數:長方體特徵標識
//第二個引數:輸出引數,返回查詢到的特徵表示式的個數
//第三個引數:輸出引數,當前特徵的所有表示式的標識,最後需要uf_free釋放
uf_modl_ask_exps_of_feature(blk_obj, &number_of_exps, &exps); //獲得長方體特徵所包含的表示式的個數及標識
sprintf(buffer, "number_of_exps = %d\n", number_of_exps);
uf_ui_write_listing_window(buffer); //顯示文字
//表示式的操作
for (i = 0; i < number_of_exps; i++)
uf_free(exps);
string = "\0"; //清空
uf_modl_ask_exps_of_feature(blk_obj, &number_of_exps, &exps); //獲得長方體特徵所包含的表示式的個數及標識
//修改表示式
for (i = 0; i < number_of_exps; i++)
else if (strcmp(string, "w=2") == 0)
else if (strcmp(string, "h=3") == 0)
uf_free(string);
}uf_free(exps);
uf_modl_update(); //更新模型}}
catch(exception& ex)
return 0;
}
sizeof函式與表示式操作無關
引子 在32位作業系統中,如下程式輸出結果?include stdio.h int main 輸出結果為i 3,j 4 彙編 1 include stdio.h 2 3 int main 4 00401054 pop edi 00401055 pop esi 00401056 pop ebx 004...
計算表示式的函式
為了能夠接受使用者以表示式的形式輸入的資料,今天給出兩個函式,可以解決這個問題。思路是先將表示式中可能存在的雙角字元代替成半形字元,再呼叫系統的表示式計算函式做計算,以下兩個函式可以自行試用。function js 表示式 as string 表示式 replace 表示式,表示式 replace ...
函式表示式
函式定義有以下兩種方式 一種是函式宣告,一種是函式表示式。函式宣告 在執行 之前會先讀取函式宣告,即函式宣告提公升。函式表示式 常用語法形式是常規的變數賦值語句,即建立乙個匿名函式並賦值給乙個變數。函式表示式在使用之前必須賦值,否則會出錯,這點與函式宣告提公升不同。能夠將匿名函式作為其他函式的值進行...