明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: 明经快报

[LISP群(1)] 2013-11-11 明经 AutoLISP 编程(102918348) 群聊记录:有没有哪个朋友知道怎么用批处理修改自己的ip,子网掩码和网关?

 关闭 [复制链接]
 楼主| 发表于 2013-11-11 16:47:16 | 显示全部楼层
[linshiyin2]大地 16:47:16
1. 本版块为LISP源码技术交流版块,发帖时请一律发布源码或解决问题的思路、方法,不得发布编译的程序,更不得发布伪源码。
什么时候改规矩了?
[linshiyin2]大地 16:47:56
fas不让发了?伪源码也不能发了?
院长要生气了吧
[NJZX05]剑无锋 16:48:25
请教一下,有没有人解决这个问题啊:
如何取行命令在命令行运行时,返回给命令行的结果
[linshiyin2]大地 16:49:17
要什么结果?每个命令不一样
[NJZX05]剑无锋 16:49:17
伪源码也不能发好像不好吧,程序最关键的就是算法,如果伪源码也不能发的话,好像不太……
是的
我就是要得到命令运行后,在命令行上显示的东西
[linshiyin2]大地 16:49:52
你可以显示执行的过程或者关闭显示过程
[linshiyin2]大地 16:50:32
获取命令行的文字?
[NJZX05]剑无锋 16:50:55
我不是要显示或关键显示,而是要得到将取得命令行的显示,并赋值给变量
[reyun]乐小曦 16:51:09
请教大家个问题:[qqimg]201311/{73E5E3C5-7C12-333A-BCBD-E4B6141061AD}.jpg[/qqimg]LISP怎么做可以查得出CAD打开了几个文档?
[NJZX05]剑无锋 16:51:31
不管命令行显示的什么内容,都赋值给变量,具体的内容由我自己分析
[linshiyin2]大地 16:51:46
简单的伪源码可以,或者比较简单的公共函数(容易找到类似的),或者注明这部分函数的功能也可以啊
[pzweng][pzweng]路人 16:51:48
有个系编统变量
[linshiyin2]大地 16:52:25
他要的是返回命令行的内容,并非显示与否
[NJZX05]剑无锋 16:52:27
变量名是什么
[pzweng][pzweng]路人 16:52:42
这个我忘了
你还可以用vlisp获取
[linshiyin2]大地 16:52:56
(setvar "cmdecho" 0)
[pzweng][pzweng]路人 16:53:05
documents集合
[linshiyin2]大地 16:53:50
命令的执行过程有什么好看的,直接屏蔽掉
[NJZX05]剑无锋 16:54:06
呵呵,对我来说太好看了
[pzweng][pzweng]路人 16:54:36
(vlax-for obj (vla-get-documents (vlax-get-acad-object))
  (vla-get-name obj)
  )
[NJZX05]剑无锋 16:55:40
比如,我想要测试一个命令的不同分支的执行情况,而我又没办法采用函数的方法调用该命令,也就是说,我无法通过(命令)这种形式得到返回值,那么,我就只能读取命令行的返回结果
[pzweng][pzweng]路人 16:56:16
不明白
讲清楚
[linshiyin2]大地 16:56:26
不理解
[NJZX05]剑无锋 16:56:29
举个例子:在加载天正后,T81_TObjEdit这个命令,你能得到结果吗
[reyun]乐小曦 16:56:41
[qqimg]201311/{4AA202CE-23AA-D5E5-CF3D-F5927F204305}.jpg[/qqimg]谢谢!谢谢!
[linshiyin2]大地 16:56:49
天正是c++
[NJZX05]剑无锋 16:56:59
恐怕连(T81_TObjEdit)都不能被认识
因为,这个命令是由天正内部解释执行的
我不是要管天正是什么编的
[linshiyin2]大地 16:57:38
arx函数被封装了,看不到吧
[NJZX05]剑无锋 16:58:04
而是想要一个统一的方法,解决这种不知函数名的命令的返回情况
[linshiyin2]大地 16:58:21
你就是想看人家的函数执行的过程呗
[yarp]潜水 16:58:31
有牛人试图在lisp里面实现面向对象没有的?
[NJZX05]剑无锋 16:58:33
是的,没错
[NJZX05]剑无锋 16:59:06
lisp里面实现面向对象,说白了就是反应器吧
[linshiyin2]大地 16:59:15
这个应该做不到,我是一般都关闭回显然后执行
[NJZX05]剑无锋 16:59:50
这个应该能做到,只是我们功力不够深
[pzweng][pzweng]路人 17:00:16
T81_TObjEdit运行的结果?
这个是命令
干什么用的
[NJZX05]剑无锋 17:00:35
呵呵,是的
[yarp]潜水 17:00:36
不是,就是面向对象编程,将数据和方法结合在一起。
[linshiyin2]大地 17:00:41
跟录制宏似的,每一个步骤都搞下来,猫猫有个录制lisp的宏
[yarp]潜水 17:00:49
还有实现继承。
[linshiyin2]大地 17:01:29
其实你想山寨人家的程序或者函数,
[linshiyin2]大地 17:02:12
正向开发吧,在论坛里多多学习,思路有了就好弄了
[NJZX05]剑无锋 17:02:24
T81_TObjEdit是一个特殊对象的编辑器,由于在执行时,需要密码,而正确的密码与错误的密码,会有不同的执行情况
[pzweng][pzweng]路人 17:03:03
这个哪知道
[linshiyin2]大地 17:03:09
破解?那就学学od
[yarp]潜水 17:03:34
autoLisp不能实现闭包,所以实现起面向对象起来很麻烦。
[NJZX05]剑无锋 17:03:37
我以前做土建时的一个图库,加了密,结果多年不做了,再想改时却发现改不了了
[linshiyin2]大地 17:03:42
jump或者nod过了就行
[NJZX05]剑无锋 17:04:01
所以我想破,不过我却无法取得那个测试条件
[linshiyin2]大地 17:04:31
大家说了一大堆才明白你要搞什么
就是丢了密码呗,这个难办
[NJZX05]剑无锋 17:05:57
是的,我就是要写一个解密程序,不过其中最关键的部分,就是我要能够取得执行结果,以便分析
[阿然][阿然] 17:06:52
那就是要他自己分析了
[linshiyin2]大地 17:06:54
存储回显到命令行的上一个字符串。这个字符串与命令行中看到的上一条命令相同,并且包含任何用户输入的内容。
[wh89103](阿天) 17:07:09
[qqimg]201311/{4847EC92-9631-ABEF-48E8-4F045513DC8C}.jpg[/qqimg]
[NJZX05]剑无锋 17:07:18
是的
就这意思
[linshiyin2]大地 17:07:28
估计这个东西会返回空或者nil,就跟ture和f一样
[linshiyin2]大地 17:08:32
双11害死人啊
[linshiyin2]大地 17:09:05
我就是败家爷们儿,败了一个热水器,家里现有的还好好的
[pzweng][pzweng]路人 17:09:28
买回来,你家那个就会坏了
[NJZX05]剑无锋 17:09:29
好了,谢谢了
[pzweng][pzweng]路人 17:10:07
可以了?
就是获取这个?
[NJZX05]剑无锋 17:11:18
太感谢了
[onandoff][onandoff]自然 17:11:18
半价处理吧
[NJZX05]剑无锋 17:11:42
我那个可能是32位的密码呀,让我慢慢解吧
 楼主| 发表于 2013-11-11 17:22:41 | 显示全部楼层
[linshiyin2]大地 17:22:41
其实伪源码也不错,仔细分析能看到思路(如果有注释就更容易了),类似的
伪源码中类似的函数可以山寨出来
[NJZX05]剑无锋 17:24:14
相对而言,我更喜欢伪码,因为思路清楚
[linshiyin2]大地 17:24:40
还有你这种嗜好的,喜欢折腾自己的脑细胞
[linshiyin2]大地 17:28:23
[qqimg]201311/{5115D8D5-7BC3-81CA-193E-5E1AE31B297A}.jpg[/qqimg]
这个引线标注很给力啊
[linshiyin2]大地 17:29:04
[qqimg]201311/{4F6B3B93-E834-FD57-BF42-1DDC32A07E23}.jpg[/qqimg]10k多少行代码啊
[linshiyin2]大地 17:30:43
[qqimg]201311/{1BE0619A-944D-32E0-5BE9-5E3E4B19F205}.jpg[/qqimg]
 楼主| 发表于 2013-11-11 17:43:07 | 显示全部楼层
[328302216][328302216]小莫 17:43:07
主要就是因为有些源码里面伪源码部分的内容没有....
[ddbb2008]笨笨 17:44:44
[qqimg]201311/{4F6B3B93-E834-FD57-BF42-1DDC32A07E23}.jpg[/qqimg]求分享。。。。
[linshiyin2]大地 17:45:36
[ddbb2008]笨笨 17:53:16
 楼主| 发表于 2013-11-11 18:08:58 | 显示全部楼层
[【KAIXIN】] [【KAIXIN】]炫翔 18:08:58
我记得 我也有论坛分享过这个源码
没有10K吧
[linshiyin2]大地 18:12:15
这个标注基本上做到家了,全了
[linshiyin2]大地 18:12:51
能和选择易有一拼了
 楼主| 发表于 2013-11-11 18:36:03 | 显示全部楼层
[NJZX05]剑无锋 18:36:03
大家有没有遇到过这类问题,计算得到的一个大数,在使用过程中出现了不明原因的自动改变
[NJZX05]剑无锋 18:36:35
(setq Char (nth (- Base 1) BaseChLst) MaxIndex "")
  (if (NULL MaxLen) (setq MaxLen 32767))
  (repeat MaxLen (setq MaxIndex (strcat MaxIndex Char)))
  (setq MaxIndex (Str->Num MaxIndex BaseChLst))
  (setq Index (Str->Num SWord BaseChLst))
  (if TimeLimit (setq OutTime (+ TimeLimit (getvar "CDATE"))))
  ;;此处具有不明原因错误,MaxIndex在值会不受控制的改变
[NJZX05]剑无锋 18:37:10
两个子函如下:
(defun Num->Str(Num BaseChLst / Base Index Char Str Tmp)
  (setq Base (length BaseChLst) Str "")
  (while (>= Num Base)
    (setq Tmp Num Num (/ Num Base))
    (setq Num (atof (rtos Num 2 0)));;此处用于解决整数精度不足问题
    (setq Index (- Tmp (* Num Base)))
    (setq Char (nth Index BaseChLst))
    (setq Str (strcat Char Str))
    );;while
  (setq Str (strcat (nth Num BaseChLst) Str))
  Str
  );;defun
(defun Str->Num(Str BaseChLst / Base Index Num Tmp Char)
  (setq Base (length BaseChLst) Index 0 MaxIndex (strlen Str) Num 0.0)
  (while (< Index MaxIndex)
    (setq Char (substr Str (setq Index (1+ Index)) 1))
    (setq Tmp (- Base (length (member Char BaseChLst))))
    (setq Num (+ (* Num Base) Tmp))
    )
  (atof (rtos Num 2 0))
  )
[NJZX05]剑无锋 18:38:00
由于数较大,采用整数时无法表达,故而在子函中使用的real型
求大神解答
 楼主| 发表于 2013-11-11 19:11:54 | 显示全部楼层
[pzweng][pzweng]路人 19:11:54
字太大
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-6 03:46 , Processed in 0.161677 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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