明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2221|回复: 12

[LISP群(1)] 2013-10-09 明经 AutoLISP 编程(102918348) 群聊记录:cad 如何把tab的空格,替换为普通空格?

 关闭 [复制链接]
发表于 2013-10-9 09:09 | 显示全部楼层 |阅读模式
[mmh1][mmh1]漫步地球 09:09:37
cad 如何把tab的空格,替换为普通空格?
 楼主| 发表于 2013-10-9 09:22 | 显示全部楼层
[阿然][阿然] 09:22:38
[qqimg]201310/{7D656BD5-EC64-57FA-0B06-4705F5186886}.jpg[/qqimg]
[阿然][阿然] 09:28:41
[qqimg]201310/{863DD69B-2B21-48FF-D02E-A8D79D207C8F}.jpg[/qqimg]这样的要怎么炸开?
[pzweng][pzweng]路人 09:28:58
改组码
[阿然][阿然] 09:29:09
具体点
[pzweng][pzweng]路人 09:29:11
我这里有个程序
[阿然][阿然] 09:29:15
发过来
[pzweng][pzweng]路人 09:30:19
我找找
不知道放哪个文件里了
[pzweng][pzweng]路人 09:31:40
(DEFUN C:exb ()
(setvar "cmdecho" 0)
(SETQ STM (car (ENTSEL " 点取多重块")))
(while stm
(setq e (entget stm))
(setq stlx (cdr (assoc 0 e)))
(if (= stlx "INSERT")
(PROGN
(setq r_zm70 (assoc 70 e))
(setq c_zm71 (assoc 71 e))
(setq r_dist_zm44 (assoc 44 e))
(setq c_dist_zm45 (assoc 45 e))
(setq e (subst (cons 44 0) r_dist_zm44 e))
(setq e (subst (cons 45 0) c_dist_zm45 e))
(setq e (subst (cons 70 0) r_zm70 e))
(setq e (subst (cons 71 0) c_zm71 e))
(setq e (subst (list 100"AcDbBlockReference") (list 100"AcDbMInsertBlock") e))
(entmake e)
(entdel stm)
))
(SETQ STM (car (ENTSEL " 点取下一多重块")))
)
(setvar "cmdecho" 1)
)
[阿然][阿然] 09:33:19
可以用
[pzweng][pzweng]路人 09:35:16
放假放的爽吧
[阿然][阿然] 09:35:47
还行
 楼主| 发表于 2013-10-9 10:25 | 显示全部楼层
[不死猫][nonsmall]不死猫 10:25:12
这么热闹
[Sign88]宁波标志 10:30:51
lisp 里修改表某一项的功能要怎么做
重新组合的方式太费劲了, 我的程序需要频繁修改表中某一项的值   哪位有没有好方法?
[vormittag]桔子 10:32:29
加索引.
[mmh1][mmh1]漫步地球 10:40:57
((-1 . ) (0 . "MTEXT") (330 . ) (5 . "5795D") 
(100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "编号") (370 . 5) (100 . 
"AcDbMText") (10 245557.0 -40311.7 8.68502e-011) (40 . 80.0) (41 . 0.0) (46 . 
0.0) (71 . 1) (72 . 5) (1 . "A18  1件") (7 . "Standard") (210 0.0 0.0 1.0) (11 
1.0 0.0 0.0) (42 . 449.333) (43 . 104.889) (50 . 0.0) (73 . 1) (44 . 1.0))

炸开就碎了,汗啊,找不到原因
[mmh1][mmh1]漫步地球 10:45:18
明白了,st里面没开大字体。。。,汗
 楼主| 发表于 2013-10-9 12:13 | 显示全部楼层
[wh89103](阿天) 12:13:15
双面双曲的时候如何做才能减少误差
[wh89103](阿天) 12:16:19
[qqimg]201310/{84CC1263-8F4E-6570-0295-C5FC7E5A09BE}.jpg[/qqimg]
前面这一段弧如何减少误差
[vormittag]桔子 12:17:57
变换规则是啥?
 楼主| 发表于 2013-10-9 13:32 | 显示全部楼层
[pzweng][pzweng]路人 13:32:12
(vla-sendcommand mydoc "3darray p   !num 360 y !center_pt ro_pt ")
这里的变量怎么办,以前搞过,忘掉了
 楼主| 发表于 2013-10-9 14:41 | 显示全部楼层
萧邦的夜曲 14:41:07
如何判断是否加载了某种线型,用什么函数
[pzweng][pzweng]路人 14:41:33
tblsearch
[雨的节奏][雨的节奏] 14:41:34
[qqimg]201310/{717DE788-B716-9354-2899-DFBE77036CEB}.jpg[/qqimg]
[yifei]绝然 14:45:11
怎么批量修改长度为L的线长为L+A
[pzweng][pzweng]路人 14:45:14
(vla-sendcommand mydoc "3darray
3darray这个命令为什么用vla-sendcommand不行呀
[cie0588][cie0588] 14:46:28
双引号里面的最后面有个空格。
[pzweng][pzweng]路人 14:52:17
不是这个原因
就是不行
[cie0588][cie0588] 14:52:36
那就不清楚了。
[pzweng][pzweng]路人 14:52:40
(prompt "  please select obj: ")
  (setq ss (ssget))
  (setq num (getint "  please enter array quantity: "))
  (setq center_pt (getpoint "  lease enter array center point: ")) ;rotation axis
  (setq ro_pt (getpoint "  lease enter rotation axis next point: "))
  (vla-sendcommand mydoc "3darray (setq ss ss)   (setq num num) 360 y (setq center_pt center_pt)  (setq ro_pt ro_pt) ")
[pzweng][pzweng]路人 14:54:00
提示:无法重复进入 LISP
[hehoubin][hehoubin]哈维斯 14:54:23
不懂
[英雄无敌]英雄 14:55:38
既然是用lsp编程,为什么要用vla-sendcommand呢?
[pzweng][pzweng]路人 14:55:47
命令: 3darray
选择对象: !ss
无法重复进入 LISP。
[pzweng][pzweng]路人 14:57:52
有Rotate3D这个方法
害我一直瞎摸索
[pzweng][pzweng]路人 14:58:49
不对
不是阵列
萧邦的夜曲 14:59:20
如何判断是否加载了某种线型,用什么函数,比如看文档中是否加载了HIDDEN2线型,应该怎么写
[英雄无敌]英雄 15:00:07
你用vl-cmdf不能实现吗?
[pzweng][pzweng]路人 15:00:12
说了用tblsearch
不能
我早试过了
[pzweng][pzweng]路人 15:01:59
命令: (vl-cmdf "3darray" ss "" num 360 "y" center_pt ro_pt "") 
未知命令“3DARRAY”。按 F1 查看帮助。

 未知命令“VLIDE”。按 F1 查看帮助。
未知命令“P”。按 F1 查看帮助。
11
360
未知命令“Y”。按 F1 查看帮助。
未知命令“VLIDE”。按 F1 查看帮助。
直接是未知命令
萧邦的夜曲 15:07:06
(tblsearch "linetype" "hidden2")返回是错误啊
[taohuaxiao]非主流 15:07:15
6 86eA1B34020945c5841e6f      50zXVQtndIBiPr6F6fA18B9FB754267BAAFE83DC9F5DA4FA68.jpgA
[pzweng][pzweng]路人 15:10:10
(tblsearch "ltype" "center")
萧邦的夜曲 15:12:13
谢谢
[kwok][ww5w]行舟月下 15:16:00
dimscale给锁定了,不能改比例是什么原因
[qqimg]201310/{65AA97B6-8389-8648-DACA-3856CE715AEC}.jpg[/qqimg]
[英雄无敌]英雄 15:23:14
3darray如果不能用vl-cmdf,那发送命令的时候,可能要先将变量变为常量才行
[英雄无敌]英雄 15:24:20
应该可以先将变量都变成字符,再发送到cad的命令窗口
 楼主| 发表于 2013-10-9 15:37 | 显示全部楼层
[taohuaxiao]非主流 15:37:52
6 86eA1B73370f61c5841e6f      50nQnWkg4hcEbSexcdA43E9931D979AC938A29365C62AADDCD.jpgA
如何把cad的上个表删除啊?
 楼主| 发表于 2013-10-9 15:55 | 显示全部楼层
[Sign88]宁波标志 15:55:14
怎么多了一个表呢?
[英雄无敌]英雄 15:58:59
(defun c:tst ()
  (setq mydoc (vla-get-activedocument (vlax-get-acad-object)))
  (prompt "  please select obj: ")
  (setq ss (ssget))
  (setq num (getint "  please enter array quantity: "))
  (setq center_pt (getpoint "  lease enter array center point: "))
                    ;rotation axis
  (setq ro_pt (getpoint "  lease enter rotation axis next point: "))
  (vla-sendcommand
    mydoc
    (strcat
      "3darray    "
      (rtos num)
      " "
      "360 "
      "y "
      (strcat (rtos (car center_pt))
          ","
          (rtos (cadr center_pt))
          ","
          (rtos (last center_pt))
      )
      " "
      (strcat (rtos (car ro_pt))
          ","
          (rtos (cadr ro_pt))
          ","
          (rtos (last ro_pt))
      )
      " "
    )
  )
)
3darray那个可以这样实现
[pzweng][pzweng]路人 16:00:16
我试试
你的字搞小点
[英雄无敌]英雄 16:00:52
一般不发代码,所以有点大
[pzweng][pzweng]路人 16:01:11
高人啊
可以用了
我的问题是什么
[英雄无敌]英雄 16:01:39
不能重复进去lsp
这是cad本身的问题,谁也改变不了
你只能适应它
[pzweng][pzweng]路人 16:02:41
我没想到用strcat
谢谢
弄了一下午都没撤
[q3_2006]q2 16:03:13
这个字体小了,就看不清了。。[@280212043,@[英雄无敌]英雄]
[英雄无敌]英雄 16:04:03
用vla-command只能是摸拟实际的输入,所以不能再用表达式了吧
[pzweng][pzweng]路人 16:05:43
改成黑体吧
但有的地方可能用表达式
唯独3darray不可以
[英雄无敌]英雄 16:06:24
没有试过
[pzweng][pzweng]路人 16:06:30
我试过画线命令,
画园。,都可以
[英雄无敌]英雄 16:06:54
那个命令不一样
3darray本身就是一个lsp程序
line等是cad的内部命令,可能不一样吧
所以它说不能重复进去lsp
[英雄无敌]英雄 16:08:57
support目录下有3darray这个lsp文件,你如果有时间可以研究一下
[pzweng][pzweng]路人 16:09:40
这个写的不错
我开始以为是用矩阵
[英雄无敌]英雄 16:10:10
不过想看懂可能要费很多时间
[pzweng][pzweng]路人 16:10:21
也不难
用的是ucs命令
[英雄无敌]英雄 16:11:05
如果按照它的方法,你就可以改写3darray了
[pzweng][pzweng]路人 16:11:40
如果写不出来我就得动这个了
现在可以实现了
[LC100]建筑设计 16:17:09
图元替换这个功能有没有?
[LC100]建筑设计 16:17:57
象格式刷一样,一样就把那个图元刷成一模一样的
有没有
 楼主| 发表于 2013-10-9 16:29 | 显示全部楼层
[阿然][阿然] 16:29:02
原来有写过一个
[阿然][阿然] 16:29:35
不过不知道是不是你要的
[pzweng][pzweng]路人 16:30:40
重新插入就是了
[LC100]建筑设计 16:31:50
就是想完全替换
不过坐标肯定是不能按这个的。
[LC100]建筑设计 16:33:09
[qqimg]201310/{2FBC6772-B873-9FAA-25C3-EF2A46F3EE95}.jpg[/qqimg]
[LC100]建筑设计 16:34:36
[阿然]兄弟有吗
[q3_2006]q2 16:36:54
能实现
[阿然][阿然] 16:38:25
我那个对旋转的无效
[LC100]建筑设计 16:39:39
哦。
我的也不是旋转的。发来试试
[LC100]建筑设计 16:40:23
要是能完全替换掉就好了,保留那个原来有坐标就行了。
[阿然][阿然] 16:40:57
今天网络太操蛋了
[LC100]建筑设计 16:41:10
没有啊,很快啊
[OWEN7][qqou7]clever 16:43:22
[qqimg]201310/{CDBD3987-9B65-AFCA-8CCD-CBB8B8E55969}.jpg[/qqimg]
[LC100]建筑设计 16:43:55
开个玩笑而已。
[阿然][阿然] 16:48:47
不一定能满足你的要求,要事先定义图源
[LC100]建筑设计 16:49:10
就象格式刷那样嘛
[阿然][阿然] 16:50:05
我一发图片就断网
等哪下图片能贴了,你自己看看能不能用
[LC100]建筑设计 16:50:48
行。
你可以发到我邮箱嘛
[阿然][阿然] 16:59:29
[qqimg]201310/{4C732D53-D79B-C26D-0896-72C892125EC2}.gif[/qqimg]
[LC100]建筑设计 17:00:25
不是这个东西,这个东西你之前共享过源码了。
[阿然][阿然] 17:00:38
那就没有了
[LC100]建筑设计 17:01:40
比如我图元1是矩形,图元2是圆,   我刷一下就把图元2刷成图元1
我知道怎么搞了。
我直接利用复制的功能来搞。
 楼主| 发表于 2013-10-9 17:19 | 显示全部楼层
[q3_2006]q2 17:19:51
[@215241411,@[LC100]建筑设计]
你的思路
[qqimg]201310/{C3D260B6-CBB0-3836-46CE-B9A8DEB8B976}.gif[/qqimg]
[LC100]建筑设计 17:20:20
怎么做的?
支持所有对象吗?
[q3_2006]q2 17:20:35
你的思路呀。。复制。。删除
[LC100]建筑设计 17:20:48
哦,我刚才在干活,还没搞。
[q3_2006]q2 17:20:49
除了点。。
[LC100]建筑设计 17:21:25
共享一下
[q3_2006]q2 17:21:47
(defun c:tt ()
    (xyp-CMDLA0)
    (setq sy (car (entsel " 选择源图元")))
  (setq    ss (ssget (prompt " 选择被替换图元"))
    lst (xyp-ss2list ss)
  )
  (foreach s1 lst
      (vl-cmdf "copy" sy "" (xyp-9pt sy 5) (xyp-9pt s1 5))
      (xyp-Erase s1)
  )
  (setq ss (xyp-sselentnext s0))
  (xyp-CMDLA1)
)
图元替换
(defun c:tt ()
    (xyp-CMDLA0)
    (setq sy (car (entsel " 选择源图元")))
  (setq    ss (ssget (prompt " 选择被替换图元"))
    lst (xyp-ss2list ss)
  )
  (foreach s1 lst
      (vl-cmdf "copy" sy "" (xyp-9pt sy 5) (xyp-9pt s1 5))
      (xyp-Erase s1)
  )
  (xyp-CMDLA1)
)
删除了一行。。
[LC100]建筑设计 17:22:40
那个是对的啊?
[q3_2006]q2 17:22:48
都对。。
[LC100]建筑设计 17:23:01
运行不了。
[q3_2006]q2 17:23:12
我的另一个扩展E派支持。。
[LC100]建筑设计 17:23:25
哦。
[q3_2006]q2 17:23:27
函数简单,换成你自己的就行。。
9点坐标
没了。。
[LC100]建筑设计 17:23:45
不知道是所有的东西都是9点坐标没
[q3_2006]q2 17:24:05
除了 。。。点。。。都OK
[LC100]建筑设计 17:24:28
ok
[q3_2006]q2 17:26:57
点的替换更简单。。
10
[LC100]建筑设计 17:27:36
谢谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-30 17:12 , Processed in 0.500008 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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