禅道二次开发总结

2024-10-31

禅道二次开发总结(共3篇)(共3篇)

1.禅道二次开发总结 篇一

随笔-12文章-0评论-46

Discuz二次开发基本知识总结

一)Discuz!的文件系统目录

注:想搞DZ开发,就得弄懂DZ中每个文件的功能。

a)Admin:后台管理功能模块

b)Api:DZ系统与其它系统之间接口程序

c)Archiver:DZ中,用以搜索引擎优化的无图版

d)Attachments:DZ中 ,用户上传附件的存放目录

e)Customavatars:DZ中,用户自定义头像的目录

f)Forumdata:DZ缓存数据的存放目录

g)Images:DZ模板中的图片存放目录

h)Include:DZ常用函数库,基本功能模块目录

i)Ipdata:DZ统计IP来路用的数据

j)Plugins:DZ插件信息的存放目录

k)Templates:DZ模板文件的存放目录

l)Wap:DZ无线,Wap程序处理目录

二)必须记熟Discuz!数据库设计的每个表的功能,每个表中每个字段的功能。关于DZ数据库设计文档,请参阅DZ相关的项目文档(请从本贴附件中下载)

三)Discuz!的流程控制

a)后台流程控:DZ后台所有的功能,均需要注册到admincp.php文件,每个功能都至少有一个或一个以上的Action(动作),在admincp.php中,可以定义Action的执行权限,分别为:“admin==1”管理员,或“admin==2 || admin==3”超级版主和版主,每个Action对应一个脚本文件,脚本文件的命名为action.inc.php(*.inc.php),并存放在admin目录下,如执行:admincp.php?action=dodo,相当于执行admin目录下的dodo.inc.php文件

b)前台流程控制:前台的流程控制比较简单:流程是自由的,如: 首页:index.php

会员注册:register.php;

会员登录:logging.php

发贴程序:post.php

会员信息:member.php

论坛内容:forumdisplay.php

查看贴子:viewthread.php

…大部分功能,此处不一一列出…

c)DZ根目下的config.inc.php属于整个DZ系统的配置文件

四)Discuz!的数据处理过程

a)DZ对mysql的数据库操作处理全部封装在dbstuff(db_mysql.class.php)类中

b)所在的外部数据均通过“daddslashes()”初步过滤,然后再过滤,再根据需要处理

五)Discuz!的显示控制(网站多样式风格输出)

a)显示层就是大家通常所看到的网站风格了。DZ中每套风络分别在templates及images下对应一个风格文件的存放目录。网站风格的制作,请参阅详细的DZ风格制作文档

b)DZ网站风格文件处理的原理:其实很简单,DZ使用template.func.php中的parse_template()以PHP正则运算把htm模文件中的模板标签,转换成了PHP代码,并根据styleid保存在forumdata/templates下,这个有点像Smarty中的技术。

六)DZ中的语言处理

a)DZ前台及后台中、英语言的实现,均是把语句定义成了语变量,然后在模板输入,语句变量的赋值,均放在模板目录中的*.lang.php文件中,DZ在生成网站风格时就加载了这相应的语言包。

七)DZ如何处理用户信息(存取、计算、更新过程)

新手要做二次开发,都必须掌握这数组中,每个数组元素的意义。

a)DZ的基本信息,如用户信息,Session信息存在如下变量中: a).$_DCACHE

b).$_COOKIE

c).$_DCOOKIE

d).$_DSESSION

e).$_DPLUGIN

b)可以通过print_r($GLOBALS),打印全部变量

八)DZ中缓存处理机制

a)DZ中缓存处理过程都放在“cache.func.php”中,DZ的缓存处理比较简单,其原理是把一个数组转换成了PHP代码,并保存在缓存目录下,大家可打开缓存文件查看便知。

b)使用方法:如果在新开的功能中,需要缓存某部分数据,基本上就是:

1)定义并注册缓存名字。

2)从数据读取相应的数据。

3)数据在写入缓存前作相应处理。

4)最后写入缓存。

具体操作,可以看文件中的代码,做相应的修改即可

九)DZ中模板处理机制

a)DZ独创的模板处理技术,类似于Smarty中的模板处理,只是具体算法,过程不同,Smarty是一种重型模板引擎方案。其原理都是把模板中的变量转换成相应的PHP代码,这个过程实际是模访JAVA中的一次编译,多处运行。

十)DZ中权限处理机制

a)对于DZ中前台的每相action都有$discuz_action定义,DZ根据用户所在的用户组来判定用户是否具有相应操作$discuz_action的权限。至于后台的权限权验证,则更简单了,依据“admin==1”来确定的十一)DZ中如何实现URL静态化

a)DZ中的静态有两法,只要懂ReWrite规划的朋友,一看就知。

十二)DZ独创的HTML编辑器,如何截取并使用,如果进行Discuz!代和Html代码的转换

a)这也算是DZ比较牛的一项技术了,在早期版中,因DZ编辑器的不足,使得很多用户放弃了DZ。实现原理:通过JS把用的一些操作转换成了DZ的bbcode代码。这样子提交了安全性,将带有bbcode代码的内容存入数据,在用户打开页页时,又把bbcode代码转换成html代码

本贴声明:由于时间有限,本贴只有关于DZ部分功能的简短分析。若各位网友,对本文感兴趣并想更为深入了解DZ,请在本贴后回贴!我将尽可能多的DZ技术分析写在本文,不断更新本贴内容。

部分文件说明:

admincp.php 管理

ajax.php ajax功能

announcement.php 公告

attachment 附件

board.php 真正的首页

config.inc.php 这个是配置文件

corpus.php 论坛文集

digest.php 精华帖子

discuz_version.php 论坛版本号

faq.php 问题列表

forumdisplay.php 论坛列表

index.php 跳转页面

loggin.php 认证页面(登录退出)mail_config.inc.php 邮件配置 member.php 用户操作

memcp.php 个人控制面版

misc.php 零碎功能

my.php 我的帖子

plugin.php 插件

pm.php 短信

post.php 发送帖子

redirect.php 页面重定向

register.php 注册

robots.txt 限制搜索

rss.php rss信息发布

search.php 论坛查询

secode.php 验证码

stats.php 统计

topic.php 首页论坛专题

topicadmin 主题管理

viewpro.php 显示个人信息

viewthread.php 主题显示

文件夹

admin 管理

api 接口

archiver 文档

attachments 附件

customavatars 自定义表情

forumdata 论坛数据包含缓冲数据 images 图片

include 公共文件

install 安装包

ipdata ip地址

plugins 插件

readme 帮助文档

templates 模板

utilities 工具包

wap 手机网站

文件夹include

advertisements.inc.php 广告管理 ajax.js ajax相关

attachment.func.php 附件函数集 bbscode.js 论坛表情

cache.fun.php 缓存函数集

category.inc.php 栏目

chinese.class.php

common.inc.php 最主要的头文件 common.js 最主要的js文件 corpus.func.php 论坛文集函数 counter.inc.php 论坛计数

cron.func.php 计划任务

db_mysql.class.php 数据库

db_mysql_error.inc.php 数据库错误 debug.php 调试信息

discuzcode.func.php 论坛代码 editor.func.php 编辑器

editor.js 编辑器

editpost.inc.php 编辑帖子

floatadv.js 浮动广告

forum.func.php 论坛函数集 global.func.php 全局函数

menu.js 菜单

misc.func.php 其它

newreply.inc.php 新回复

newthread.inc.php 新主题 *pmprompt.inc.php

post.fun.php 发表主题

printable.inc.php 论坛打印 qihoo.js qihoo

relatethreads.inc.php 相关主题 security.inc.php 安全

sendmail.inc.php 邮件

serverbusy.htm 系统繁忙

template.func.php 模板

threadpay.inc.php 购买帖子

2.开发区 二次创业 篇二

长期以来,我国经济技术开发区的定位基本上是“外部资源+特殊政策+异地市场”。尽管这种模式能够实现短期内产业资源的快速集聚,但常常容易出现与周边区域发展脱节问题,有研究认为,在一定程度上,开发区往往会成为经济孤岛、功能孤岛、生活孤岛、地理孤岛和政策孤岛。

开发区“二次创业”

汪胜洋 赵宇刚 发表于2012-05-15 01:26 “十二五”时期,上海进入“创新驱动,转型发展”的重要阶段。

开发区“二次创业”:从产业发展区到产城融合区

20世纪90年代浦东开发开放,以开放促改革、促发展,推动了改革开放全局不断深化,尤其是以陆家嘴、外高桥、张江、金桥等开发区为载体,在体制创新、资源集聚、国际开放、功能辐射等方面取得重要突破,发挥了龙头带动作用。

“十二五”时期,上海进入“创新驱动,转型发展”的重要阶段,随着浦东、南汇的合并,“四个中心”核心功能区的加快建设以及综合配套改革的不断深入,浦东迎来“二次创业”的新机遇,将继续发挥在改革创新中的引领作用,加快发展方式率先转型,主动探索具有中国特色社会主义市场经济的基本规律、发展路径。因此,所谓“二次创业”,既不是在原有基础上的数量扩张,也不是简单否定原有模式,而是采取扬弃的方式,找到经济与社会、产业与生活、城市与农村、生态与生产的协调发展新路径。

回顾历史,浦东作为经济开发区,积极承接全球产业转移,集聚全球技术、资金、产业、人才、管理等优质资源,重点发展金融、贸易、航运、科技等产业,充分体现了浦东开发开放的决策意图,正如邓小平同志指出,开发浦东“不只是浦东的问题,是关系上海发展的问题,是利用上海这个基地发展长江三角洲和长江流域的问题”。经过20多年的发展,陆家嘴、外高桥、张江、金桥等四大主要开发区在金融服务、商贸物流、科技创新、总部经济等领域形成产业集聚和功能辐射,确立了浦东在中国经济版图,乃至全球产业体系中的标志性地位。

浦东以开发区为载体的集聚式、功能化的高速发展取得了巨大的成功,主要体现为:首先,以陆家嘴、外高桥、张江、金桥等标志性区域的崛起为代表,进一步坚定了改革开放不动摇的决心;其次,开发区建设过程的产业创新、政府创新和政策创新所形成的示范效应为其他地区的发展提供了经验借鉴;再次,开发区的功能开发所形成的集聚效应,为上海加快四个中心建设和国际化大都市建设创造了条件;同时,浦东通过开发区的建设为自身发展打下了基础,有利于浦东深化开发开放。

开发区加快转型意义

伴随着国内外环境变化和国家战略布局变化,以及上海城市发展面临转型关键时期,浦东进入“二次创业”的历史新阶段,力求在制度创新、产业引领、国际开放、社会和谐等方面形成新的突破和跨越,承担起建设上海“四个中心”核心功能区的重任,发挥好改革开放领跑者的角色,推动上海率先实现发展方式的转型。而在这一过程中,开发区作为浦东开发开放的核心载体,对于发挥浦东引领示范功能具有决定意义。

第一,“创业”仍然是浦东下一轮发展的主基调。进入21世纪,由于政策优势的削弱和外部资源导入的缓慢,浦东面临内生动力增长减速、自身转型和地区竞争压力增大的困局,尤其是2001年“建区撤委”,标志浦东的发展似乎开始步入常态化阶段。但是,国家对于浦东的战略定位要求从未弱化,仍然希望浦东承担起推动改革开放不断深化的重任。因此浦东的地位决定了其不能过早地进入常态化发展阶段,还必须继续发挥集聚全球先进产业资源、深化改革创新,率先探索转型发展之路的作用,因此,开发区作为实现超常规发展的主要载体,将成为转型的重心,也是未来浦东“二次创业”的基础。

第二,综合服务功能是“二次创业”的必备条件。从国际产业发展的趋势看,制造业的全球性转移趋缓,国内制造业重心从沿海转向内陆,但制造业的研发、设计、销售等高端环节呈现向主要大城市加速集聚的态势;以服务外包为主要形式的新一轮服务业加快转移,中国成为未来服务外包产业的核心区域;新兴科技产业逐步孕育成熟,成为各主要国家产业发展的重点。

“二次创业”的浦东,在产业发展方面要瞄准最新趋势,集聚高端产业资源,继续发挥产业发展的引领功能,这对作为产业发展主要载体的开发区提出了更高的要求。目前来看,在高端产业资源的争夺中,主要依靠的不再是政策和成本优势,关键是城市综合服务功能的优势,即城市能否提供与其产业发展所需的人力资源相匹配的生活和发展环境,而这恰恰是城区的优势,是开发区的软肋。

第三,产业与城市脱节是开发区面临的主要问题。一般意义上的开发区模式主要可以概括为:“外部资源+特殊政策+异地市场”。尽管这种模式能够实现短期内产业资源的快速集聚,但与周边区域发展的脱节也成为突出问题,有研究认为,在一定程度上,开发区往往会成为经济孤岛、功能孤岛、生活孤岛、地理孤岛和政策孤岛。

浦东在开发区的建设过程中,尽管已经比较注重与周边地区的协调发展,在这方面也进行了积极的探索,如推动区镇联动等,但发展过程中高速产业化与滞后城市化的脱节问题仍成为影响开发区转型的主要瓶颈。

比如陆家嘴地区商务与商业的脱节,缺乏合理的商业设施配套和生活居住服务,使这一地区很难形成人气集聚;张江的基础生活配套不足始终是困扰张江自主创新园区建设的难题,与其他国际知名的科技创新区相比,由于张江本身缺少大学、科研院所以及相关专业服务业等创新资源,更加需要通过优质环境的建设来吸引高端人才,打造综合性的知识创新社区;外高桥保税区商务办公和生活设施的缺乏成为其发展总部经济、提升功能结构的主要障碍;金桥地区尽管已经实现了从出口加工区向服务经济特色区的转型,但由于其初期发展定位是以出口加工为导向,在规划布局上配套设施明显不足,服务业用地资源十分紧缺,这对其进一步深化结构调整提出了严峻挑战。

开发区转型的核心理念

浦东下一轮发展要实现率先转型,关键是推动产业开发区向产城融合区的转变,弥合城市化与产业化的脱节。与中心城区以增加产业功能为主导的模式不同,开发区的主要工作是增加生活配套,完善服务功能。上海静安区的梅恒泰,是在完善成熟的生活区内嵌入的产业楼宇,达成了生产与生活的协调发展,成为“产城融合”的典范。因此,浦东“二次创业”要把城区功能推向更高水平,关键要以开发区为载体,坚持以点带面,带动周边区域,实现融合发展。从这个意义上说,开发区作为资源最集中的区域,其能否成为推动浦东城市化进程的核心动力,将成为浦东“二次创业”成败与否的关键所在。而要推动开发区与城区的融合发展,重点是实现三个“转变”。

首先,推动产城融合从自发向自觉转变。浦东作为先发地区,在开发区的建设和园区产业结构升级的过程中,对先期遇到的产业化与城市化的脱节问题,主动进行了弥补,如碧云社区的建设弥补了金桥地区的商业配套不足,张江积极推进园区内商业设施、公共交通、人才公寓等配套建设,陆家嘴环形步道的建设改善了商务楼宇间的连通性。解决了区域的内部阻隔,为人气集聚提供了条件,但是总体来看,这种产业区与城市功能的融合,还停留在自发阶段,没有上升到规划和理念层面,未来 必须要自觉地把产业开发区作为城区对象-城区发展的主要载体进行总体规划、设计。

其次,推动园区功能从单一向复合转变。对于产业园区、开发区的功能定位而言,相对单一的生产功能难以使其成为推动区域整体发展的引擎,必须赋予其更多的城区服务功能。以陆家嘴等为代表的成熟开发区,其发展重心不再仅仅追求产业资源的快速集聚,而更应突出高端化、精益化、立体化的发展要求,因此在功能导向,要坚持产城融合的理念,在体现产业功能特色的基础上,积极引入城市发展的要素资源,使开发区不再是冷冰冰的生产集聚区,而是成为具有独特精神、城市活力、宜商宜居的新兴发展区。

再次,推动发展模式从独立向共生转变。由于开发区特殊的功能定位和管理体制,导致其形成独立扩张的发展模式,与周边区域难以有效互动。进入21世纪,浦东开发区逐渐面临土地资源紧张、环境配套不足、商务成本上升等突出问题。尽管通过扩区,可以暂时缓解空间资源不足,但这种以产业扩张为导向的发展模式仍然难以为继,这一方面与周边地区形成了相互阻隔,功能配套缺乏的问题不能彻底解决,另一方面也影响了区域的整体发展,不利于提升浦东城区综合功能。

概括来说,浦东“二次创业”就是要深化产城融合,发挥开发区在城区功能提升方面的核心载体作用,重点是推动开发区在商务与商业、生活与生产、生态与文化等方面的融合发展,打造若干具有复合功能的城区综合服务组团,改善城区环境和形象,进一步提升高端产业资源集聚能力,加快建设浦东成为现代化城区和产业转型示范区。

三点建议

围绕浦东“二次创业”,以产城融合为理念,加快推动开发区的转型升级,提出几点建议。

其一,研究制定《浦东开发区产城融合发展规划》。开发区的转型调整、环境改善依靠小修小补,不仅难以发挥效应,甚至可能错失机遇。建议以产城融合为理念,重 新调整开发区的功能定位和发展规划,比如对于张江地区,不再以传统科技园区的定位进行相应的功能完善和环境修补,而要把金融区、商务区的发展理念引入张江,将张江打造成为具备科技金融、总部经济、自主创新等多种功能的科技商务城。同样,临港、祝桥、洋山、迪士尼以及世博等未来产业集聚区的发展也要充分体现产城融合的理念。

其二,加大对开发区先行先试和政策聚焦的力度。开发区是浦东开发开放的重心,也是转型最为迫切的地区,对于浦东城区功能的提升、产业结构的升级和城乡统筹的推进都具有重要意义,建议把开发区的转型升级作为浦东综合配套改革的重点,研究制定对不同类型开发区转型的政策体系,赋予更大的先行试点权。

3.禅道二次开发总结 篇三

一、键槽尺寸视图的绘制命令“jct”

在绘制轴、齿轮或带轮等零件图时,经常需要画轴上键槽处的剖视图或轮毂键槽的端面视图,比较麻烦;由于键槽的尺寸随轴径的变化而变化,所以我们可以用LISP程序来实现自动绘图。加载下面的程序,在命令行中键入”jct”并回车,通过人机交互的形式输入有关参数,可自

动完成轴上键槽的剖视图和轮毂键槽的端面视图的绘制。代码示例如下所示。

(defun C:jct

(setq pt0 (getpoint ” 请输入视图的中心位置点:“))

(initget 7)

(setq loop T)

(while loop

(setq d (getreal ” 请输入键槽处的轴径(12<130)(mm):“))

(if(or (< d 12) (>d 130))

(alert ”轴径数据输入错误! 请重新输入!“)

(setq loop nil)

);if

);while

(cond;根据轴径检索键槽尺寸

((and (>d 12) (<= d 17)) (setq b 5 t1 3.0 t2 2.3));b表示键槽的宽度

((and (>d 17) (<= d 22)) (setq b 6 t1 3.5 t2 2.8));t1表示轴上键槽的深度

((and (>d 22) (<= d 30)) (setq b 8 t1 4.0 t2 3.3));t2表示轮毂上键槽的高度

((and (>d 30) (<= d 38)) (setq b 10 t1 5.0 t2 3.3))

((and (>d 38) (<= d 44)) (setq b 12 t1 5.0 t2 3.3))

((and (>d 44) (<= d 50)) (setq b 14 t1 5.5 t2 3.8))

((and (>d 50) (<= d 58)) (setq b 16 t1 6.0 t2 4.3))

((and (>d 58) (<= d 65)) (setq b 18 t1 7.0 t2 4.4))

((and (>d 65) (<= d 75)) (setq b 20 t1 7.5 t2 4.9))

((and (>d 75) (<= d 85)) (setq b 22 t1 9.0 t2 5.4))

((and (>d 85) (<= d 95)) (setq b 25 t1 9.0 t2 5.4))

((and (>d 95) (<= d 110)) (setq b 28 t1 10.0 t2 6.4))

((and (>d 110) (<= d 130)) (setq b 32 t1 11.0 t2 7.4)))

(command ”circle“ pt0 ”d“ d)

(command ”zoom“ ”a“)

(setq s1 (ssget ”l“ ))

(setq di (-(* (/ d 2.0) (/ d 2.0)) (* (/ b 2.0) (/ b 2.0)))

dx (sqrt di)

dy (/ b 2.0)

pt1 (list (+ (car pt0) dx) (+ (cadr pt0) dy)))

(initget ”Zc Lc“);Zc表示画轴键槽的剖视图,Lc表示画轮毂键槽的端面视图

(setq zrl (getkword ” 画轴键槽的剖视图还是轮毂键槽的端面视图(Z/L)?“))

(if (= zrl ”Zc“)

(progn;计算轴键槽上点的坐标

(setq pt2 (list (+ (car pt0) (-(/ d 2.0) t1)) (+ (cadr pt0) dy))

pt3 (polar pt2 (- (/ pi 2.0)) b)

pt4 (pola

AutoLISP语言作为AutoCAD的二次开发工具,它易学易用,交互性好,灵活性强,对于那些经常使用AutoCAD进行绘图的普通用户来说,不失为一种理想的开发工具。在绘图过程中,用户可根据需要,用AutoLISP方便地定义出实用的绘图命令,从而提高绘图速度。

一、键槽尺寸视图的绘制命令“jct”

在绘制轴、齿轮或带轮等零件图时,经常需要画轴上键槽处的剖视图或轮毂键槽的端面视图,比较麻烦;由于键槽的尺寸随轴径的变化而变化,所以我们可以用LISP程序来实现自动绘图。加载下面的程序,在命令行中键入”jct”并回车,通过人机交互的形式输入有关参数,可自

动完成轴上键槽的剖视图和轮毂键槽的端面视图的绘制。代码示例如下所示。

(defun C:jct ()

(setq pt0 (getpoint ” 请输入视图的中心位置点:“))

(initget 7)

(setq loop T)

(while loop

(setq d (getreal ” 请输入键槽处的轴径(12<130)(mm):“))

(if(or (< d 12) (>d 130))

(alert ”轴径数据输入错误! 请重新输入!“)

(setq loop nil)

);if

);while

(cond;根据轴径检索键槽尺寸

((and (>d 12) (<= d 17)) (setq b 5 t1 3.0 t2 2.3));b表示键槽的宽度

((and (>d 17) (<= d 22)) (setq b 6 t1 3.5 t2 2.8));t1表示轴上键槽的深度

((and (>d 22) (<= d 30)) (setq b 8 t1 4.0 t2 3.3));t2表示轮毂上键槽的高度

((and (>d 30) (<= d 38)) (setq b 10 t1 5.0 t2 3.3))

((and (>d 38) (<= d 44)) (setq b 12 t1 5.0 t2 3.3))

((and (>d 44) (<= d 50)) (setq b 14 t1 5.5 t2 3.8))

((and (>d 50) (<= d 58)) (setq b 16 t1 6.0 t2 4.3))

((and (>d 58) (<= d 65)) (setq b 18 t1 7.0 t2 4.4))

((and (>d 65) (<= d 75)) (setq b 20 t1 7.5 t2 4.9))

((and (>d 75) (<= d 85)) (setq b 22 t1 9.0 t2 5.4))

((and (>d 85) (<= d 95)) (setq b 25 t1 9.0 t2 5.4))

((and (>d 95) (<= d 110)) (setq b 28 t1 10.0 t2 6.4))

((and (>d 110) (<= d 130)) (setq b 32 t1 11.0 t2 7.4)))

(command ”circle“ pt0 ”d“ d)

(command ”zoom“ ”a“)

(setq s1 (ssget ”l“ ))

(setq di (-(* (/ d 2.0) (/ d 2.0)) (* (/ b 2.0) (/ b 2.0)))

dx (sqrt di)

dy (/ b 2.0)

pt1 (list (+ (car pt0) dx) (+ (cadr pt0) dy)))

(initget ”Zc Lc“);Zc表示画轴键槽的剖视图,Lc表示画轮毂键槽的端面视图

(setq zrl (getkword ” 画轴键槽的剖视图还是轮毂键槽的端面视图(Z/L)?“))

(if (= zrl ”Zc“)

(progn;计算轴键槽上点的坐标

(setq pt2 (list (+ (car pt0) (-(/ d 2.0) t1)) (+ (cadr pt0) dy))

pt3 (polar pt2 (- (/ pi 2.0)) b)

pt4 (pola

r pt3 0 (- dx (- (/ d 2.0) t1))))

);progn

);if

(if (= zrl ”Lc“)

(progn;计算轮毂键槽上点的坐标

(setq pt2 (list (+ (car pt0) (+(/ d 2.0) t2)) (+ (cadr pt0) dy))

pt3 (polar pt2 (- (/ pi 2.0)) b)

pt4 (polar pt3 (- pi) (- (+ (/ d 2.0) t2) dx)))

);progn

);if

(command ”pline“ pt1 pt2 pt3 pt4 ”“);画键槽

(setq s2 (ssget ”l“))

(command ”layer“ ”m“ 5 ”l“ ”center“ 5 ”c“ 1 5 ”“)

(command ”ltscale“ 8)

(command ”line“ (polar pt0 (- pi) (+ (/ d 2.0) 10));画中心线

(polar pt0 0 (+ (/ d 2.0) 10))”“)

(command ”line“ (polar pt0 (-(/ pi 2.0)) (+ (/ d 2.0) 10))

(polar pt0 (/ pi 2.0) (+ (/ d 2.0) 10)) ”“)

(command ”layer“ ”s“ 0 ”“)

(if (= zrl ”Zc“)

(progn

(setq s3 (entsel ” 请选择修剪的目标:“))

(command ”trim“ s2 ”“ s3 ”“);修剪形成键槽

(command ”hatch“ ”U“ ”45“ ”2“ ”n“ s1 s2 ”“));画轴上键槽处剖视图的剖面线

);if

(if (= zrl ”Lc“)

(progn

(setq s4 (entsel ” 请选择修剪的目标:“))

(command ”trim“ s2 ”“ s4 ”“);修剪形成键槽

(command ”rotate“ s1 s2 ”“ pt0 90));将轮毂键槽的端面视图旋转90度

);if

);end defun

二、螺纹孔剖视图的绘制命令“lwk”

在绘制机械零件图时,经常要画螺纹孔的剖视图,同样由于螺纹孔的有关尺寸都随螺纹的公称直径而变化,我们可以用下面的程序自动完成其剖视图的绘制,

加载后在命令行中键入“lwk”并回车,根据提示输入相应的参数即可。代码示例如下所示。

(defun C:lwk()

(setq pc (osnap (getpoint ” 输入螺纹孔端面的中心点:“) ”near“ ))

(setq ang (getangle pc ” 螺纹孔中心线与水平线的夹角:“))

(initget 7)

(setq d (getdist ” 请输入螺纹孔的公称直径(mm):“))

(cond;根据螺纹孔的公称直径检索有关数据(以螺纹零件的材料为钢或青铜为例)

((= d 6.0) (setq l1 10 l2 12 d2 4.917));l1表示螺纹深度

((= d 8.0) (setq l1 12 l2 16 d2 6.647));l2表示钻孔深度

((= d 10.0) (setq l1 16 l2 20 d2 8.376));d2表示螺纹小径

((= d 12.0) (setq l1 18 l2 22 d2 10.106))

((= d 14.0) (setq l1 22 l2 26 d2 11.835))

((= d 16.0) (setq l1 24 l2 28 d2 13.835))

((= d 18.0) (setq l1 28 l2 34 d2 15.29

4))

((= d 20.0) (setq l1 30 l2 35 d2 17.294))

((= d 22.0) (setq l1 32 l2 38 d2 19.294))

((= d 24.0) (setq l1 36 l2 42 d2 20.725))

((= d 27.0) (setq l1 40 l2 45 d2 23.725))

((= d 30.0) (setq l1 44 l2 52 d2 26.211))

((= d 36.0) (setq l1 52 l2 60 d2 31.670)))

(setq r2 (/ d2 2.0);计算光孔各点坐标

pt1 (polar pc (+ (/ pi 2.0) ang) r2)

pt2 (polar pt1 ang l2)

pt3 (polar pc ang (+ l2 (* 0.57735 r2)))

pt4 (polar pt2 (- ang (/ pi 2.0)) d2)

pt5 (polar pc (+ (* pi 1.5) ang) r2))

(command ”pline“ pt1 pt2 pt3 pt4 pt5 ”c“);画光孔

(setq s1 (ssget ”l“))

(command ”line“ (polar pc (+ pi ang) 3) (polar pt3 ang 3) ”“);画中心线

(command ”pline“ pt2 pt4 ”“)

(setq r1 (/ d 2.0);计算螺纹线的各点坐标

pt11 (polar pc (+ (/ pi 2.0) ang) r1)

pt12 (polar pt11 ang l1)

pt13 (polar pt12 (- ang (/ pi 2.0)) d)

pt14 (polar pc (+ (* pi 1.5) ang) r1))

(command ”pline“ pt11 pt12 pt13 pt14 ”“);画螺纹线

(command ”pline“ pt12 pt13 ”“)

(setq pt21 (polar pc (+ (/ pi 2.0) ang) (+ r1 10.0));计算剖面线边界上的点坐标

pt22 (polar pt21 ang (+ l2 15.0));可根据需要设置剖面线边界的大小

pt23 (polar pt22 (- ang (/ pi 2.0)) (+ d 20.0))

pt24 (polar pc (+ (* pi 1.5) ang) (+ r1 10.0)))

(command ”pline“ pt21 pt22 pt23 pt24 ”c“);生成剖面线的边界

(setq s2 (ssget ”l“))

(command ”zoom“ ”a“)

(command ”hatch“ ”U“ ”45“ ”2“ ”n“ s2 s1 ”“);画剖面线,形成消隐螺纹孔

);end

三、圆的中心线绘制命令“zxx”

在绘图中,若需要绘制已知圆的中心线,可调用下面的程序。加载后在命令行中键入“zxx”并回车,只要按提示选择圆并输入中心线的延伸长度,即可自动生成该圆的中心线,并可连续绘制。代码示例如下所示。

(defun C:zxx()

(setvar ”osmode“ 512)

(setq loop T)

(while loop

(setq pc (getpoint ” 请用鼠标选择圆:“))

(setq s(ssget pc))

(if s

(progn

(setq s1(entget(ssname s 0))

pt0(cdr(assoc 10 s1));获得圆心坐标

r (cdr(assoc 40 s1));获得圆的半径

)

(setq l (getreal ” 请输入中心线延伸长度(mm):“))

(command ”layer“ ”m“ 5 ”l“ ”center“ 5 ”c“ 1 5 ”“)

(command ”ltscale“ 8);设置线型比例

(command ”line“

(polar pt0 (- pi) (+ r l));画中心线

(polar pt0 0 (+ r l)) ”“)

(command ”line“ (polar pt0 (-(/ pi 2.0)) (+ r l))

(polar pt0 (/ pi 2.0) (+ r l)) ”“)

(command ”layer“ ”s“ 0 ”“)

);progn

(setq loop nil)

);if

);while

);end defun

用户还可以将自定义的AutoCAD命令定制成用户菜单或工具栏,以方便使用。如,将上面介绍的几个绘图命令定制到下拉菜单中的方法是:打开AutoCAD安装目录下SUPPORT子目录中的ACAD.MNU文件,在***POP7项的最后加入下面内容,再加载已修改的菜单文件即可。

[--]

ID_User [键槽图绘制(jct)]^C^C_(if(not jct)(load ”d:/Acad R14/jct.lip“));jct;^p

ID_User [螺纹孔绘制(lwk)]^C^C_(if(not lwk)(load ”d:/Acad R14/lwk.lip“));lwk;^p

ID_User [中心线(zxx)]^C^C_(if(not zxx)(load ”d:/Acad R14/zxx.lip“));zxx;^p

上一篇:关于公司新员工辞职报告怎么写下一篇:中外名人励志故事安格拉·默克尔