明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4285|回复: 18

[LISP群(1)] 2013-04-28 明经 AutoLISP 编程(102918348) 群聊记录:明经论坛注册邀请码好不好弄到?

 关闭 [复制链接]
发表于 2013-4-28 08:05 | 显示全部楼层 |阅读模式
water_system 08:05:27
明经论坛注册邀请码好不好弄到?
 楼主| 发表于 2013-4-28 08:28 | 显示全部楼层
[野狼谷]笨鸟 08:28:14
有没有这样的函数?将:
 字符串表("1" "2" "2" "3") 合并为字符串 ”1 2 2 3"
[野狼谷]笨鸟 08:30:03
哈哈,我正准备自己来个循环呢,谢谢了,还是高手厉害
[仑通]仑通 08:32:16
[x_s_s_1] 就是 机器人
 我好像以前在某家设计院 见过你名字
[野狼谷]笨鸟 08:32:42
哈哈,出租吗?我租一个,太好用了
[x_s_s_1]生无可恋 08:33:34
我的名字经常有设计院用的
[仑通]仑通 08:34:54
[qqimg]oldimg/{BDC3A7EA-AC48-B5BB-7198-48097D0AC46C}.gif[/qqimg] 我的名字设计院不敢用
[qqimg]oldimg/{99940033-9576-D89B-FB66-81836DA8A58D}.gif[/qqimg]
[野狼谷]笨鸟 08:36:55
原创:截掉尾巴的函数
(reverse(car (reverse lst)))
[caoyin][caoyin] 08:37:30
[仑通]仑通 08:37:31
[qqimg]oldimg/{7FFC6495-F217-D401-C46A-AE58FE3D3448}.jpg[/qqimg]
[x_s_s_1]生无可恋 08:37:50
(vl-remove (last lst))
[野狼谷]笨鸟 08:37:53
坏了,又侵犯版权了
[qqimg]oldimg/{615393FB-C6E2-AAFE-0A90-8DE5D047DEAF}.gif[/qqimg]
[caoyin][caoyin] 08:38:34
生无可恋的方法不一定通
[仑通]仑通 08:38:34
常用函数库已经发展到230个了
[仑通]仑通 08:39:06
向一千个看齐
[qqimg]oldimg/{153A9AFD-DDF9-B3EC-DF9E-000CBEBAE8B6}.gif[/qqimg]
[qqimg]oldimg/{C1240FEF-4F09-EC49-9E9B-10A57E7F8290}.jpg[/qqimg]
[zhuquanmao]关中 08:39:12
[x_s_s_1]生无可恋 08:39:20
嗯,曹版说的对
[野狼谷]笨鸟 08:39:24
哦,那就(reverse(cdr (reverse lst)))
[x_s_s_1]生无可恋 08:39:24
试试看
[pzweng]路人 08:40:04
remove有相同的也删了
[x_s_s_1]生无可恋 08:40:21
对于重复的就不行了
[野狼谷]笨鸟 08:40:32
错误: 参数太少
[x_s_s_1]生无可恋 08:40:43
reverse很好
[野狼谷]笨鸟 08:41:07
这样的相当简单的可以直接整,不用外部函数
[zhuquanmao]关中 08:43:03
[x_s_s_1]生无可恋 08:43:54
加lambda
再截掉第一个字符串就行了
[野狼谷]笨鸟 08:44:20
看来带壳的函数不好用啊,不知道内核
[野狼谷]笨鸟 08:44:50
[x_s_s_1] 给来一个样子吧,nambda用的不是很顺手
[野狼谷]笨鸟 08:46:39
慢慢消化
[pzweng]路人 08:47:14
不行
这种简单的东西多试试就行了
[x_s_s_1]生无可恋 08:47:24
不对
[pzweng]路人 08:47:26
没必要
[x_s_s_1]生无可恋 08:47:31
要加mapcar
[cie0588][cie0588] 08:47:44
[qqimg]oldimg/{3B4BD167-3418-2CC6-CA85-D9B65E89660B}.jpg[/qqimg]
[野狼谷]笨鸟 08:48:46
看来(strcat " " x)) 与(strcat x " ") 空格谁在前都一样
[cie0588][cie0588] 08:49:08
最后要么去掉前面一个空格,要么去掉后面一个空格
[野狼谷]笨鸟 08:51:42
substr 不是很方便,我这样去尾不就行了
又一经典程序诞生了
[x_s_s_1]生无可恋 08:52:13
[野狼谷]笨鸟 08:52:20
[qqimg]oldimg/{A2CA8C10-8ACA-4ABD-FEF6-F12D1921ED71}.gif[/qqimg]
[caoyin][caoyin] 08:52:29
我的效率高
[x_s_s_1]生无可恋 08:52:29
多去论坛看看
[caoyin][caoyin] 08:52:33
[cie0588][cie0588] 08:52:40
方法多的很
[pzweng]路人 08:53:29
差不多
[zhuquanmao]关中 08:53:49
c版的挺好用
[pzweng]路人 08:54:11
C版的有限制
[x_s_s_1]生无可恋 08:54:51
如果表很大的话应该是曹版的快
[caoyin][caoyin] 08:55:08
“1,2,0“转换为(1 2 0)
[caoyin][caoyin] 08:57:57
就是把字符串格式的点转换为表格式的点
[野狼谷]笨鸟 08:58:15
还是得用nambda吧?
[pzweng]路人 08:58:23
remove-if呗
[caoyin][caoyin] 08:59:31
提供一个超简单的方法
(defun TEST ( X)
(or C:CAL (arxload "geomcal"))
(C:CAL (strcat "[" X "]"))
)
[caoyin][caoyin] 09:00:32
(TEST "1.5,2.2,10.0")
->
(1.5 2.2 10.0)
[野狼谷]笨鸟 09:00:43
先说,有没有这个:
[caoyin]  9:00:25
;;我的方法仅限本例
[x_s_s_1]生无可恋 09:00:47
[pzweng]路人 09:00:59
好象比较卡
[caoyin][caoyin] 09:01:15
第一次运行卡
第二次就快了,第一次因为加载arx
[zhuquanmao]关中 09:02:16
geomcal是什么东东
[cie0588][cie0588] 09:02:20
这个arx 是CAD自带的?
[pzweng]路人 09:02:25
这个方法看不太懂
[x_s_s_1]生无可恋 09:02:49
(setq str "1,2,0")(read(strcat "("(vl-string-translate "," " "str)")"))
[zhuquanmao]关中 09:04:03
[野狼谷]笨鸟 09:04:41
[pzweng]路人 09:05:26
生无可恋的这个不错
比C版的还要好
[野狼谷]笨鸟 09:05:52
函数命名:字符串转表
[x_s_s_1]生无可恋 09:14:19
坛子里有字符串转表好像是狂刀老大的
[linshiyin2]大地 09:14:56
前两天也遇到了,字符串转表
我是用笨办法,一个一个读取的
[lisp-study]jun 09:17:37
汉字不行
[linshiyin2]大地 09:18:34
还是read神奇,好多东西都可以用read
[vormittag]桔子 09:20:36
有个东西绝对不能用read
[linshiyin2]大地 09:20:36
转成数字,去掉特殊符号,用read很好,现在看,转表也很棒啊
为啥?
(setq str "1,2,0")(read(strcat "("(vl-string-translate "," " "str)")"))
(1 2 0)
[vormittag]桔子 09:21:56
有些程序输出的数据省略小数点前的0,例如.5 .27,这种字符串用read就出错。
(read ".5") 试试看。
[阿然][阿然] 09:22:26
;;字条串列表=>字符串 By Lee Mac
;;(BAtte:lst->str (list "A" "B") ",")返回"A,B"
(defun BAtte:lst->str (lst del)
  (if (cdr lst)
    (strcat (car lst) del (BAtte:lst->str (cdr lst) del))
    (car lst)
  )
)
;;字符串=>字条串列表 By Lee Mac
;;(BAtte:str->lst "A,B" ",")返回("A" "B")
(defun BAtte:str->lst (str del / pos)
  (if (setq pos (vl-string-search del str))
    (cons (substr str 1 pos)
      (BAtte:str->lst (substr str (+ pos 1 (strlen del))) del)
    )
    (list str)
  )
)
[pzweng]路人 09:23:26
lee mac的东西不错
[pzweng]路人 09:24:14
命令: (read ".5")
; 错误: 输入中的点位置不正确
[x_s_s_1]生无可恋 09:25:38
这种根据需要先处理一下
[linshiyin2]大地 09:26:04
有个小问题,如何判断一个字符串中包含大写和小写的字符,比如"a,b,c,A,B,C"中包含"a""A"
[ ](car (entsel)) 09:26:01
在lisp函数中写入(command "block"),则是命令行的形式定义块,但是我需要的却是图形界面的方式定义块,请问如何做到呢?[qqimg]oldimg/{69BEEB30-A4A4-94A3-BA44-811DE78BE553}.jpg[/qqimg]
[x_s_s_1]生无可恋 09:26:30
用ascii
[linshiyin2]大地 09:26:33
"a,b,c,A,B,C"中是否包含"a""A"
[阿然][阿然] 09:26:35
-block
[linshiyin2]大地 09:27:01
ascii中a,A不同的ascii
[ ](car (entsel)) 09:27:31
-block还是命令行呀
[x_s_s_1]生无可恋 09:27:45
就是了,再判断就出来了re:大地
[kwok][kwok]巭隼 09:30:26
2014冒似有些不支持-block
有些命令前面加-
[ ](car (entsel)) 09:31:58
但是(command "-block")不行呀
[kwok][kwok]巭隼 09:32:34
_block
[linshiyin2]大地 09:33:14
(if (not (vl-string-search "a" sgstr))
[linshiyin2]大地 09:33:59
如何判断,字符串中,含有a或者A
[阿然][阿然] 09:35:42
(wcmatch "a,b,c,A,B,C" "*a*,*A*")
[linshiyin2]大地 09:37:41
pattern

模式字符串,包含与 string 进行匹配的模式。pattern 可以包含表通配符中所列的通配符。在多个模式条件之间用逗号 (,) 分隔。函数仅比较 string 和 pattern 的前 500 个字符(约数),后面的字符将被省略。

棒,要的就是这个多条件
[linshiyin2]大地 09:40:00
延伸一下,这是对字符串,如果是表元素呢,member只能一个
[pzweng]路人 09:44:21
一个一个提出来嘛
[linshiyin2]大地 09:45:30
(a b c A)如何判断其中包含
a,或者A
[linshiyin2]大地 09:47:04
目前想到的办法是,用一次subst,在用menber
menmber
[linshiyin2]大地 09:48:14
member
 楼主| 发表于 2013-4-28 10:08 | 显示全部楼层
[ ](car (entsel)) 10:08:36
假设一个图层名是a,那么如何从别的图层切换到图层a呢?
[pzweng]路人 10:14:45
合并还是切换
[woky57] 10:15:36
求批量去图层前缀lisp
[woky57] 10:18:11
[pzweng]路人 10:19:28
论坛上的
自己不去找
[woky57] 10:20:04
昨天找了没找着[qqimg]oldimg/{615393FB-C6E2-AAFE-0A90-8DE5D047DEAF}.gif[/qqimg]
[x_s_s_1]生无可恋 10:20:24
[cmbcmbcjh]兮兮 10:20:39
[阿然][阿然] 10:20:49
我看是没去找
[x_s_s_1]生无可恋 10:21:28
只看了第一页
[woky57] 10:22:51
(foreach lyr (table "LAYER")
  (if (wcmatch lyr "ZZ-*")
    (command "rename" "LA" lyr (substr lyr 5))
  ))
(defun table (s / d r)

  (while (setq d (tblnext s (null d)))

    (setq r (cons (cdr (assoc 2 d)) r))

  )

)
真找了。找了这个,没搞明白。。。
[tryhi]大海 10:26:20
请问一下,加载lsp能不能直接在命令行完成,不要出现这个窗口
[qqimg]oldimg/{E91BF683-27F6-CC33-6B75-5F3BE8FB52AF}.jpg[/qqimg]
[x_s_s_1]生无可恋 10:30:00
要怎么删除或移动
[x_s_s_1]生无可恋 10:30:32
利用nth、append等函数操作
[vormittag]桔子 10:30:37
(setq number nil)
彻底清掉了。
[tryhi]大海 10:31:24
(command"appload" "D:fuzhi.lsp" "")
这样子不行
[x_s_s_1]生无可恋 10:31:30
还有就是vl-list族的函数
[阿然][阿然] 10:32:24
(load "d:/fuzhi.lsp")
[tryhi]大海 10:33:08
非常感谢
[x_s_s_1]生无可恋 10:34:41
arxload,arxunload,autoarxload,autoload,load,startapp
根据需要利用这些函数加载
[vormittag]桔子 10:35:07
对条件的描述不够。
[tryhi]大海 10:35:48
(load "d:/fuzhi.lsp")可以用
[阿然][阿然] 10:36:08
[qqimg]oldimg/{1FD10A92-777E-B46F-F32C-6E9E936C1EE1}.jpg[/qqimg]http://bbs.mjtd.com/forum.php?mod=viewthread&tid=92135
[x_s_s_1]生无可恋 10:36:16
kevin的问题太泛了
[阿然][阿然] 10:36:23
参考这里,下面的源码
基本上表操作的功能都有了
[mitenickevin]kevin 10:37:11
 谢谢阿然。
[mitenickevin]kevin 10:41:17
建筑门窗统计表用的[qqimg]oldimg/{61951AAB-DC6E-4B32-0A61-387C87B24EED}.jpg[/qqimg]
就差选择集的移动和删除了
[tryhi]大海 10:42:07
厉害
autolisp可以写这样界面?
[mitenickevin]kevin 10:43:58
我不会用DCL。只用OpenDCL.
[tryhi]大海 10:52:40
[qqimg]oldimg/{D5987545-C356-7BAD-4F62-EB81F7A77919}.jpg[/qqimg]
非常感谢
 楼主| 发表于 2013-4-28 12:07 | 显示全部楼层
[kenroy]何为 12:07:12
谁有等高线连接修改,手描程序?
[kenroy]何为 12:08:13
[qqimg]oldimg/{A8D2C383-843F-F64A-BD5A-8753171ACD10}.jpg[/qqimg]
 楼主| 发表于 2013-4-28 13:05 | 显示全部楼层
[linshiyin2]大地 13:05:01
贡黄明儒是哪位
 楼主| 发表于 2013-4-28 13:20 | 显示全部楼层
[linshiyin2]大地 13:20:27
保存变量用啥最好呢
[x_s_s_1]生无可恋 13:20:41
用变量啊
[linshiyin2]大地 13:21:36
要保存的那种
[x_s_s_1]生无可恋 13:22:06
看看帮助中的use*
[linshiyin2]大地 13:22:07
存在图纸里
[x_s_s_1]生无可恋 13:22:13
系统变量
[linshiyin2]大地 13:22:19
那个谁都可以用,不好
[x_s_s_1]生无可恋 13:22:37
存在图纸里,扩展数据
xdata
词典
[linshiyin2]大地 13:23:03
目前我也是用词典
[x_s_s_1]生无可恋 13:24:03
有什么不好?
蛮好的
[野狼谷]笨鸟 13:26:37
(vl-remove 0 (list pi t 0 "abc"))
vl-remove 并不是删除某元素后面的所有元素
帮助文件有误
还是扩展词典比较方便,
[linshiyin2]大地 13:28:41
不知道,自贡黄明儒 等各位高手有啥高见
[野狼谷]笨鸟 13:29:37
_$ (vlax-ldata-put "mydict" "mykey" "Mumbo Dumbo")
"Mumbo Dumbo"
_$ (vlax-ldata-get "mydict" "mykey")
"Mumbo Dumbo"
vlax-ldata-*;这一系列函数非常方便
[linshiyin2]大地 13:38:13
[qqimg]oldimg/{0EC4A70A-A543-2CDF-255B-ACEAB249CAE9}.jpg[/qqimg]用了词典每次打开都有这玩意,如果关闭显示,感觉又不爽
[qqimg]oldimg/{B29D0E68-4ABB-D247-EA1D-BEE60C7CDBE6}.jpg[/qqimg]
[ ](car (entsel)) 13:48:30
lisp代码中,如何知道哪些变量的赋值在运行中被拒绝了呢?
 楼主| 发表于 2013-4-28 14:02 | 显示全部楼层
[ ](car (entsel)) 14:02:07
lisp如何使得程序运行暂停几秒呢?
[yxp]小蜜蜂 14:02:30
pause
[pzweng]路人 14:04:54
delay
 楼主| 发表于 2013-4-28 14:22 | 显示全部楼层
[111118528]精灵 14:22:18
大神可以弄个草图大师直接转施工图的软件 肯定能赚钱
 楼主| 发表于 2013-4-28 14:36 | 显示全部楼层
[ ](car (entsel)) 14:36:57
如何把图层a的名字改成b呢?
[pzweng]路人 14:39:35
rename
[kwok][kwok]巭隼 14:41:41
[qqimg]oldimg/{C0290FDE-0FDA-45C4-DB09-1AEA98812EED}.jpg[/qqimg]
 楼主| 发表于 2013-4-28 16:45 | 显示全部楼层
[野狼谷]笨鸟 16:45:36
表lst(1 2 3 4 5)
如何根据需要获取第几到第几的子表,例如:
 (xxx 2 4 lst)=》 (2 3 4)
好像有个函数可以,给忘了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-4 05:58 , Processed in 0.244443 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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