明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2646|回复: 13

[LISP群(1)] 2013-11-13 明经 AutoLISP 编程(102918348) 群聊记录:上图原来是个圈

 关闭 [复制链接]
发表于 2013-11-13 08:36:44 | 显示全部楼层 |阅读模式
[onandoff][onandoff]自然 08:36:44
上图原来是个圈
[野狼谷]笨鸟 08:39:52
(setq Arc_Number 1)
(set (read(strcat "oint_Arc_" (itoa Arc_Number))) "10")
set原来可以这样用
[野狼谷]笨鸟 08:43:07
连lambda都省了
[野狼谷]笨鸟 08:43:51
有了这个,对于调试给函数入口赋值方便多了
[野狼谷]笨鸟 08:45:10
看来lisp里还有很多宝贝没有挖掘出来
[野狼谷]笨鸟 08:45:45
这是我写的给不固定变量名赋值的办法
Point_Arc_1,Point_Arc_2,.。。。Point_Arc_11,
对于画点特别方便
[野狼谷]笨鸟 08:47:23
昨天一直用(apply (READ , (EVAL(READ都没有搞成功,突然想起了set,早上起来试验,一次成功!
[pzweng][pzweng]路人 08:48:04
你在做无用功
[mn1k]乐PAD 08:48:11
学习了
[野狼谷]笨鸟 08:48:37
看到没?跟我一样菜鸟很多的,对他们有帮助就行
[pzweng][pzweng]路人 08:49:19
你在明经混了不少时间,还是这种水平
[野狼谷]笨鸟 08:50:02
[pzweng][pzweng]路人 08:50:11
[野狼谷]笨鸟 08:50:16
不着急
这叫接地气
 楼主| 发表于 2013-11-13 09:57:16 | 显示全部楼层
[野狼谷]笨鸟 09:57:16
画波浪形的程序:
(setq oint_List '((2000 0 0.0) (2856 0 0.0) (2720 -136 0.0) (2584 0 0.0) (2448 136 0.0) (2312 0 0.0) (2176 -136 0.0) (2040 0 0.0) (1904 136 0.0) (1768 0 0.0) (1632 -136 0.0) (1496 0 0.0) (1360 136 0.0) (1224 0 0.0) (1088 -136 0.0) (952 0 0.0) (816 136 0.0) (680 0 0.0) (544 -136 0.0) (408 0 0.0) (272 136 0.0)) 

求助,我生成了波浪线所需要的点坐标列表,如何用
 (command "LINE" 把他画出来?
 楼主| 发表于 2013-11-13 10:07:29 | 显示全部楼层
[野狼谷]笨鸟 10:07:29
(command "LINE"  1  "A"   "S" )
(mapcar 'command  oint_List)
(command )
 楼主| 发表于 2013-11-13 10:24:09 | 显示全部楼层
[cie0588][cie0588] 10:24:09
(defun c:tt ()
  (setq    oint_List
     '((2000 0 0.0)
       (2856 0 0.0)
       (2720 -136 0.0)
       (2584 0 0.0)
       (2448 136 0.0)
       (2312 0 0.0)
       (2176 -136 0.0)
       (2040 0 0.0)
       (1904 136 0.0)
       (1768 0 0.0)
       (1632 -136 0.0)
       (1496 0 0.0)
       (1360 136 0.0)
       (1224 0 0.0)
       (1088 -136 0.0)
       (952 0 0.0)
       (816 136 0.0)
       (680 0 0.0)
       (544 -136 0.0)
       (408 0 0.0)
       (272 136 0.0)
      )
  )
  (setq    nlst (vlax-SafeArray-Fill
           (vlax-Make-SafeArray
         vlax-vbDouble
         (cons 0
               (- (length (apply 'append point_list)) 1)
         )
           )
           (apply 'append point_list)
         )
  )
  (setq
    vlen (Vlax-Invoke-Method
       (Vlax-Get (Vlax-Get (Vlax-Get-Acad-Object) 'ActiveDocument)
             'ModelSpace
       )
       'AddPolyline
       nlst
     )
  )
  (Vlax-Put-Property vlen 'Type 2)
)
 楼主| 发表于 2013-11-13 10:34:35 | 显示全部楼层
[野狼谷]笨鸟 10:34:35
看看,一夜之间,水平是不是长进不少??
[cie0588][cie0588] 10:34:46
用循环的方法画弧再连接起来也可以的啊
[cie0588][cie0588] 10:35:57
[qqimg]201311/{5EA300C2-D416-59DD-6FB8-FF329890CE87}.jpg[/qqimg]
通过改凸度是可以画这样的多线段的。。
[野狼谷]笨鸟 10:36:47
不想再折腾了,我已经求出这些点了,就是一个连线的问题了
[qqimg]201311/{B034A096-138A-C0BA-62B9-2C9BA6CBBF4F}.jpg[/qqimg]
昨天用呆呆的代码生成的曲线
美吧???
[cie0588][cie0588] 10:38:02
方法是可以变的啊。不要专注一个command
[野狼谷]笨鸟 10:39:45
Point_List已经有了
用entmake也成啊
[cie0588][cie0588] 10:41:21
我知道啊。
第一种在点列表里面循环画朝上、朝下的圆弧。最后2端的直线,再连接起来。
第二种就是把点列表生成多线段,再改凸度,增加圆弧。
方法很多的啊
[野狼谷]笨鸟 10:41:49
求完整的实现?
[cie0588][cie0588] 10:42:10
你把点列表给我
[野狼谷]笨鸟 10:42:15
(entmake  ((-1 . ) (0 . "LWPOLYLINE") (330 . ) (5 . 
"1048") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . 
"AcDbPolyline") (90 . 9) (70 . 1) (43 . 0.0) (38 . 0.0) (39 . 0.0) (10 0.0 0.0) 
(40 . 0.0) (41 . 0.0) (42 . 0.0) (10 48.3179 158.158) (40 . 0.0) (41 . 0.0) (42 
. 0.0) (10 157.426 157.566) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 245.186 
108.983) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 261.79 -3.58645) (40 . 0.0) (41 . 
0.0) (42 . 0.0) (10 152.089 87.0616) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 
174.029 13.0027) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 98.7209 60.9928) (40 . 
0.0) (41 . 0.0) (42 . 0.0) (10 147.345 -12.4736) (40 . 0.0) (41 . 0.0) (42 . 
0.0) (210 0.0 0.0 1.0))  )
这是不死猫发的
[野狼谷]笨鸟 10:42:56
下面是我的点表
[pzweng][pzweng]路人 10:45:00
你要知道获取点表会把圆弧中点也获取了
[野狼谷]笨鸟 10:45:55
我这个就是含了圆弧中点的点表
[pzweng][pzweng]路人 10:47:14
我写个简单的例子给你
我不用圆弧中点
[野狼谷]笨鸟 10:56:05
[野狼谷]笨鸟 10:58:09
这是个什么理论呢?
程序怎么知道圆弧反向呢
10 0 0) (15 5 0)
只要第一个就行了
[pzweng][pzweng]路人 10:59:39
你自己怎么不想想呢,就知道使劲的问
(15 5 0) 这个确定弧的半径
[野狼谷]笨鸟 10:59:53
[pzweng][pzweng]路人 11:00:09
如果不用这个表就要输入半径
[野狼谷]笨鸟 11:00:13
思路不一样,
[野狼谷]笨鸟 11:00:50
要理解跳出自己的思维,去理解别人的程序,有时候会受局限
[NJZX05]剑无锋 11:01:09
昨天一朋友问有没有CADMAP的资料,我忘记了书名,回去查了一下叫《Autodesk 系列产品开发培训教程》
[pzweng][pzweng]路人 11:02:44
你不说教了?
[qqimg]201311/{EC6BA3F1-CB8E-9340-1ECF-E0A856CFB8E0}.jpg[/qqimg]
[NJZX05]剑无锋 11:03:07
呵呵,我什么时候说教了
[野狼谷]笨鸟 11:03:58
路人,你的代码对与我那种方式生成的point_list 也有效的,
应该还是属于基于A S 以点控制弧度的办法
[NJZX05]剑无锋 11:04:43
路人的代码就是强啊
[野狼谷]笨鸟 11:05:10
已经无法用人类语言来夸他了
[pzweng][pzweng]路人 11:05:26
我只是稍微想了下,你是想都没想,一开QQ就来问
[野狼谷]笨鸟 11:05:44
[野狼谷]笨鸟 11:06:29
我都研究了这些了,就差最后一句,以为很简单呢
我都研究了这些了,就差最后一句,以为很简单呢
没想到还要花这些代码才能command pline
[ucuc2003][ucuc2003]易水 11:09:48
我一同事发了份图纸,内容看不到了,怎么回事?
[野狼谷]笨鸟 11:11:07
版本??
[kwok][ww5w]行舟月下 11:11:09
是不是天正的图,或是你版本太低
[pzweng][pzweng]路人 11:11:13
天正的咯
[野狼谷]笨鸟 11:11:32
加密了吧
 楼主| 发表于 2013-11-13 11:32:59 | 显示全部楼层
[NJZX05]剑无锋 11:32:59
是加密了吗?我前两天在路人的帮助下,刚写了个解密的,如果是加密的应该能解决
需要吗
 楼主| 发表于 2013-11-13 11:58:16 | 显示全部楼层
[yyyyyyy234][yyyyyyy234]neo 11:58:16
各位前辈,请教一个问题
[yyyyyyy234][yyyyyyy234]neo 11:59:14
小弟是visual lisp初学者,现在编写了一个简单的dcl,在visual lisp编辑器中,工具-界面工具-预览编辑器中的dcl中是可以显示的,然后我在写了一个(dufun )函数,希望能在cad操作界面弹出对话框,但是就是无法在cad普通操作界面中弹出我所写的一个对话框。
   请前辈指点迷津。
谢谢
[流动的清泉][do it] 12:01:55
加载dcl的文件路径试下吧!
[浮世小半生]X 12:02:15
程序都没有发出来,上帝给你指点
[yyyyyyy234][yyyyyyy234]neo 12:02:20
[qqimg]201311/{E73F64B0-E0FE-D2B6-8875-03FAF648AFB9}.jpg[/qqimg]
我rect.dcl是放在d盘的
[qqimg]201311/{0F39FC13-9350-0E21-3C12-0E9BD3B6870C}.jpg[/qqimg]
谢谢
[pzweng][pzweng]路人 12:04:26
要放在支持搜索的路径
[yyyyyyy234][yyyyyyy234]neo 12:04:27
[qqimg]201311/{F6737F3B-676F-8F4D-93AE-6E577E978BE9}.jpg[/qqimg]
恩,我试试
[浮世小半生]X 12:05:02
控制台?
[yyyyyyy234][yyyyyyy234]neo 12:05:33
[qqimg]201311/{5EA461CE-1D17-DBF2-3B1C-13F7CDCAAC8C}.jpg[/qqimg]
在这个里面可以弹出,但是我在cad的命令行就是弹不出来
[浮世小半生]X 12:07:10
op设置路径了没有
[yyyyyyy234][yyyyyyy234]neo 12:08:41
没有的,请问是在这个里面设置吗,前辈?[qqimg]201311/{3218CE88-666B-0074-C73B-323F2EC60008}.jpg[/qqimg]
[浮世小半生]X 12:09:51
[yyyyyyy234][yyyyyyy234]neo 12:10:03
好的,我试试
谢谢
[yyyyyyy234][yyyyyyy234]neo 12:12:45
[qqimg]201311/{2720A0BB-1E2D-83EC-DC0E-66B58F8CC029}.jpg[/qqimg]
出现空值的提示
 楼主| 发表于 2013-11-13 13:24:43 | 显示全部楼层
[flytoday]过^-^客 13:24:43
[image={EF9AD405-9297-AC0A-E1E9-B227B43719F3}.0]
 楼主| 发表于 2013-11-13 13:37:00 | 显示全部楼层
[water_system][mingdi]shenshen 13:37:00
[qqimg]201311/{FC86A3AF-A2F6-F004-141D-87AF4605BA3F}.jpg[/qqimg]
孔位很多的图 如何标注比较清楚明白呢?
[pzweng][pzweng]路人 13:37:48
标记符号
[water_system][mingdi]shenshen 13:38:21
详解?
[【KAIXIN】] [【KAIXIN】]炫翔 13:38:22
规律化
[onandoff][onandoff]自然 13:38:31
左右对称
[【KAIXIN】] [【KAIXIN】]炫翔 13:38:35
统一化
简化化
[water_system][mingdi]shenshen 13:39:26
就是说图就这么小了 孔位很多

怎么标注 让加工的朋友比较明白

然后看起来很清楚明了的方法
[pzweng][pzweng]路人 13:40:59
这个都是对称的
[water_system][mingdi]shenshen 13:41:29
差不多
[pzweng][pzweng]路人 13:41:44
还要基准面
[water_system][mingdi]shenshen 13:42:15
行吧 有没有标注方面的资料 大家?
[pzweng][pzweng]路人 13:42:49
机械制图
[water_system][mingdi]shenshen 13:43:24
差不多
全局
[shasha488][shasha488]nIhaO 13:43:39
全局的
[water_system][mingdi]shenshen 13:44:10
functionname(/ local)
[yarp]潜水 13:44:10
那有没有办法把它变为局部的呢?
[yarp]潜水 13:44:49
因为我的这个 ‘abc 是从 (read "abc")来的。
(set (read "abc") 123456)
[vormittag]桔子 13:45:05
放在 / 后面就是局部的
[shasha488][shasha488]nIhaO 13:45:22
同上
[water_system][mingdi]shenshen 13:45:46
标注问题??Hi。。。
[yarp]潜水 13:45:49
我也不知道 (read 后面的会是什么 。所以也就不可能提前放在 /的后面了。
[vormittag]桔子 13:46:33
程序最后赋空值
[yarp]潜水 13:47:42
这个解决方案也不完美。可能在这个函数外面它又是另外的值,你把它赋空了,影响了别的函数的变量 了。
头大啊。
[shasha488][shasha488]nIhaO 13:48:24
(set (read "abc") 123456)
你这个函数有什么意义呢
[yarp]潜水 13:48:58
实现某种形式的闭包功能。
[yarp]潜水 13:49:35
想把某个变量定义空间的函数附在这个变量上。
[pzweng][pzweng]路人 13:50:45
(setq abc "xyz")
(set (read (eval abc)) 123456)
净干让人不明白的事
[yarp]潜水 13:51:29
[shasha488][shasha488]nIhaO 13:53:11
(setq abc 123456)
不就行了
[yarp]潜水 13:54:15
你还是不明白我的心------
[shasha488][shasha488]nIhaO 13:55:04
可能我写的代码都比较简单
eval函数还没有用过
[q3_2006]q2 13:55:48
不是别人不明白,是你没有准确表达心“心意”
[@406695843,@[yarp]潜水]
[pzweng][pzweng]路人 13:56:04
没表白
[yarp]潜水 13:57:25
嗯,反正我知道这样不行就行了。
[shasha488][shasha488]nIhaO 13:57:36
[yarp]潜水 14:00:01
想到了有一个办法可以解决。在set前看这个符号是否绑定了值,把这个值缓存,函数退出时再将这个值缓存回来。
[shasha488][shasha488]nIhaO 14:00:19
有没有人写过这样的程序:求两个相交圆的交点,两个圆的圆心和半径已知
[shasha488][shasha488]nIhaO 14:01:11
[face140.gif]
[q3_2006]q2 14:01:39
vla-intersectwith
[pzweng][pzweng]路人 14:01:43
求交点?
[shasha488][shasha488]nIhaO 14:01:57
[shasha488][shasha488]nIhaO 14:02:42
[@1434177703,@[q3_2006]q2] vla-intersectwith,这个函数怎么用
[pzweng][pzweng]路人 14:03:05
你查一下手册
[q3_2006]q2 14:04:28
(vla-IntersectWith obj obj acExtendNone)
[shasha488][shasha488]nIhaO 14:04:57
[qqimg]201311/{3E17F425-DD57-732C-F68E-50123E5193ED}.jpg[/qqimg]
没有查到
[pzweng][pzweng]路人 14:05:29
查VBA的方法
[q3_2006]q2 14:05:29
函数库查询辞典。。。300页
[pzweng][pzweng]路人 14:05:36
不是在这里查
RetVal = object.IntersectWith(IntersectObject, ExtendOption)
[q3_2006]q2 14:05:52
AutoCAD LISP VLISP函数库查询辞典
[shasha488][shasha488]nIhaO 14:06:00
哦,知道了
[pzweng][pzweng]路人 14:06:11
这个你有吗
是PDF的吗
[shasha488][shasha488]nIhaO 14:06:51
很少用
一般都是用vlisp函数说明
[q3_2006]q2 14:07:24
这个
300页
[shasha488][shasha488]nIhaO 14:07:42
[qqimg]201311/{0A74760D-A55F-72A9-B2A5-2F1D7C78B1A3}.jpg[/qqimg]
 楼主| 发表于 2013-11-13 14:29:44 | 显示全部楼层
[mmh1][mmh1]漫步地球 14:29:44
dcl里vector_image能画标注吗?
[pzweng][pzweng]路人 14:35:13
不可以吧
好象只能画矢量线
[mmh1][mmh1]漫步地球 14:38:39
难道只能带上sld了,sld又加不进vlx里
[mmh1][mmh1]漫步地球 14:40:32
难道要先写个子程序,画出图,带上标注,然后导出成sld?
[q3_2006]q2 14:41:50
这个似乎更简单
[mmh1][mmh1]漫步地球 14:43:35
此想法可行?
[LC100]建筑设计 14:45:14
;增强格式刷
(defun C:gss ( / ss n e layer)
  (command "undo" "be")
  (prompt " 增强格式刷,选择源对象:")
  (setq ss (ssget ":S"))
  (setq e (ssname  ss  0));得到选择集内第n个对象的图元名
  (setq lst (entget e));得到这个对象的图元表
  (setq ss_lb (cdr (assoc 0 lst)));对象类型
  (setq p1 (cdr (assoc 10 lst)));坐标
  (prompt " 选择目标对象或:")
  (setq ss (ssget))
  (if (and (/= ss nil) (/= p1 nil))
  (progn
  (setq n 0);序号的初值为0
  (repeat (sslength ss);重复执行,执行的次数等于所选对象的个数  
  (setq ee (ssname  ss  n));得到选择集内第n个对象的图元名
  (setq lst (entget ee));得到这个对象的图元表
  (setq p2 (cdr (assoc 10 lst)));从图元表中提取各点坐标
  (command "copy" e "" "non" p1 "non" p2)
  (command "erase" ee "")
  (setq n (1+ n))
  );repeat
  );progn
    (princ "复制基点不存在,无法操作.")
    );if
  (command "undo" "e")
  (princ)
)
那位高手看看这代码,操作对象过多的时候就出错了。
[LC100]建筑设计 14:46:17
不是那种致命错误,是那些不按顺序来操作了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-23 13:14 , Processed in 0.250853 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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