找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 848|回复: 12

[编程申请]:对图块进行镜像操作

[复制链接]
发表于 2005-9-8 12:06:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
求LSP程序(CAD2002用),对图块进行镜像操作,以图块插入点为基点,1、垂直镜像,2、水平镜像



请看第3楼的问题。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
 楼主| 发表于 2005-9-8 12:16:07 | 显示全部楼层

[编程申请]:对图块进行旋转操作

求LSP程序(CAD2002用),对图块进行旋转操作,以图块插入点为基点将该图块旋转90度。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-8 13:18:40 | 显示全部楼层

[编程申请]:在选择线条的所有交点(非端点)画直径为950的圆

某图层有若干十字交叉线,在十字交叉线的交点画直径为950的圆(圆所在图层在“中心圆”,颜色为2,圆心为各交点,cad2002用)

有附件可供测试,谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-8 13:29:06 | 显示全部楼层
楼主你的申请也太多了点吧?
看的出来你是个很有想法的人,
为什么不自己学着写点程序呢?

没有别的意思,
也许你可以一次把想达到的目的都说清楚,
也许会有好心人帮你写的,
俺们就不写了吧。
要不俺推荐几个结构专业的软件给你试试?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-8 14:46:31 | 显示全部楼层
有必要吗,直接用RO命令呀,
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-8 17:59:53 | 显示全部楼层
1、谢谢哪位将我的几个问题贴弄到了一块儿,因为不能发回复自己的连续贴所以分开发了。
2、谢谢它山之石长老的提醒,实在不好意思,每次要麻烦大家,本人对编程基本不懂,虽买了两本CAD编程的书看,收获甚微,弄出来的东东少能正常运行,汗颜。自家会编lsp当然不会将自家晾这显眼了。
3、工作中老重复在CAD做同一件事,如将一个块绕其插入点转90度,CAD本身命令可以达到,用键盘鼠标配合捕捉即可,可叫你转动八九十个块呢?弄个程序,一框选,多少块都搞定。
4、问题由我提出来,可能对其它的网友们也有用。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-8 20:22:18 | 显示全部楼层
  1. [FONT=courier new](load "xyp_lib")
  2. ;|加载通用函数(可在签名栏直接下载)
  3. 如果已经下载xyp_lib并放到搜索路径下可以不再下载!
  4. 利用以下任何一种方式即可加载和运行通用函数内的所有子程序:
  5. 1.在acad.lsp中增加(load"xyp_lib")
  6. 2.在每个程序内增加(load"xyp_lib")
  7. 3.在command下,输入(load"xyp_lib")
  8. 4.在菜单.mnl中增加(load"xyp_lib")
  9. 5.将xyp_lib.vlx文件直接拽到cad屏幕
  10. [COLOR=red] ★通用函数下载地址:[/COLOR]
  11. [url]http://www.xdcad.net/forum/attachment.php?s=&postid=1606661[/url]
  12. [url]http://www.mjtd.com/bbs/dispbbs.asp?boardID=3&ID=37554&page=1[/url]|;

  13. ;以插入点为基点,垂直镜像图块
  14. (defun c:test1 ()
  15.   (CMDLA0)
  16.   (setq        ss (ssget '((0 . "INSERT")))
  17.         i  -1
  18.   )
  19.   (while (setq s1 (ssname ss (setq i (1+ i))))
  20.     (setq pt1 (dxf 10 (entget s1))
  21.           pt2 (polar pt1 0 1000)
  22.           )
  23.     (command"mirror" s1 "" pt1 pt2 "n")
  24.     )
  25.   (CMDLA1)
  26. )

  27. ;以插入点为基点,水平镜像图块
  28. (defun c:test2 ()
  29.   (CMDLA0)
  30.   (setq        ss (ssget '((0 . "INSERT")))
  31.         i  -1
  32.   )
  33.   (while (setq s1 (ssname ss (setq i (1+ i))))
  34.     (setq pt1 (dxf 10 (entget s1))
  35.           pt2 (polar pt1 (* pi 0.5) 1000)
  36.           )
  37.     (command"mirror" s1 "" pt1 pt2 "n")
  38.     )
  39.   (CMDLA1)
  40. )

  41. ;以插入点为基点,图块旋转90度
  42. (defun c:test3 ()
  43.   (CMDLA0)
  44.   (setq        ss (ssget '((0 . "INSERT")))
  45.         i  -1
  46.   )
  47.   (while (setq s1 (ssname ss (setq i (1+ i))))
  48.     (setq pt1 (dxf 10 (entget s1))
  49.           pt2 (polar pt1 0 1000)
  50.           )
  51.     (command"rotate" s1 "" pt1 90)
  52.     )
  53.   (CMDLA1)
  54. )[/FONT]

点评

感谢大佬~~~  详情 回复 发表于 2021-8-5 23:07
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-9 13:24:05 | 显示全部楼层
经CAD2002测试7楼xyp1964 斑竹程序完全可用,非常感谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-9 14:07:13 | 显示全部楼层
重新修正X_INTERS函数的BUG,需重新下载xyp_lib通用函数:
[php]
;;;在选择线条的所有交点(非端点)画直径为950的圆
(defun c:test (/ ptlst)
  (CMDLA0)
  (setvar"osmode"0)
  (setq        ss (ssget '((0 . "CIRCLE,ELLIPSE,*LINE,ARC")))
        i  -1
        j  0
  )
  (mkla "中心圆" 2)
  (while (setq s1 (ssname ss (setq i (1+ i))))
    (setq j i)
    (while (setq s2 (ssname ss (setq j (1+ j))))
      (setq ptlst (X_INTERS s1 s2))
      (while (setq pt (car ptlst))
        (setq ptlst (cdr ptlst))
        (command "circle" pt 950)
      )
    )
  )
  (CMDLA1)
)[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-9 19:36:45 | 显示全部楼层
我是刚来的新手,请问怎么把代码放到那里,谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 10513个

财富等级: 富甲天下

发表于 2005-9-10 22:20:29 | 显示全部楼层
放到哪里都行!
1、可以放到自己的脑袋里;这样当你想用的时候随时可以用键盘敲到计算机中。
2、可以随手记在手边的纸片上,如果没有纸片可以记在任何可以写字的东西上。使用时同1。
3、可以放到可擦写的存储的介质上,如磁盘、光盘、U盘...上,使用时用(load "文件名")加载。
4、可以直接剪贴到ACAD的命令行上...
......
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2021-8-5 23:07:11 | 显示全部楼层
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2021-8-15 23:38:25 | 显示全部楼层
;; 以插入点为基点,垂直镜像图块
(defun c:tt5 ()
  (setq        ss (ssget '((0 . "INSERT")))
        i  -1
  )
  (while (setq s1 (ssname ss (setq i (1+ i))))
    (setq pt1 (xyp-DXF 10 s1)
          pt2 (polar pt1 0 1000)
    )
    (command "mirror" s1 "" pt1 pt2 "n")
  )
  (princ)
)

;; 以插入点为基点,水平镜像图块
(defun c:tt6 ()
  (setq        ss (ssget '((0 . "INSERT")))
        i  -1
  )
  (while (setq s1 (ssname ss (setq i (1+ i))))
    (setq pt1 (xyp-DXF 10 s1)
          pt2 (polar pt1 (* pi 0.5) 1000)
    )
    (command "mirror" s1 "" pt1 pt2 "n")
  )
  (princ)
)

;; 以插入点为基点,图块旋转90度
(defun c:test3 ()
  (setq        ss (ssget '((0 . "INSERT")))
        i  -1
  )
  (while (setq s1 (ssname ss (setq i (1+ i))))
    (setq pt1 (xyp-DXF 10 s1)
          pt2 (polar pt1 0 1000)
    )
    (command "rotate" s1 "" pt1 90)
  )
  (princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-25 16:07 , Processed in 0.474913 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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