明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4134|回复: 10

[LISP群(1)] 2013-08-29 明经 AutoLISP 编程(102918348) 群聊记录:使用图层隔离的时候,为什么有的块能够被隔离,有的却不能够呢?

 关闭 [复制链接]
发表于 2013-8-29 10:39:50 | 显示全部楼层 |阅读模式
[xiaomm250][lisp_](car (entsel)) 10:39:50
使用图层隔离的时候,为什么有的块能够被隔离,有的却不能够呢?
[ygp820601]风声 10:43:18
因为块在不同的图层
[xiaomm250][lisp_](car (entsel)) 10:43:38
我都弄到同一个图层上
[ygp820601]风声 10:45:21
同一个块么?
[xiaomm250][lisp_](car (entsel)) 10:45:38
不同
 楼主| 发表于 2013-8-29 10:59:39 | 显示全部楼层
[pzweng][pzweng]路人 10:59:39
块内图元不在隔离的图层上
[xiaomm250][lisp_](car (entsel)) 11:00:31
这个答案似乎靠谱,我试试
[yucpp]就是爱你 11:01:04
做块的时候,不是0层
[xiaomm250][lisp_](car (entsel)) 11:02:06
这个答案确实靠谱
[xiaomm250][lisp_](car (entsel)) 11:03:01
用lisp如何隔离块内的图元所在的图层呢?
[ygp820601]风声 11:04:13
可以用冻结命令
[xiaomm250][lisp_](car (entsel)) 11:05:57
冻结是把块给关闭了呀,而我需要单独copy块呀
[pzweng][pzweng]路人 11:10:44
这样做有意思吗
毫无意义
 楼主| 发表于 2013-8-29 16:01:42 | 显示全部楼层
[gongsiyi123][gongsiyi123]龙龙 16:01:42
用(open )函数打开一个txt文件,这个txt文件能绑定到vlx里吗?绑定的话(open )的路径怎么写呢?
[tiyi8888]永远D痛 16:02:14
给所有开学恐惧症患者的一剂良方:
9月份上课21天,
10月份上课19天,
11月上课21天,
12月上课19天,
一共上课80天,
平均每天上课7个小时,
一共560个小时,
合计23天 !
也就是说还有23天就放寒假了!
什么叫鼓舞人心!这才叫鼓舞人心!
[NetBee]网蜂 16:04:22
[不死猫][nonsmall]不死猫 16:06:07
老师说:每天还有3小时的补课和6小时作业
[NewB]长衫罩子龙 16:06:33
嘎嘎,比上课时间还多呢。
 楼主| 发表于 2013-8-29 16:39:34 | 显示全部楼层
[HNFSF](看海) 16:39:34
命令: (setq x 17.5)
17.5

命令: (setq fmtval (rtos x 2 2)) "17.5"

为什么不是“17.50”
[雨的节奏][雨的节奏] 16:40:40
你试一下3看看
[HNFSF](看海) 16:41:08
mode 

整数,指定现行单位模式。mode 的取值对应于 AutoCAD 系统变量 lunits 的允许值,如下所示:
1  科学
2  小数
3  工程(英尺和十进制英寸)
4  建筑(英尺和分数英寸)
5  分数
[lisp-study]jun 16:41:24
[qqimg]201308/{2765920A-678C-C3C0-1848-2B703C76F1F3}.jpg[/qqimg]
[HNFSF](看海) 16:41:38
可能是什么变量控制了不
我贴的那个是lisp帮助的例子
写的一个程序,上午还是正常的,刚才运行一下就发现这个问题
[pzweng][pzweng]路人 16:42:37
dimz变量
[lisp-study]jun 16:42:54
[qqimg]201308/{B3B6B6E9-301B-3C62-28A9-E0A28DD81427}.jpg[/qqimg]
帮助文件没错吧
[pzweng][pzweng]路人 16:43:27
系统变量问题
[pzweng][pzweng]路人 16:44:17
DIMTZIN
[pzweng][pzweng]路人 16:45:33
不知道哪个变量了
[lisp-study]jun 16:45:42
[qqimg]201308/{79B6B1E7-92FF-A7BC-D201-46A61E674598}.jpg[/qqimg]
[HNFSF](看海) 16:46:44
谢谢了
是这个变量的原因
[pzweng][pzweng]路人 16:47:44
就是这个
我忘了
[pzweng][pzweng]路人 16:49:48
函数里面都讲了
[HNFSF](看海) 16:50:00
是的
 楼主| 发表于 2013-8-29 18:26:41 | 显示全部楼层
[kewyst]………… 18:26:41
由cass三角网文件 怎么得到顶点数据
[zark]虚心请教 18:28:46
先转为VLA对象   (vlax-ename->vla-object en)   然后用GET函数找。你试试。我以前用ENTGET好像也很不好找
[VBALISPER]恐龙 18:36:20
数字的位数不确定,怎么用rtos呢?
[VBALISPER]恐龙 18:37:34
请问rtos这个能不能把数字直接转成字符,不指定小数位数,却和数字的小数位一致呢.如数字是a = 1.2   (rtos a),最后写出文字,成了1.2000了
是这样的.但小数位数不确定.
[vormittag]桔子 18:38:01
小数位数不写就行了
[VBALISPER]恐龙 18:38:09
不能用(rtos a 2 2)最后一个2,不确定是几位数
[vormittag]桔子 18:38:11
(rtos a 2)
[VBALISPER]恐龙 18:38:30
我试了一下,还是成了1.2000了
是不是要设置一下D什么的变量?
[啵浪鼓] 18:38:40
dimzin 8
[zark]虚心请教 18:38:44
不是他要的。
[qqimg]201308/{F2A42A35-7403-FE0E-29F6-4DBF88CC5F46}.jpg[/qqimg]
[zark]虚心请教 18:39:45
改成8也不行哦
[VBALISPER]恐龙 18:40:01
(setq str (rtos str 2))  str=1.2  最后写成文本,就写出来1.2000
[zark]虚心请教 18:40:23
以前也想这样,就是没成功
[vormittag]桔子 18:40:53
应该是可以的
[VBALISPER]恐龙 18:41:06
我的dimzin就是8
[VBALISPER]恐龙 18:42:07
在写文本之前,用了princ显示,仍然是1.2000
(setq str (read st));str结果是数字
  ;(setq len_fenzi(strlen str));分子的长度
  (setq str (rtos str 2))
  (princ " ")
  (princ str)
[啵浪鼓] 18:42:27
命令: dimzin

输入 DIMZIN 的新值 : 8

命令: (rtos str 2)
"1.2"
[VBALISPER]恐龙 18:42:38
st=1.2 2.3 2.0
[啵浪鼓] 18:42:58
dimzin去尾数为0的
[VBALISPER]恐龙 18:43:17
哦.我看我的值就是8,就没有改
[gongsiyi123][gongsiyi123]龙龙 18:44:08
请教一下
( (a1 b1)(a2 b2)……(an bn) )
这样一个表,怎么处理后变成这样:
( a1 a2 a3……an )
[VBALISPER]恐龙 18:44:51
对了,我单位里就是设置的4位小数
[啵浪鼓] 18:45:50
[gongsiyi123][gongsiyi123]龙龙 18:46:11
非常感谢!
[VBALISPER]恐龙 18:46:14
我是不是rtos没有成功哦.princ出来的值没有引号
[gongsiyi123][gongsiyi123]龙龙 18:46:24
还是函数不熟悉啊,刚才用foreach弄了半天都不行
[VBALISPER]恐龙 18:46:26
命令: ee
指定文字标注的位置
1.2000
[啵浪鼓] 18:46:26
应该是要(A1 B1 A2 B2)吧?
[gongsiyi123][gongsiyi123]龙龙 18:46:42
是要(a1 a2...an)
[啵浪鼓] 18:46:58
成功了,princ是不带引吧的,你要引号就用print
[啵浪鼓] 18:48:26
谁帮我看看这个啊,一天了没有人留个芳名啥的 
删除表中重复数据,保留图元名,并统计表中相同数量
http://bbs.mjtd.com/thread-107370-1-1.html
[VBALISPER]恐龙 18:49:13
哦.是的了.但一直显示1.2000,怎么办呢?dimzin是8
[雨的节奏][雨的节奏] 18:49:19
删除重复元素
oldlist
(setq newlist ())
[啵浪鼓] 18:50:29
不单是重复,还有统计,还有保留图元,想了一天没想弄这几句简短的代码要咋弄啊
[VBALISPER]恐龙 18:51:23
(rtos a 2)  (rtos a)都试了,不行.
[啵浪鼓] 18:55:10
为啥我的行啊,把你的完整代码发上来,我帮你测下
[VBALISPER]恐龙 18:57:06
我是先把 1.2 2.3 2.0这样一段字符read出第一个1.2,然后来rtos的,可能就是read了一下,就老出问题.
;堆叠文字
(defun c:ee(/ os xt1 ptbz st str str1 str2 ptbzx ptbzy pt1y pt2y pt1 pt2 pt3 pt4)

  (setq olderr *error* *error* myerr)
  
  (setq ptbz (getpoint " 指定文字标注的位置"))  
  (setq st (LM:EditBox ""));调用对话框

  (SETVAR "CMDECHO" 0)
  (setq os (getvar "osmode"));保存捕捉状态
  (setq xt1 (getvar "DIMZIN"));保存DIMAZIN系统变量的值
  (setvar "DIMZIN" 0)
  (setvar "OSMODE" 0);关闭对象捕捉,否则出错

(if 
  (= (tblobjname "LAYER" "品位厚度") nil);没有该图层
  (command "layer" "n" "品位厚度" "c" "7" "" "");建立图层  
)
(command "layer" "s" "品位厚度" "");置为当前层

  (setq str (read st));str结果是数字
  (setq strT (read (strcat "(" st ")")))
  (setq str1 (rtos (car str) 2 2))

  
  ;(setq len_fenzi(strlen str));分子的长度
  (setq str (rtos str 2))
  (princ " ")
  (princ str)
  ;(princ len_fenzi)

;;;  (setq str1 (rtos (car str) 2 2))
;;;  (setq str2 (cdr str))
  (princ " ")
  ;(setq str2 (substr st len_fenzi))
  
  (princ st)
;(alert (strcat str1 "和" str2));查看是否分离出2个数字
  (setq ptbzx (car ptbz))
  (setq ptbzy (cadr ptbz))
  
  (setq pt1y (+ ptbzy 2))
  (setq pt2y (- ptbzy 2))
  (setq    pt1 (list ptbzx pt1y))
  (setq    pt2 (list ptbzx pt2y))
  
  (setq    pt3 (list (- ptbzx 5) ptbzy))
  (setq    pt4 (list (+ 5 ptbzx) ptbzy))
  
  (command "pline" pt3 pt4 "")  
  (command "text" "j" "m" pt1 "2.5" "" str);j为对齐样式,m为中间(可改为c中心)
  (command "text" "j" "m" pt2 "2.5" "" st);j为对齐样式,m为中间
  
  (setvar "osmode" os)
  (setvar "DIMZIN" xt1)
  (SETVAR "CMDECHO" 1)
  (myerr)
;(prompt "  堆叠标注工具由恐龙编写,制作日期:2011.11.03,命令名:ddt")
(prin1)
)


(defun LM:EditBox ( string / id );堆叠文字用编辑框
  (and
    (< 0 (setq id (load_dialog "ACAD")))
    (new_dialog "acad_txtedit" id)
    (set_tile    "text_edit"  string)
    (action_tile "text_edit" "(setq string $value)")
    (if (zerop (start_dialog)) (setq string nil))
  )
  (if (< 0 id) (unload_dialog id))
  string  
)

(defun myerr (msg)
  (setvar "osmode" os)
  (setq *error* olderr)
  (princ)
)
[啵浪鼓] 19:00:53
对话框里输了数字无法退出咯
[VBALISPER]恐龙 19:01:12
确定就退出了.
[啵浪鼓] 19:02:19
命令: ee
指定文字标注的位置; 错误: 参数类型错误: consp 5

命令:
命令: !str 5
[VBALISPER]恐龙 19:02:39
(setq strT (read (strcat "(" st ")")))
  (setq str1 (rtos (car str) 2 2))多了.我正在修改
[VBALISPER]恐龙 19:03:29
我正在各种试验.刚才发到群里的有几句没改回来.
[啵浪鼓] 19:03:34
你的程序目前是出错退出的,然后你又写了出错处理,所以你最后得到的结果值应该是dimzin回到初始前了
[VBALISPER]恐龙 19:04:03
发给你的.能写出字来.
正常退出的吧
[啵浪鼓] 19:04:41
写不出错
[VBALISPER]恐龙 19:04:46
[qqimg]201308/{FE532CF9-51A8-832B-65C7-5EDC9FE101A0}.jpg[/qqimg]
[啵浪鼓] 19:04:49
写不了字
[VBALISPER]恐龙 19:05:02
;堆叠文字
(defun c:ee(/ os xt1 ptbz st str str1 str2 ptbzx ptbzy pt1y pt2y pt1 pt2 pt3 pt4)

  (setq olderr *error* *error* myerr)
  
  (setq ptbz (getpoint " 指定文字标注的位置"))  
  (setq st (LM:EditBox ""));调用对话框

  (SETVAR "CMDECHO" 0)
  (setq os (getvar "osmode"));保存捕捉状态
  (setq xt1 (getvar "DIMZIN"));保存DIMAZIN系统变量的值
  (setvar "DIMZIN" 0)
  (setvar "OSMODE" 0);关闭对象捕捉,否则出错

(if 
  (= (tblobjname "LAYER" "品位厚度") nil);没有该图层
  (command "layer" "n" "品位厚度" "c" "7" "" "");建立图层  
)
(command "layer" "s" "品位厚度" "");置为当前层

  (setq str (read st));str结果是数字
  ;(setq len_fenzi(strlen str));分子的长度
  (setq str (rtos str 2))
  (princ " ")
  (princ str)
  ;(princ len_fenzi)

;;;  (setq str1 (rtos (car str) 2 2))
;;;  (setq str2 (cdr str))
  (princ " ")
  ;(setq str2 (substr st len_fenzi))
  
  (princ st)
;(alert (strcat str1 "和" str2));查看是否分离出2个数字
  (setq ptbzx (car ptbz))
  (setq ptbzy (cadr ptbz))
  
  (setq pt1y (+ ptbzy 2))
  (setq pt2y (- ptbzy 2))
  (setq    pt1 (list ptbzx pt1y))
  (setq    pt2 (list ptbzx pt2y))
  
  (setq    pt3 (list (- ptbzx 5) ptbzy))
  (setq    pt4 (list (+ 5 ptbzx) ptbzy))
  
  (command "pline" pt3 pt4 "")  
  (command "text" "j" "m" pt1 "2.5" "" str);j为对齐样式,m为中间(可改为c中心)
  (command "text" "j" "m" pt2 "2.5" "" st);j为对齐样式,m为中间
  
  (setvar "osmode" os)
  (setvar "DIMZIN" xt1)
  (SETVAR "CMDECHO" 1)
  (myerr)
;(prompt "  堆叠标注工具由恐龙编写,制作日期:2011.11.03,命令名:ddt")
(prin1)
)


(defun LM:EditBox ( string / id );堆叠文字用编辑框
  (and
    (< 0 (setq id (load_dialog "ACAD")))
    (new_dialog "acad_txtedit" id)
    (set_tile    "text_edit"  string)
    (action_tile "text_edit" "(setq string $value)")
    (if (zerop (start_dialog)) (setq string nil))
  )
  (if (< 0 id) (unload_dialog id))
  string  
)

(defun myerr (msg)
  (setvar "osmode" os)
  (setq *error* olderr)
  (princ)
)
这个,和单独发给你的一样,刚写出字来了的.
命令: ee
指定文字标注的位置
1.2000
1.2 2.2 3.0
[VBALISPER]恐龙 19:06:16
目前主要任务是从1.2 2.2 3.0这个字符串里,读出1.2来.
[啵浪鼓] 19:06:18
[qqimg]201308/{B7E7B1A9-C638-6000-71C6-CA49E21CE2BE}.jpg[/qqimg]你这里为什么是0?
[zark]虚心请教 19:06:21
用什么函数能返回一个符号的字符串格式。比如(XX setq)返回“setq”
[VBALISPER]恐龙 19:06:41
哦.明白了.
[VBALISPER]恐龙 19:07:43
又出现新的问题了.
[qqimg]201308/{F8169C74-62B9-ADB4-4603-9EABF5B05FEA}.jpg[/qqimg]对了.
但是如果我输入的字符串是1.0 2.3 3.0这样的,分子就变成1了.
我希望分子是我输入字符串的第一个数.
就是把那个改为8了
[啵浪鼓] 19:09:08
函数可以转字符串?没弄过
[VBALISPER]恐龙 19:09:41
没注意到程序里把它改为0了.现在改成8,对1.2这种情况对了.对1.0这样的情况又不对了.
[zark]虚心请教 19:09:53
应该可以的。(xxx setq)返回"setq"
不懂这个XXX是什么函数
[啵浪鼓] 19:10:23
1.0返回1
[VBALISPER]恐龙 19:10:51
就是啊.现在rtos 1.0 就得到1了.不是我要的1.0
总之,写1.2就返回1.2,1.0就返回1.0
[VBALISPER]恐龙 19:12:52
虚心请教,你的意思是目前没有这样的函数,是吧
[啵浪鼓] 19:13:13
你从对话框里读出来的就是文字格式,为什么要转换数字呢?转数字后计算是可以,但是你输出文字的时候就用没转换前的赋值啊
[gongsiyi123][gongsiyi123]龙龙 19:13:29
[qqimg]201308/{CB14CF65-BE4E-80F6-6782-A86726BC3DB3}.jpg[/qqimg]
再问个问题~~
我希望选中左边的单选按钮时,让右边的列表禁用,选中右边的单选按钮时,让左边的列表禁用,该怎么实现呢?
(action_tile "button1" "(mode_tile "list2" 1)")
(action_tile "button2" "(mode_tile "list1" 1)")
运行提示错误:参数太多
[zark]虚心请教 19:13:32
我找一下。因为我现在需要要符号或函数转化成字符
[VBALISPER]恐龙 19:13:51
我也不想转成数字啊.1.0 2.3 3.0这样的字符串,怎么取得第一个数呢?
我用的是read取得的.就自动变成数字了.
[zark]虚心请教 19:15:01
[qqimg]201308/{952D08A4-ECFA-BF64-E1B6-88CBDB749FE1}.jpg[/qqimg]
[啵浪鼓] 19:16:07
你从对话框里提取出来是怎样的组合,发出来看
[xzz007][xzz007]lisp编程 19:16:13
vl-princ-to-string
[VBALISPER]恐龙 19:17:48
终于对了.就是这个.谢谢各位
[VBALISPER]恐龙 19:18:25
这个比rtos好用点啊.输入什么,出来什么.
[zark]虚心请教 19:18:44
(defun Gstr (F /)
  (vl-princ-to-string (quote F))
  )

(Gstr setq)/="setq"
这个返回"F",不懂怎么改进一下能返回setq
[VBALISPER]恐龙 19:19:06
还是不对.
[VBALISPER]恐龙 19:19:59
命令:  EE
指定文字标注的位置 输入的是1.20 2.30 3.02,写出来又成了1.2了.
1.2
1.20 2.30 3.02
[VBALISPER]恐龙 19:20:51
1.0的就对   1.20 这样又不对.
[啵浪鼓] 19:22:33
搞不懂怎么提取的,如果不行,用字长控制rots的小数位的取舍
用strlen计算数字长度
用strlen计算文本长度
[VBALISPER]恐龙 19:23:28
换个问法吧.怎么取得字符串   "1.0 2.3 2.9"  这样的第一个数
难道是求第一个空格的位置,然后来求得?
[啵浪鼓] 19:24:28
是的
[VBALISPER]恐龙 19:24:37
不确定第一位数是几位小数.有可能是1.0,也可能是1.20
[xzz007][xzz007]lisp编程 19:25:34
用这个函数vl-princ-to-string
[VBALISPER]恐龙 19:25:44
用了.
[zark]虚心请教 19:25:56
[qqimg]201308/{02B5CD8A-20A1-BC45-5490-2B165FC64413}.jpg[/qqimg]
[VBALISPER]恐龙 19:26:13
1.0的就对,返回1.0字符   1.20 这样又不对.返回1.2字符
[VBALISPER]恐龙 19:27:39
vl-string-search搜索空格位置,如果有多个,返回第几个空格的位置呢?
[啵浪鼓] 19:27:51
(substr "1.0 2.3 2.9" 1 (vl-string-search " " "1.0 2.3 2.9"))
用空格查找,分三次
[VBALISPER]恐龙 19:28:27
为什么要分三次呢?
[VBALISPER]恐龙 19:28:58
vl-string-search搜索"空格"位置,如果有多个"空格",返回第几个空格的位置呢?
[VBALISPER]恐龙 19:30:25
好象是返回第1次出现的位置哈
那就正合题意了.
[csc123456]顽强 19:31:28
搞定了吗
[VBALISPER]恐龙 19:35:33
正在搞,应该能搞定了.
命令: (vl-string-search " " "1.0 2.3 2.9") 3
就是先搜索空格,然后取子串.不去转成数字
[csc123456]顽强 19:38:15
根据返回的数值取字符
[lisp-study]jun 19:39:34
字符串转表
[啵浪鼓] 19:39:42
命令: (lst-str "1.0 2.000 3.23 4.05")
("1.0" "2.000" "3.23" "4.05")
[pzweng][pzweng]路人 19:40:06
这么复杂?
[lisp-study]jun 19:40:55
仅仅是数字的话可以不这么复杂
[啵浪鼓] 19:41:33
方法很多,看怎么取舍
[啵浪鼓] 19:42:10
谁帮我看看这个啊,一天了没有人留个芳名啥的 
删除表中重复数据,保留图元名,并统计表中相同数量
http://bbs.mjtd.com/thread-107370-1-1.html
[lisp-study]jun 19:43:14
[qqimg]201308/{6BFB631F-E847-969E-47C5-B1551BF4A921}.jpg[/qqimg]
就是你的那个分类?
[啵浪鼓] 19:45:32
不是,这个是恐龙的,上面那个贴子里的还没有解决,找不到方法
[csc123456]顽强 19:45:36
[qqimg]201308/{C92F9649-4758-D7B8-4ED0-4EFBF39F73E7}.jpg[/qqimg]
 楼主| 发表于 2013-8-29 19:59:40 | 显示全部楼层
[lisp-study]jun 19:59:40
[qqimg]201308/{D3842839-B472-338A-592E-6C719608E039}.jpg[/qqimg]图元名后面有个空格 表操作会引起错误
[啵浪鼓] 20:00:17
那个图元名格式就是这样,没办法呀!
[lisp-study]jun 20:00:33
("1" "11.000") )你这个表里实际上有三个对象
[vormittag]桔子 20:00:38
图元名不是自己输入的吧
[啵浪鼓] 20:00:48
[qqimg]201308/{D18023CE-89FC-85CC-5401-D0D20E3B1094}.jpg[/qqimg]
DXF组码
[lisp-study]jun 20:00:54
获得的应该可以
[啵浪鼓] 20:01:23
是获得的图元相当句柄啥的
是图元非文字组合
[lisp-study]jun 20:02:59
[qqimg]201308/{2181B5E5-02BC-E3DC-4B71-48FF7F0AD9C7}.jpg[/qqimg]
[pzweng][pzweng]路人 20:03:05
我去看看
[啵浪鼓] 20:04:06
看了jun的返回值,好像解开了
[lisp-study]jun 20:04:43
[lisp-study]jun 20:05:27
你这个图元名是干啥用的嘛
[啵浪鼓] 20:06:12
有点问题,返回的部份应该是
((("1" "11.000") . 2  图元名)
1,缺少数提的统计
2,2个图元免与表成一个组表,现在好像所以有全了一个组表
[啵浪鼓] 20:06:42
就是图元,方便后面知道哪几个图元对应这组数字的
[lisp-study]jun 20:07:55
你的意思是文字内容一样的放在一起嘛 对不?
[啵浪鼓] 20:08:22
[qqimg]201308/{0DAC655B-B540-170A-023C-DEDEA83598A5}.jpg[/qqimg]
[VBALISPER]恐龙 20:09:02
谢谢.(setq kgwz (vl-string-search " " st));搜索第一个空格的位置
  (setq str (substr st 1 kgwz))这样就可以了.
[pzweng][pzweng]路人 20:10:43
恐龙正解
[啵浪鼓] 20:11:19
[qqimg]201308/{6A1AEDDC-0DD5-C2B0-5C96-AADC8AC0AE81}.jpg[/qqimg]
其实是想获得相同图元的数量,如上图所示,所有A孔2个,输出注解,并在2个圆上打上A,然后3个B...
[pzweng][pzweng]路人 20:11:41
那更简单了
[lisp-study]jun 20:12:13
这个简单多了
[pzweng][pzweng]路人 20:12:32
先统计相同圆的数量
[啵浪鼓] 20:12:35
所以想把表里的内容与图元绑定一块,删重 统计数量 在每个图元上输出对应文字
[pzweng][pzweng]路人 20:12:56
然后一个个对圆进行遍历
[啵浪鼓] 20:14:40
相同数量圆的表有了,但图元未与表对应,到输出文字时无法获得当前圆与A还是B匹配了,有点犯迷糊啊
[pzweng][pzweng]路人 20:15:28
比如你得到了10种规格的圆
[lisp-study]jun 20:15:35
就是统计数量 然后把类型写在圆上撒
[pzweng][pzweng]路人 20:15:52
分别对10种规格的圆进行编号
[lisp-study]jun 20:16:01
[pzweng][pzweng]路人 20:16:03
然后遍历圆
得到表是这样的
(("A" 10) ("B" 20) ....)
[啵浪鼓] 20:17:26
哦,是圆先编号,最后输出表格,是啊,我反过来了
[pzweng][pzweng]路人 20:17:37
然后对圆遍历,如果圆直径等于 10 那么就写A
表应该是这样的
((10 "A") (20 "B"...)
assoc 直径 lst 就可以得到编号
[啵浪鼓] 20:18:41
我再想想,好像这个还是有点行不动,因为这个圆并非简单的圆,有1000 . 的扩展数据,而且老长,很是麻烦的
[pzweng][pzweng]路人 20:19:02
思路是这样的
[lisp-study]jun 20:19:24
扩展数据干啥的嘛
[亮]123379932 20:20:06
[pzweng][pzweng]路人 20:20:45
数据是干什么用的
[啵浪鼓] 20:20:56
返回的值
(("my_tag" (1000 . "NAME") (1000 . "1 posBPIN  10.000   0.000   0.005 ..   0.00 
") (1000 . "ART_MARK") (1000 . "")))
[lisp-study]jun 20:21:30
关键是你要不要用这个数据
[啵浪鼓] 20:21:32
里面有些专用数据对应的标准件格式,这扩展数据还不能改动,稍一改而动全身,纠结啊
必须要用这些数据的哇,不然也不会这样的结构写了
[lisp-study]jun 20:23:10
就你发的那个图来讲好像不需要
[啵浪鼓] 20:24:15
jun你刚不是弄的差不多了吗,就差一个统计和分组,做不下去了吗?
[啵浪鼓] 20:25:23
我觉得表跟图元绑定,减少出差率的产生,这样更为恰当吧?
[啵浪鼓] 20:26:12
扩展数据我也是第一次弄,感觉挺麻烦的
 楼主| 发表于 2013-8-29 21:00:32 | 显示全部楼层
[浮世小半生]X 21:00:32
 楼主| 发表于 2013-8-29 21:25:40 | 显示全部楼层
[linshiyin2]大地 21:25:40
各位同学,我想付费开发个程序啊,谁来看看
[kewyst]………… 21:28:21
啥 程序
[linshiyin2]大地 21:28:54
马上截个图
[lisp-study]jun 21:29:24
[qqimg]201308/{F84BB76F-C930-41C8-0FA8-929C6174AF7C}.gif[/qqimg]
[lisp-study]jun 21:38:33
刚才那个有问题
这个才是对的
[qqimg]201308/{F0613372-8B66-0B63-CCC9-11FBD18D69A5}.gif[/qqimg]
[pzweng][pzweng]路人 21:44:54
 楼主| 发表于 2013-8-29 23:03:36 | 显示全部楼层
[linshiyin2]大地 23:03:36
各位,怎么样根据lisp一个表在cad里绘制一个一样内容的表
[linshiyin2]大地 23:04:11
相当于一个通用程序了,只要是个表就能绘制出来这个cad表
有没有现成的程序,不用自己写了
[004][wkq004]地形图 23:10:55
有点晕
[linshiyin2]大地 23:11:10
;;84.17 [功能] 读文本文件到表 (快于 AutoLISP read-line函数)
[linshiyin2]大地 23:12:06
一个表,根据这个表,在cad里直接绘制一个表格每个格子放置这个表的对应位置的内容
[004][wkq004]地形图 23:13:06
哦,明白了.
能快于 read-line函数?
[linshiyin2]大地 23:13:22
不是,那个是另一个函数,
[linshiyin2]大地 23:13:53
我要的是
(1.0 0.0 0.0)
(1.0 0.0 0.0)
(1.0 0.0 0.0)
[pzweng][pzweng]路人 23:15:02
写入多行文字嘛
[linshiyin2]大地 23:17:18
[qqimg]201308/{CAADC864-6420-804A-6BBC-C495B2EDD4E4}.jpg[/qqimg]
刚才那个表绘制成这个表就ok了
通用函数
[pzweng][pzweng]路人 23:18:26
自己写一个也不难呀
[linshiyin2]大地 23:18:38
[qqimg]201308/{B6E1813F-149B-C5C3-B964-C8A907A68CC4}.jpg[/qqimg]
哥哥我不大会写啊
大神们来一个,
刮个胡子先
[pzweng][pzweng]路人 23:19:25
体力活啊
费时间而已
[004][wkq004]地形图 23:22:05
原来是这样啊,,发到论坛求程序比较合适.
[linshiyin2]大地 23:22:34
哪位大神来一个,最好能根据表内字体长度判断网格宽度
[linshiyin2]大地 23:23:51
好我去论坛发一下,应该比较简单,要精练的程序,能输入表格(或字体高度)
 楼主| 发表于 2013-8-29 23:51:05 | 显示全部楼层
[linshiyin2]大地 23:51:05
大哥,你有没有看过群共享?里面有很多宝贝哦。
那个刚传上去还剩三天的Excel2CAD.lsp就是你说的程序啊
赶紧抢下吧,晚了就没了。
[NewB]长衫罩子龙 23:51:37
[qqimg]201308/{8032197E-CA03-766E-50A2-A398E0F74C04}.jpg[/qqimg]
[linshiyin2]大地 23:52:47
g大版的这个用过,不大对我的口味,
[linshiyin2]大地 23:53:30
论坛里还有个cad2excel的倒是非常简单
[NewB]长衫罩子龙 23:54:19
Gu_xl的适合量大的excel数据
[linshiyin2]大地 23:54:57
g版可以参考一下那个真实表格turetable
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-6 03:45 , Processed in 0.211284 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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