ishou
发表于 2004-4-11 20:49:00
<A name=11242><FONT style="BACKGROUND-COLOR: #ffffaa" color=#000066><B>ljcgq</B></FONT></A><FONT style="BACKGROUND-COLOR: #ffffaa">:(7 楼) “我只是觉得把系统命令和层联系在一起到底有多大的实用性。。。”</FONT>
_________
顶!
从纯技术、理论角度看,"把系统命令和层联系在一起",确实有创意,但是没有多大实用价值、或者说使用价值很小。不管你对ACAD做了多少二次、甚至多次开发,在ACAD里追加多少功能,但是,不要去改变ACAD原有的系统命令!这是ACAD二次开发者们应该注意的一个开发原则:“追加”而不是“改变”。也许不少人不能理解、甚至反对该原则。如果开发的软件仅仅是自己在使用、而且所用的ACAD也是仅仅自己在使用,你可以“为所欲为”,但是,我还是希望你能遵循上述原则。
提高ACAD操作效率的方法很多,合理的键盘输入设置,可以数倍提高ACAD的操作速度,而操作者却颇为轻松。现在的Windows软件,太注重Mouse,菜单和图标的使用,虽然直观易用,但是都不是最快的,而且需要借助眼力,费神,长此以往,人们的左手也快退化了。。。呵呵
mccad
发表于 2004-4-11 21:19:00
“把系统命令和层联系在一起”对于不同的行业,可能意义的大小有所不同吧。但对于一些命令所产生的对象进行分层处理,其实是很有意义的。<BR>我见过很多的ACAD初学者画图时不对对象进行分层,而是生成对象后更改对象的颜色及线型,这是初学者容易出现的问题,这样对图形的组织很不利。<BR>标注对象放到标注层,填充对象放到填充层,而且不同的图层设置不同的显示特性,如不同的颜色,不同的线型。这有利于图形的组织。
masterlong
发表于 2004-4-11 22:30:00
支持特定命令与特定层联系的思路
但不支持“系统命令”自动切换层
这种做法完全没有意义
假设你要画一道直线
每次自动切换到“line"层
真要这样你会发现花在再修改的时间会更多
对于自编命令需要执行在特定层的
在程序中切换就好了
最多添加几个公共函数
用来检测、建立和切换图层颜色线型什么
其实一个程序除了考虑适用和实用外
还要考虑执行效率
象前面的程序段上百行代码
除了可以证明编程者的编程功力外
看不到实际的使用价值
ishou
发表于 2004-4-11 23:26:00
完全赞同楼上(13楼) 所言。顶!!!
meflying
发表于 2004-4-12 07:55:00
to <A name=11446><FONT color=#000066><B>masterlong</B></FONT></A>,是有些命令可能会在不同层使用,可你在制作autolayer.ini的时候不加入这些命令不就可以了吗?有些命令如:填充,标注等一般完全都使用相同的层,在你批评它以前,我想你应该能熟练使用它才行吧...龙版主从事的就是这样的工作,我想这是实践的总结,是最有发言权的...
TO ishou,下面是我昨天就要跟你说的话,昨天网络问题,老是发不上来,今天再发吧...
希望楼上清楚我们在讨论什么再发言好不好,,,这个程序并没有改变任何系统的东西,而是追加,,,就是在
输入命令后,追加了一个反应器(希望你知道是什么东西)来做一些平常你平常需要手动操作的东西...当然
,你也可以选择什么都不做,这样即可以为需要的人自动做一些事情,又可以让那些不需要的人同平常一样
工作有什么不好?
而且楼上说了这么大篇幅,并没有针对这个程序说说它到底怎么不实用了?好象说的全的是<A name=11446><FONT color=#000066><B></B></FONT></A>
龙龙仔
发表于 2004-4-12 09:50:00
明總為甚麼不是很長也貼不上,只好用檔案方式
Ea
发表于 2004-4-12 12:31:00
龙龙仔发表于2004-4-12 9:50:00static/image/common/back.gif明總為甚麼不是很長也貼不上,只好用檔案方式
<BR>幻灯管理的确有BUG。把发现的BUG整理下,给XD让他尽快修改。
龙龙仔
发表于 2004-4-12 12:38:00
本帖最后由 作者 于 2004-4-12 14:24:30 编辑 <br /><br /> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman">;;Autolayer_V0.1<SPAN style="mso-spacerun: yes"> 2004</FONT></SPAN>年<FONT face="Times New Roman">4</FONT>月<FONT face="Times New Roman">12</FONT>日</FONT>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman">;;Meflying[</FONT>建议<FONT face="Times New Roman">]</FONT>是否可以存一组数据到图形中<FONT face="Times New Roman">,</FONT>这样<FONT face="Times New Roman">,</FONT>如果单个文档有特殊<FONT face="Times New Roman">;</FONT></FONT>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman">;;</FONT>需求<FONT face="Times New Roman">,</FONT>每次打开它<FONT face="Times New Roman">,</FONT>不需要新建一个组或进行切换<FONT face="Times New Roman">,</FONT>而是直接读取图形中的<FONT face="Times New Roman">;</FONT></FONT>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman">;;</FONT>数据<FONT face="Times New Roman">,</FONT>如果读取失败<FONT face="Times New Roman">,</FONT>再读取<FONT face="Times New Roman">Autolayer.ini</FONT>文件中的资料</FONT>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p><FONT face="Times New Roman" size=3> </FONT></o:p>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman">;;</FONT>改变下列设定方式<FONT face="Times New Roman">(</FONT>不能设为<FONT face="Times New Roman">NIL) </FONT></FONT>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3>为了使用方便,您可以在<FONT face="Times New Roman">ACAD</FONT>里加上一些按钮,按钮执行一个命令,</FONT>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3>如<FONT face="Times New Roman"> (LAYER_GROUP "GROUP1")</FONT>或<FONT face="Times New Roman">(LAYER_GROUP "GROUP2")</FONT>………与配置文件对应。</FONT>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3>具体方法请参考有关书籍。</FONT>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><o:p><FONT face="Times New Roman" size=3> </FONT></o:p>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>;;Autolayer.ini</FONT>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3>必需为</FONT>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-spacerun: yes"> ;;</FONT></SPAN>第一组名称不能改<FONT face="Times New Roman">,</FONT>其余随便但格式为<FONT face="Times New Roman"> </FONT></FONT>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>...</FONT>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>...</FONT>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="mso-spacerun: yes"> ;;</FONT></SPAN>两组间为空行</FONT>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman"></FONT></FONT>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>...</FONT>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>...</FONT>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>|;</FONT>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">找到了<A href="http://discussion.autodesk.com/servlet/JiveServlet/download/126-320799-2665920-26512/AutoLay%5b3.0%5d.zip" target="_blank" ><FONT color=#000000>AutoLay.zip</FONT></A><o:p></o:p>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><o:p><FONT face="Times New Roman"> </FONT></o:p>
ishou
发表于 2004-4-12 22:31:00
老实说,上面实现对ACAD系统命令的所谓的"追加"功能,决非是我在上面中建议的那个"追加",而是不折不扣的"改变"! "追加"是以不改变现有完整基本功能为宗旨。
系统命令是ACAD进行二次开发的基础之一,也是“协议”之一,就象AutoLISP中的内建函数(if, while, ...)一样,不容改变,即使版本升级时,也必须要兼容低版本,否则,ACAD系统势必大乱,尤其容不下第三方的二次开发软件。
大家都很有本事,甚至可以造出"原子弹",但是不要乱乱扔哦。。。
使用二次开发软件的人中,有相当一部分人是不懂得修改软件,哪怕是很简单的一点点。
把ACAD中的系统命令LINE的执行与LAYER改变联系在一起,一气哼成,是很美的一件事,用非系统命令的命令启动,丝毫不损其美感,何乐不为?
在我的ACAD系统中,OFFSET 功能的调用,融入很多功能:半值、英寸、英寸半值输入:<BR> Offset distance or through <2.0 /D4.0 /I0.0787402 /S0.15748> =
并把OFFSET得到的实体改到当前层,当前颜色,当前线型,命令启动方式
Alt - Z (不需要按下 Enter / Space Bar)
masterlong
发表于 2004-4-13 02:37:00
to <A name=11488><FONT color=#000066><B>meflying</B></FONT></A>
首先我想请你回答一个问题
AUTOCAD提供的系统命令中
有多少你认为是值得“附加”这个功能的
在你回答之前
我可以告诉你至少我本人
没有任何系统命令需要在特定层上执行
CAD的二次开发
目的是用简单的办法完成复杂的操作
而不是把简单的事情复杂化
看看18楼里你的建议
为了适应系统命令自动切换
你必须再另做一个程序或功能
以便对操作目标进行数据附加
而数据附加的目的
仅仅是为了满足对系统命令进行附加操作这个要求
当然你可以说
这个附加数据可以让其它自编命令共享
如果是这样
既然准备用到自编命令了
在自编命令中加一个环境设置的功能很简单
又有什么必要对系统命令进行这种“优化”
再来谈谈<FONT face="Times New Roman" size=3>Autolayer.ini</FONT>
<FONT face="Times New Roman" size=3>正如楼上<A name=11703><FONT color=#000066><B>ishou</B></FONT></A>所言</FONT>
<FONT face="Times New Roman" size=3>绝大多数用户对CAD本身的功能尚一知半解</FONT>
<FONT face="Times New Roman" size=3>这样的情况下</FONT>
<FONT face="Times New Roman" size=3>要普通用户去手动设置这个文件</FONT><FONT face="Times New Roman" size=3>就叫强人所难</FONT>
<FONT face="Times New Roman" size=3>再编一个设置程序去方便用户设置?</FONT>
<FONT face="Times New Roman" size=3>看,又额外多了一个程序</FONT>
<FONT face="Times New Roman" size=3>这还得用户了解才能发挥作用</FONT>
<FONT face="Times New Roman" size=3>接下来再来讨论另一个问题</FONT>
<FONT face="Times New Roman" size=3>假设我已经设置了某个命令自动套用某些设置</FONT>
<FONT face="Times New Roman" size=3>现在因为某种需要必须使用另一些设置</FONT>
<FONT face="Times New Roman" size=3>----不要跟我说没有这种可能性</FONT>
<FONT face="Times New Roman" size=3>可是现在麻烦来了</FONT>
<FONT face="Times New Roman" size=3>这个系统命令已经被“强行限制”</FONT>
<FONT face="Times New Roman" size=3>只能在使用后再进行修改了</FONT>
<FONT face="Times New Roman" size=3>要解决这个问题</FONT>
<FONT face="Times New Roman" size=3>恕我愚钝</FONT>
<FONT face="Times New Roman" size=3>只能想到设置外部开关参数这个方法</FONT>
<FONT face="Times New Roman" size=3>根据需要去关闭或打开这个功能</FONT>
<FONT face="Times New Roman" size=3>于是麻烦又来了</FONT>
<FONT face="Times New Roman" size=3>是直接附加在这个功能中呢</FONT><FONT face="Times New Roman" size=3>还是单独设置</FONT>
<FONT face="Times New Roman" size=3>直接附加?</FONT>
<FONT face="Times New Roman" size=3>意味着执行了一个系统命令后</FONT>
<FONT face="Times New Roman" size=3>会出现与平常使用不一样的提示或说明</FONT>
<FONT face="Times New Roman" size=3>不知道有多少人可以接受这样的变化</FONT>
<FONT face="Times New Roman" size=3>单独设置?</FONT>
<FONT face="Times New Roman" size=3>首先增加一个程序是必然的</FONT>
<FONT face="Times New Roman" size=3>另外用户还要熟练掌握什么时候开什么关</FONT>
<FONT face="Times New Roman" size=3>否则操作之后发现不对又得U回去重新来过</FONT>
<FONT face="Times New Roman" size=3></FONT>
<FONT face="Times New Roman" size=3>前面说了这么多</FONT>
<FONT face="Times New Roman" size=3>归根结底其实就是一个大众化的问题</FONT>
<FONT face="Times New Roman" size=3>这个功能对大众来说毫无意义</FONT>
<FONT face="Times New Roman" size=3>当然对于个人来说</FONT>
<FONT face="Times New Roman" size=3>我就是喜欢加上这样的功能管你什么事</FONT>
<FONT face="Times New Roman" size=3>这当然没有问题</FONT>
<FONT face="Times New Roman" size=3>只是</FONT>
<FONT face="Times New Roman" size=3>如果你是一个CAD用户</FONT>
<FONT face="Times New Roman" size=3>注意,是用户</FONT>
<FONT face="Times New Roman" size=3>你在工作时遇到的情况千变万化</FONT>
<FONT face="Times New Roman" size=3>不可能有某个系统命令只会在特定环境下执行</FONT>
<FONT face="Times New Roman" size=3>为了少数的非常规情况</FONT>
<FONT face="Times New Roman" size=3>你那么忍受事后修改的麻烦</FONT>
<FONT face="Times New Roman" size=3>要么再加上相应的解决方案</FONT>
<FONT face="Times New Roman" size=3>而一旦这样做了</FONT>
<FONT face="Times New Roman" size=3>请不要忘记</FONT><FONT face="Times New Roman" size=3>开发这个功能的原始目的---简便</FONT>
<FONT face="Times New Roman" size=3>如果你是一个CAD的二次开发者</FONT>
<FONT face="Times New Roman" size=3>那你必须要考虑大众的需求</FONT>
<FONT face="Times New Roman" size=3>开发一个没有需求或需求极小的功能</FONT>
<FONT face="Times New Roman" size=3>本身就是一个失败</FONT>
<FONT face="Times New Roman" size=3>你的水平无庸质疑</FONT>
<FONT face="Times New Roman" size=3>只是不知道你是否真正了解什么是意义之所在</FONT>
<FONT face="Times New Roman" size=3></FONT>
我认为与其花心思在这方面的研究
不如多考虑一下如何使“变换设置”变得更简单
比如前面几页有个移动鼠标自动显示对象信息的帖子
这才是一个漂亮的程序
对它稍做改动做成一个命令或公共函数
以最后碰到的对象改变相应设置再执行其他命令
岂不比这种“优化”系统命令实在?