PCL开发编写环境

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1. 概述
在使用patran 二次开发语言进行编程时,大多数人由于没有一个合适的编程环境,而不得不使用记事本等文本编辑器,但由于这类文本编辑器,不具备专业性,往往我们需要大量的时间去做编写检查,去记大量的内置函数名称。

这个是很痛苦的,本文讲诉采用
ultraedit 文本编译器编写开发环境。

2. 操作平台
操作系统:Windows
软件版本:patran Ultraedit 3. 开发环境设置
UltraEdit 最大可以支持20套语法着色模板,每一套模版根据用户自己的需求自己配置,使文档中分成许多的组,每一组都可以以不同的颜色显现出来,在UltraEdit 中“组”的类别可以分为一下6种:
普通文本(没有被辨认出来的文本) 注释行 交换注释块 字符串
数字(0-9)
自定义的语法符号(想着以不同颜色的文本) 语法着色功能的在高级(Advanced )->配置(Configuration)->编辑器显示(Editor Display)->语法着色(Syntax Highligthing)中可以被用户设置,有的版本在高级(Advanced )->配置(Configuration)->语法着色(Syntax Highligthing)下面设置。

在设置的时候,首先要选择语言,也就是用户的模版,在开始的时候,UltraEdit 已经给用户提供了一些常用的模版,选定好了模版以后,用户要在下面的颜色组中选择你想要设
置哪一个组的颜色,选定了一个组以后,就可以点击“颜色”和“背景”的颜色框,为这个组设置颜色(当UltraEdit辨认某一个字符属于这个组,就会以这个颜色为其着色)。

当选择除“常规文本”之外的组时,还可以为这个组设置字体样式(当UltraEdit辨认某一个字符属于这个组,就会以这种字体显示字符),这些粗体、斜体和下划线的设置可能使文本不可用,所以这里建议使用“普通”,及固定点阵字体(这个功能低版本可能没有)。

那么应该在哪里配置这些模版和它们的组呢?在UltraEdit的安装目录下面有一个配置文件"WORDFILE.TXT",在这个文件中用户可以根据需要配置自己想要的模版,这个文件会在UE启动的时候被自动加载。

一般UE开始会为用户定制一些通用的模版,供用户使用,用户可以点击“视图”,查看着色配置,下图就显示了目前一共有13中可以使用的语法着色模版。

在这一部分,我们先试着读懂系统自带的模版,知道每一部分的作用,在第二部分中,我们可以尝试着编写根据自己需求定制的模版。

上图就是配置文件"WORDFILE.TXT"里面的一段内容,这是系统自带的一个模版,我将每一个模版分成了2个部分,第一部分是模版的前半部分,在这里可以利用系统里面的关键字来设置一些配置,比如:L1表示了模版的序号,从L1到L20,可以定义20套模版,“C/C++”表示了这个模版的名字,这在“视图”中可以查看到,Line Comment = //表示了注视行是以”//”开头的…….在第一部分,每一行必须以”/”打头,你也可以将多行并成一行,就像上图所示那样。

在第二部分中用户可以自行定义一些想被着色的关键字,比如/C1"Keywords" 就是用户定义的第一个组,名字为"Keywords",在这个组里,用户可以把想被着色的关键字列举出来,
在图3所示的地方,你可以设置想为这些所列举出来的关键字的颜色。

下面说一下模版的第一部分的设置:
1. 注释行和注释块
用户可以用"Line Comment = 字符串"来设置想要制定的注释行,这个字符串最多支持5个字符,如果少于5个字符的话,则后面要加上空格和其他关键字分割。

多行的字符也可以被块注释,就像PCL中的”/*”和”*/”可以实现块注释的功能。

在UE中,是以"Block Comment On = "定义块注释的开始,以"Block Comment Off = "定义块注释的结束。

和注释行一样,注释块的开始和结束同样最大支持5个字符。

Line Comment = $ Block Comment On = /* Block Comment Off = */
2. 字符串
字符串都是放在一对双引号中,在字符串中,注释和关键字是不可用的,这就是UE的默认设置。

String Chars = "
3.文本关联
在UE中“文件类型”属性可以实现在打开某种文件的时候,使用特定的模版打开。

定义方法如下:
NoCase File Extensions = PCL SES
4.分隔符
在UE中,字符串之间都是由分隔符分割的,使用关键字"/Delimiters =",比如:
/Delimiters = @~!%^&*()-+=|\/{}[]:;"'<>, ?
5.函数
UE中可以显示一个函数列表,里面可以显示出这个文档中包含的所有函数,当然显示
函数的规则是由用户定义的,
/Function String 1 = "%^([ ^t]++function *^)(*)"
/Function String 2 = "%[ ^t]++^(class *$^)"
6. 匹配段
在UE中被某一对制定的字符的在头尾包含的一段字符,在这里暂且成为段,则一段字符,可以被高亮出来,比如:
和前面的函数一样,在配置文件中只是定义一下匹配段的开始和结束符,UE默认的段开始符为‘(‘, ‘[‘, or ‘{‘,结束符为‘)’, ‘]’ and ‘}’,用户可以使用关键字来修改段的匹配符:
/Open Brace Strings = "IF" "FOR" "SELECT" "ELSE" "FUNCTION" "CLASS" "REPEAT"
/Close Brace Strings = "END IF" "END FOR" "END SELECT" "END IF" "END FUNCTION" "END CLASS" "UNTIL"
7. 折叠字符
你可以自行定义折叠字符的开始、结束,也可以使用UE中默认定义的折叠字符,这样可以使你的代码看起来更加的方便,比如:
/open fold string ="function"
/close fold string ="end function"
在第二部分中,配置就显得的简单多了,只需要用户在其中配置一个或多个组,在每个组中,添加进去想被着色的关键字,然后就可以在“配置”――“语法着色”中配置颜色了。

UE最多支持定义8个组,如下图:
具体的关键字可以通过!!lib list p3patran.plb的方式获得。

定义的组的开始必须以”/”开头,紧跟着一个用双引号的字符串,表示这个组的名字,然后下面的一行或多行就是你想要被着色的关键字。

” Keywords and Types”表示智能tip,这个就有点像.net的IDE了,不过你要使用这个功能,要点开“自动完成”的开关
效果如下:
附部分配置文件
/L1"PCL Patran" Line Comment = $ Block Comment On = /* Block Comment Off = */ String Chars = " NoCase File Extensions = PCL SES
/Delimiters = @~!%^&*()-+=|\/{}[]:;"'<>, ?
/INDENT STRING="IF" "FOR" "SELECT" "ELSE" "FUNCTION" "CLASS" "REPEAT"
/unINDENT STRING="END IF" "END FOR" "END SELECT" "END IF" "END FUNCTION" "END CLASS" "UNTIL"
/open fold string ="function"
/close fold string ="end function"
/Function String 1 = "%^([ ^t]++function *^)(*)"
/Function String 2 = "%[ ^t]++^(class *$^)"
/Open Brace Strings = "IF" "FOR" "SELECT" "ELSE" "FUNCTION" "CLASS" "REPEAT"
/Close Brace Strings = "END IF" "END FOR" "END SELECT" "END IF" "END FUNCTION" "END CLASS" "UNTIL"
/C1"Keywords and Types"
** $
BREAK BY
CASE CLASS CLASSWIDE CONTINUE
DEFAULT
ELSE
END
FALSE FOR FUNCTION
GLOBAL
IF INTEGER
LOCAL LOGICAL
REAL
RETURN
STRING SWITCH
THEN
TO TRUE
VIRTUAL
WHILE WIDGET
break by
case class classwide continue
default
else
end
false for function
global
if integer
local logical
real return
string switch
then
to true
virtual
while widget
repeat
REPEAT
UNTIL
until
/C2"Undocumented"
** Loop
au_break_elms_utils.get_global_model_tol
auto_extend
bv_get_curve_length
fem_create_mesh_quad_4
fem_mom_region_mesh
pref_global_set_v3
repaint_graphics
uil_measurement.get_pt_curve_distance
uil_measurement.get_pt_pt_distance
uil_measurement.get_pt_surface_distance
uil_string_utils.getalltokens
AU_BREAK_ELMS_UTILS.GET_GLOBAL_MODEL_TOL AUTO_EXTEND
BV_GET_CURVE_LENGTH
FEM_CREATE_MESH_QUAD_4
FEM_MOM_REGION_MESH
PREF_GLOBAL_SET_V3
REPAINT_GRAPHICS
UIL_MEASUREMENT.GET_PT_CURVE_DISTANCE UIL_MEASUREMENT.GET_PT_PT_DISTANCE
UIL_MEASUREMENT.GET_PT_SURFACE_DISTANCE UIL_STRING_UTILS.GETALLTOKENS
nastran_input_import
NASTRAN_INPUT_IMPORT
/C3"Customization Manual"
analysis_main.button_class_closed
analysis_main.disable_jobname_and_description analysis_main.dont_commit_on_apply
analysis_main.dont_update_on_apply
analysis_main.get_analysis_menu_items analysis_main.get_code_and_type
analysis_main.get_current_job_info
analysis_main.get_file_suffixes
analysis_main.get_job_name_and_desc analysis_main.get_panel_info analysis_main.load_job_name_dbox analysis_main.refresh_jobname_listbox analysis_main.set_display_flags analysis_main.set_jobname_blank analysis_main.set_jobname_current app_count_id_list
app_count_token_list
app_get_handle
app_lp_err_msg
app_next_id
app_next_label
block_close
block_get_name
block_open
block_read
block_write
DbNameGet
db_add_general_field_func
db_add_lbc_c_and_t_for_ac
db_add_lbc_defn_for_ac
db_add_lbc_to_load_case
db_add_lbc_type_for_ac
db_add_mpc_to_group
db_add_s_elem_res_by_pos
db_add_s_elem_res_by_type
db_add_s_nod_res_by_pos
db_add_s_nod_res_by_type
db_add_t_elem_res_by_pos
db_add_t_elem_res_by_type
db_add_t_nod_res_by_pos
db_add_t_nod_res_by_type
db_add_v_elem_res_by_pos
db_add_v_elem_res_by_type
db_add_v_nod_res_by_pos
db_add_v_nod_res_by_type
db_associate_element_to_region …….。

相关文档
最新文档