明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1017|回复: 8

[LISP群(2)] 2013-06-19 明经 AutoLISP 编程②群(177027547) 群聊记录:返回值不是在eax寄存器中的么!

 关闭 [复制链接]
发表于 2013-6-19 08:17:47 | 显示全部楼层 |阅读模式
cre8or 08:17:47
返回值不是在eax寄存器中的么!
cre8or 08:19:40
但是lisp运行不经过编译 所以所谓的返回值 不过是一块普通内存区域 但是不保存这种说法实在是..
 楼主| 发表于 2013-6-19 08:50:12 | 显示全部楼层
(420552)浪子 08:50:12
变量多好还是少好?
[alwtyp][alwtyp] 08:50:39
子函数只是方便阅读和调试程序,我觉得速度不一定能提高
[ZZXXQQ] 08:50:40
返回值不会保存
[Student] 08:52:19
现在,变量所占内存已不是大问题了
意义清楚、使用方便
就好
(420552)浪子 08:54:04
各位!有没有切换系统输入法的lsp代码!
[lisp-study]jun 09:02:42
api行不行
 楼主| 发表于 2013-6-19 11:29:55 | 显示全部楼层
[Angel_wings_丶]Angel wings 丶﹏ 11:29:55
什么东西呢
【hehaidizhi】绿 11:31:40
说一下呢
[不死猫][nonsmall]不死猫 11:32:47
病毒而已
【hehaidizhi】绿 11:33:31
迷糊中
功能介绍下吧
(420552)浪子 11:35:31
真是病毒啊!
[不死猫][nonsmall]不死猫 11:38:16
你们点击这个的时候是怎么想滴?
[mitenickevin]kevin 11:38:45
没有免费的午餐的。呵呵
[vormittag]桔子 11:39:08
好奇害死不死猫。
[Angel_wings_丶]Angel wings 丶﹏ 11:39:34
我的想法就是 什么东东  不懂 懒得下载
[不死猫][nonsmall]不死猫 11:39:43
好奇害不死,猫
[不死猫][nonsmall]不死猫 11:40:21
没有免费的午餐,只有免费的流感
[Angel_wings_丶]Angel wings 丶﹏ 11:40:57
糊糊  老师  你正好把这个病毒解刨了做成视频把
 楼主| 发表于 2013-6-19 17:24:27 | 显示全部楼层
等你 17:24:27
连续的调用command函数画线段,怎么会出现干扰现象呢
就是点与点之间
创雅设计 17:25:30
没有关闭捕捉吧
等你 17:25:56
开始的时候写了关闭捕捉了的啊
(defun c:tt ()
  (setq kpt (getpoint "  请指定1点"))
  (setq spt (getpoint "  请指定2点"))
  (pit-lin kpt 0.5 2 "533.86")
  (pit-lin spt -0.5 2 "599.86")
  (princ)
)

(defun pit-lin (pt1 jx chang txt)
  (setq pt2 (polar pt1 0 jx))
  (setq pt3 (polar pt2 0 (* jx chang)))
  (setq mx (/ (+ (car pt2) (car pt3)) 2))
  (setq my (/ (+ (cadr pt2) (cadr pt3)) 2))
  (setq mp (list mx my))
  (setq mp (polar mp (/ pi 2) 0.2))
  (command "line" pt2 pt3 "")
  (command "text" "m" mp 0.2 0 txt)
)
等你 17:27:57
这个单独就可以实现目的,就是指定点旁画线并标注文字。可是在别的程序中,由于前面刚完成了command调用line的步骤,执行这一部分就不行了,感觉点与点之间有干扰
【hehaidizhi】绿 17:32:50
各位大小,我需要对cad中的一条铅直线(钻孔),按深度将每一段的数值(RQD)标示在红色曲线旁边,不知有没有插件可以实现?最好可以连曲线和标示一起画出来,现在曲线是手画的,见下图
[qqimg]oldimg/{27037C95-6DE2-A69E-AFE4-C077492C121C}.jpg[/qqimg]
【hehaidizhi】绿 17:33:42
其中2代表该段长度,0.83是红线和白线的距离
【hehaidizhi】绿 17:35:40
类似桩号标注,不过稍微复杂一点,不知有没有好的插件实现?
【hehaidizhi】绿 17:37:51
要求可以引用txt或excel表,因为深度、数值都已生成文件
 楼主| 发表于 2013-6-19 17:51:04 | 显示全部楼层
等你 17:51:04
请教这样用command调用line画一个图层为0,颜色为红色的直线。
等你 17:51:52
请高人指点
[vormittag]桔子 17:52:03
[vormittag]桔子 17:59:15
(setq cecolor  (getvar "CECOLOR"))
(setq clayer  (getvar "CLAYER"))
(setvar "CECOLOR" "1")
(setvar "CLAYER" "0")
(command "LINE" (getpoint) (getpoint) "")
(setvar "CECOLOR" cecolor)
(setvar "CLAYER" clayer)
我是有多无聊啊。
(420552)浪子 18:01:13
啥意思!
没事写着玩呀!
[仲文玉][仲文玉]wygjx 18:03:10
桔子是写给他的--> 等你(359468099)
[woshilxh]爱摄影 18:03:37
昨天给寂寞标尺寸那兄弟才真寂寞
等你 18:03:55
是吗,不胜荣幸
[还没想好]辰祺 18:12:57
求教:怎么把列表的第一个元素移动至列表末尾?
比如((1.0 2.0 3.0) (4.0 5.0 6.0) (7.0 8.0 9.0))
执行完毕后成为
((4.0 5.0 6.0) (7.0 8.0 9.0) (1.0 2.0 3.0))
[vormittag]桔子 18:18:35
(reverse (cons (car lst) (reverse (cdr lst))))
巴黎铁塔翻过来掉过去。
[还没想好]辰祺 18:19:13
[还没想好]辰祺 18:19:51
我想了半天 (setq old_list (append (cdr old_list) (cons (car old_list) nil)))
不知道两个执行效率差多少。。
[vormittag]桔子 18:20:49
append 肯定慢
[caoyin][caoyin] 18:20:51
应该你的快
[lisp-study]jun 18:20:56
(append (cdr lst) (list (car lst)))
[caoyin][caoyin] 18:20:59
[还没想好]辰祺 18:21:20
 我也是边看书边翻到的函数。。
[caoyin][caoyin] 18:21:22
reverse 也很慢
[lisp-study]jun 18:21:27
append 很慢呀?
[caoyin][caoyin] 18:23:20
直接
(list (cadr LST)
      (last LST)
      (car LST)
)
[lisp-study]jun 18:23:42
多了呢
[woshilxh]爱摄影 18:23:52
repeat
[vormittag]桔子 18:24:24
[caoyin][caoyin] 18:26:11
,看似简单的问题
[woshilxh]爱摄影 18:27:29
我写程序是新手,一般需要什么功能了,都是根据功能现查帮助文件找函数,此时此刻,我连rtos,atof都记不住谁转换谁,
[vormittag]桔子 18:28:02
real to string    atom to float
[woshilxh]爱摄影 18:28:12
另外,就是觉得养成写子程序的习惯挺好,
:)
[vormittag]桔子 18:28:21
函数名又不是随便起的。
[lisp-study]jun 18:28:58
@[caoyin] 请教个问题 
我想沿某一个方向搜索直线 有没有好的思路
[还没想好]辰祺 18:29:15
是的,一个灰常牛叉,执行效率高的子程序,就是一个牛叉的函数。。
[lisp-study]jun 18:31:39
[qqimg]oldimg/{FA095DC2-1D0F-4BB8-1715-450C1210AFF5}.jpg[/qqimg]
[caoyin][caoyin] 18:32:09
共线?
[lisp-study]jun 18:32:45
差不多 就这个意思
是画一个射线然后判断么
[caoyin][caoyin] 18:34:06
你先要说清楚:
给的条件是什么,求的结果是什么,具体到实际的例子
[lisp-study]jun 18:35:29
条件是很多直线 目的是把这些直线按共线分类
[woshilxh]爱摄影 18:36:19
思路应该是这个吧:搜索过相同点的斜率相同的直线
[woshilxh]爱摄影 18:36:52
然后把搜索过的剔除,继续搜索剩下的
[lisp-study]jun 18:36:57
不过相同点
[woshilxh]爱摄影 18:37:27
那就算出来斜率,归并就行了
[lisp-study]jun 18:37:48
我也是这么想的 但是当线很多的时候 这个开消比较大
不仅仅是斜率问题 还有共线
[woshilxh]爱摄影 18:38:34
我觉得一旦涉及到逐一循环,开销都不小。
[woshilxh]爱摄影 18:39:06
关键是找到一批后就不再重复搜索了,后面速度会越来越快
[lisp-study]jun 18:40:50
还是比较慢 所以想问问有没有更好的思路
[woshilxh]爱摄影 18:42:14
那只能在算法上优化了吧,
[vormittag]桔子 18:43:11
[qqimg]oldimg/{5E45165C-7159-C4D3-3713-4314F6AD7CBF}.jpg[/qqimg]这是两个问题么?
[lisp-study]jun 18:44:21
[qqimg]oldimg/{1252C450-5D6D-54E8-35F0-14D9E01FEABD}.jpg[/qqimg]这样的不就是两个问题么
[woshilxh]爱摄影 18:44:24
对啊,我也纳闷,
是想把这两条线放在一类么?
[lisp-study]jun 18:44:58
分开
[lisp-study]jun 18:45:33
[qqimg]oldimg/{41044189-897B-06E0-D350-573410C3A182}.jpg[/qqimg]
这个意思
[vormittag]桔子 18:46:06
作个坐标转换,这就是三个点。
[lisp-study]jun 18:48:29
这个是个好思路
[caoyin][caoyin] 18:51:00
在直线的任一点做垂线,垂足点为Pt,然后用inters 函数判断其他直线和垂线的交点是否相同
[qqimg]oldimg/{4A95807F-75E4-22ED-3E01-CE4ACD9ABF48}.jpg[/qqimg]
[lisp-study]jun 18:51:30
这个主意好
[caoyin][caoyin] 18:52:05
inters 的效率不高,因此先用角度判断排除
[lisp-study]jun 18:52:24
[caoyin][caoyin] 18:52:44
(and 角度判断
     交点判断
)
[lisp-study]jun 18:53:19
谢谢 谢谢 交点这个很好
[caoyin][caoyin] 18:54:12
改进一下:
不用交点法
[lisp-study]jun 18:54:31
...
[woshilxh]爱摄影 18:54:33
这,思路挺不错,省了代码,不过计算量上应该是把外置的放在内置了吧,应该计算量上差不多吧
[lisp-study]jun 18:55:09
直接判断四个点的角度行不?
[caoyin][caoyin] 18:55:42
判断直线的两个点(angle pt p1)(angle pt 2)角度是否相同或相差180度
angle效率高很多的
[lisp-study]jun 18:56:02
对 就是这个
用另一条直线的一个点
非常感谢
[caoyin][caoyin] 18:57:06
不客气
[vormittag]桔子 18:57:06
angle 对空间直线会出问题的,只求当前ucs下xy平面的角度。
[lisp-study]jun 18:57:43
不要空间直线 只操作二维的
 楼主| 发表于 2013-6-19 19:34:25 | 显示全部楼层
[nzl1116]晨 语 19:34:25
[qqimg]oldimg/{5B3F05DA-2D64-57EE-35D2-9D9F8DEA807F}.jpg[/qqimg]
这是怎么回事???
[nzl1116]晨 语 19:36:38
难道群主跟明总闹独立了?
[woshilxh]爱摄影 19:37:14
服务器维修呢吧
 楼主| 发表于 2013-6-19 21:02:04 | 显示全部楼层
[namezg]剑胆琴心 21:02:04
reverse原来也很慢啊
[namezg]剑胆琴心 21:03:02
哪些是lisp的内置函数
[alwtyp][alwtyp] 21:05:40
AUTOLISP函数都算是
 楼主| 发表于 2013-6-19 21:44:26 | 显示全部楼层
和光同尘 21:44:26
不会吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-23 02:10 , Processed in 0.214038 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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