本帖最后由 qjchen 于 2013-10-23 20:10 编辑
(2) 自定义漂亮菜单
界面如下
Mjtd许多朋友很喜欢采用自制菜单来实现对自定制命令的使用
如老迈兄等都曾经推出过许多方便使用的Lisp工具
但要制作一个漂亮的菜单确实也不容易,即使在.net中也不容易
相对而言,应用html的菜单确实网上随处可见,利用ACAD官方例子中的ACHTML范例,可非常容易做出上图的效果
Mjtd许多朋友很喜欢采用自制菜单来实现对自定制命令的使用 如老迈兄等都曾经推出过许多方便使用的Lisp工具 但要制作一个漂亮的菜单确实也不容易,即使在.net中也不容易 相对而言,应用html的菜单确实网上随处可见,利用上述的ACHTML范例,可非常容易
先学下怎么做HTML+CSS的菜单 对于HTML,大家总可以看到许多漂亮的菜单,这种菜单可以是JAVASCRIPT做的,也可能是FLASH做的,或者是其他类型的。 CSS是叫样式表,我也只懂皮毛,美工好的朋友可以用之做出非常炫的效果,也可以制作多种主题,随时更换skin(皮肤)。 参考资源:1. CSS禅意花园,这是一个非常著名的关于CSS的网站 这里可以看到许多设计
这是一本由禅意花园作者写的书(中文翻译版) 总而言之,CSS可以让界面很漂亮。 可是自己做菜单也不容易 于是,找到了这个网站 CSS菜单在线制作 可以看到有横版、竖版、TAB版等许多种内置模板
本文是利用了其中的 这个模板来进行制作的。 下载了该模板了之后 打开zip 可以发现里面有三个文件 index.html menu_jquery.js styles.css 那么,后两个文件不用修改,只需要修改第一个文件 (注,styles.css就是样式表文件,而menu_jquery.js则是一个利用了jquery库编写的Javascript代码)
打开index.html,在里面做如下的一些修改,内容如下
<!DOCTYPEhtml> <html> <head> <meta http-equiv="content-type"content="text/html; charset=gb2312" /> <link rel='stylesheet'type='text/css' href='styles.css' /> <scripttype="text/javascript"src="http://www.autocadws.com/jsapi/v1/Autodesk.AutoCAD.js"></script> <scriptsrc='http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js'></script> <script type='text/javascript'src='menu_jquery.js'></script> </head> <body> <script> function myFunction() { Acad.Editor.executeCommand("circle"); } </script>
<divid='cssmenu'> <ul> <li class='active'><ahref='index.html'><span>qjchen工具箱</span></a></li> <li class='has-sub'><ahref='#'><span>几何工具</span></a> <ul> <li><a href='#'><span>螺旋彩线</span></a></li> <li><ahref="javascript:myFunction()"><span>画圆</span></a></li> <li class='last'><ahref='#'><span>字归圆心</span></a></li> </ul> </li> <li class='has-sub'><ahref='#'><span>尺寸</span></a> <ul> <li><ahref='#'><span>尺寸归原</span></a></li> <li class='last'><ahref='#'><span>尺寸加减</span></a></li> </ul> </li> <li class='last'><ahref='#'><span>三角网</span></a></li> </ul> </div> </body> </html>
里面红色部分是我的修改。 可以看出 <meta http-equiv="content-type"content="text/html; charset=gb2312" /> 是为了让其支持中文 <scripttype="text/javascript"src="http://www.autocadws.com/jsapi/v1/Autodesk.AutoCAD.js"></script> 是在线引入了Autodesk.AutoCAD.js库
<script> function myFunction() { Acad.Editor.executeCommand("circle"); } </script> 是定义了一个函数,用ACAD JS API函数Acad.Editor.executeCommand("circle");来发送画圆的命令,大家在导入LISP函数之后,就可以发送LISP函数名的。 后面的红色字体,大部分都是改菜单内容,只有其中的 <li><a href="javascript:myFunction()"><span>画圆</span></a></li> 是定义了菜单内容和Javascript函数的相关联系的。
好了,菜单制作完成,但是为了要在ACAD中引用,必须采用5楼中的ACHTML的程序。 附件中包含了这个已编译的CAD官方例子的ACHTML.DLL。 这个时候,可参见5楼的说法 到AUTOCAD命令行键入 NETLOAD,然后找到AcHTML.dll进行加载 (与普通.Net程序无异)。 加载完毕后,键入ADNJSDEMO,加载这个菜单index.html导入,那么就得到了如图的结果了。 点击画圆,即可画圆。(其他菜单本文中未附加函数处理,故无法运行)
|