找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3085|回复: 27

[原创] 最近很倒霉

[复制链接]

已领礼包: 604个

财富等级: 财运亨通

发表于 2016-4-25 13:02:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 /db_自贡黄明儒_ 于 2016-4-25 13:27 编辑

最近很倒霉,这不,前几天喝水,差点哽住了。话说祸不单行,还不止这一件呢。我把自己的倒霉事呈现给大家,让没有遇到这种倒霉事的你开心一下。
第一桩 我定义公用函数(defun EntmakeLine (p1 p2)...在函数(defun C:w1 ()...中调用它。后来我在函数(defun C:w2()..内部定义了(defun EntmakeLine (p1 p2 Layer)。我执行完w2后再执行w1,就不行了,提示EntmakeLine少参数。
第二桩 我双击属性块,就可编辑那个属性。可现在不行了,只能用命令ED,不知道是不是360搞掉了我的什么文件。说明一下:我用的是win7 32位 05英文版cad
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 604个

财富等级: 财运亨通

 楼主| 发表于 2016-4-25 13:09:13 | 显示全部楼层
上面说了三件事,祸不单行应该是双数。
  第三桩 我以时间定义(setq name (rtos (* (getvar "CDATE") 1E8))),执行一段代码后,现以时间作定义块,谁知道运行太快,后面的块把前面的块重新定义了。   我就想了一招,后面的块名改为(setq name (rtos (+ (* (getvar "CDATE") 1E8) 1))) (setq name (rtos (+ (* (getvar "CDATE") 1E8) 2))),想问题解决了吧,其实不然,同样的问题。
  想了一下,可能是四舍五入的关系。我把后面块改为(setq name (rtos (+ (* (getvar "CDATE") 1E8) 2)))(setq name (rtos (+ (* (getvar "CDATE") 1E8) 4))),猜猜问题解决没有?当然没有
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

 楼主| 发表于 2016-4-25 13:14:23 | 显示全部楼层
断续解决第三个问题。
我把后面块改为(command "_.delay" 1)(setq name (rtos (+ (* (getvar "CDATE") 1E8) 2))) (command "_.delay" 1)(setq name (rtos (+ (* (getvar "CDATE") 1E8) 4))),这下好了吧,问题解决了吧?当然还是No
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

 楼主| 发表于 2016-4-25 13:16:42 | 显示全部楼层
不扯蛋了。最后一个问题是这样解决的(command "_.delay" 2)(setq name (rtos (+ (* (getvar "CDATE") 1E8) 2))) (command "_.delay" 4)(setq name (rtos (+ (* (getvar "CDATE") 1E8) 4)))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 5600个

财富等级: 富甲天下

发表于 2016-4-25 13:46:33 | 显示全部楼层
;还是会有问题的,最好是:
(setq cnt 1)
(while (tblsearch "block" (setq name (rtos (+ (* (getvar "CDATE") 1E8) cnt))))
(setq cnt (1+ cnt))
)

评分

参与人数 1D豆 +5 收起 理由
/db_自贡黄明儒_ + 5 很给力!经验;技术要点;资料分享奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2016-4-25 14:22:27 | 显示全部楼层
第一个问题是习惯问题,常写程序就应该对公用函数有自己的专属前缀,一种是个人的专属前缀,像院长就是这样,还有就是按程序加前缀,我本人喜欢这样(比如ca:mktext),另一种不用前后缀的方法,就是尽量不用全局函数,几乎所有函数都在主程序运行后定义一次。第二个问题是一个变量控制的:
傲游截图20160425141116.png



论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

 楼主| 发表于 2016-4-25 14:43:37 | 显示全部楼层
ll_j 发表于 2016-4-25 14:22
第一个问题是习惯问题,常写程序就应该对公用函数有自己的专属前缀,一种是个人的专属前缀,像院长就是这样 ...

感谢元老回复。第一个问题不应该呀。第二个问题,05版没有(getvar 'dblclkedit)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2016-4-25 14:59:29 | 显示全部楼层
/db_自贡黄明儒_ 发表于 2016-4-25 14:43
感谢元老回复。第一个问题不应该呀。第二个问题,05版没有(getvar 'dblclkedit)

第一个问题:你检查一下在c:w2中是不是把makwline声明为局部函数了,如果没声明,即使在程序运行时才定义,也还是全局函数。
第二个问题,早期的dblclkedit是一个命令,不是系统变量。

点评

哈哈。。这回复我怎么有种刮开有奖的感觉呢  详情 回复 发表于 2016-4-27 13:48

评分

参与人数 1D豆 +5 收起 理由
/db_自贡黄明儒_ + 5 果然低版本是命令,高版本可以是变量

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

发表于 2016-4-25 15:39:49 | 显示全部楼层
如ll_j 所说,还是自己习惯的问题,编程要养成良好的习惯,非通用函数,尽量局部化
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-4-25 15:53:39 | 显示全部楼层
在一个函数内部定义的函数,你在外面那个函数变量里面设成局部变量不就影响不到外面的同名函数了吗?

(defun abc()
  (princ "\n1")
)
(defun efg (/ abc)
    (defun abc()
        (princ "\n2")
    )
)
执行
(abc)
(efg)
(abc)
看看结果。

评分

参与人数 1D豆 +10 收起 理由
/db_自贡黄明儒_ + 10 很给力!经验;技术要点;资料分享奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

 楼主| 发表于 2016-4-25 16:10:26 | 显示全部楼层
newer 发表于 2016-4-25 15:53
在一个函数内部定义的函数,你在外面那个函数变量里面设成局部变量不就影响不到外面的同名函数了吗?

(de ...

我一直认为,函数内部定义的函数,不影响外部函数的定义。以前也没有发现,看来还是认识不足。

点评

我之前发过一个主题, http://bbs.xdcad.net/forum.php?mod=viewthread&tid=682420&page=1#pid3559397 黄大师也参与过,看来是没有认真看啊  详情 回复 发表于 2016-4-25 17:39
/ 后面的变量 和 函数 是一样的,都是作用域限于这个函数内部。  详情 回复 发表于 2016-4-25 16:26
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-4-25 16:26:35 | 显示全部楼层
/db_自贡黄明儒_ 发表于 2016-4-25 16:10
我一直认为,函数内部定义的函数,不影响外部函数的定义。以前也没有发现,看来还是认识不足。

/ 后面的变量 和 函数 是一样的,都是作用域限于这个函数内部。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

 楼主| 发表于 2016-4-25 16:29:43 | 显示全部楼层
newer 发表于 2016-4-25 16:26
/ 后面的变量 和 函数 是一样的,都是作用域限于这个函数内部。

我一直用vlisp编辑器自动提取变量。变量我是知道。不知道函数也应设置成变量。vlisp也不把函数作为变量提取。

点评

我想黄长老看过,只是没有仔细看.^_^  ,  发表于 2016-4-25 17:34
看样子我的《认识自定义函数》还可以给你看一遍^_^  发表于 2016-4-25 17:26
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

发表于 2016-4-25 17:39:46 | 显示全部楼层
本帖最后由 lucas3 于 2016-4-25 17:41 编辑
/db_自贡黄明儒_ 发表于 2016-4-25 16:10
我一直认为,函数内部定义的函数,不影响外部函数的定义。以前也没有发现,看来还是认识不足。

我之前发过一个主题,
http://bbs.xdcad.net/thread-682420-1-1.html

黄大师也参与过,看来是没有认真看啊

评分

参与人数 1D豆 +5 收起 理由
/db_自贡黄明儒_ + 5 很给力!经验;技术要点;资料分享奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

 楼主| 发表于 2016-4-26 08:20:18 | 显示全部楼层
newer 发表于 2016-4-25 15:53
在一个函数内部定义的函数,你在外面那个函数变量里面设成局部变量不就影响不到外面的同名函数了吗?

(de ...

有无编辑器直接提取(defun efg (/ abc)中的abc作为变量?

点评

没看懂,什么意思,老黄  详情 回复 发表于 2016-4-26 08:25
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-21 08:52 , Processed in 0.481836 second(s), 69 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表