明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 尘缘一生

[源码] 简单的代码,作用不一定小!

  [复制链接]
 楼主| 发表于 2014-6-18 06:06:09 | 显示全部楼层
本帖最后由 尘缘一生 于 2014-6-22 05:30 编辑
bdboy 发表于 2014-6-17 11:11
最好是有个镜像点,不然没什么实际意义,反而费事了

           我哪个按钮图标还有一个,就是选线镜像的,我没有发,为什么?实在是没有内涵,就是改造的MIRROR,CAD原MIRROR,要求给出2个点,这个要求选线,因为很简单,当时是模仿PKPM的,记得当时是95年,我在设计院正负责给大家“甩图版”,可大家都说电脑画图慢,不愿意学,才逼得写LISP,哈哈.....
那么我也发上来,演示一下吧:


     记得关闭“捕捉”“正交”,程序内没写!
  1. ;;选镜像线进行MIRROR
  2. (defun C:J-MIRROR(/ s pt1 pt2 pt3 pt4)
  3.   (setq s(ssget))
  4.   (setq pt1 (entsel "\n请选择镜像对称轴一直线实体:"))
  5.   (setq pt2 (nth 1 pt1))
  6.   (setq pt1 (osnap pt2 "NEAR"))
  7.   (setq pt3 (osnap pt1 "ENDPOINT"))
  8.   (setq pt4 (osnap pt1 "MIDPOINT"))
  9.   (command "MIRROR" S "" pt3 pt4)
  10.   )                          
  11. (princ)


本帖子中包含更多资源

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

x
发表于 2014-6-18 08:27:40 | 显示全部楼层
尘缘一生 发表于 2014-6-18 06:06
我哪个按钮图标还有一个,就是选线镜像的,我没有发,为什么?实在是没有内涵,就是改造的MIR ...

看来您的每一段代码背后都有一个故事啊

直线镜像的代码论坛很多

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=93048

点评

两码事,这个镜像了跟鼠标定位功能的。  发表于 2015-12-17 07:55
发表于 2014-6-18 14:32:35 | 显示全部楼层
确实不错,收下了
发表于 2014-6-19 21:33:50 | 显示全部楼层
看到二十年前我就震惊了,楼主好多好东西呢吧,不要藏着,拿出来给大家看看嘛

点评

20多年来,一直没停下亲自画图纸的工作,所以我都是自己需要,去写需要的,并不是华丽不实,都快速解决实际问题,我会发的,但手里设计项目压堆,等我倒出时间来。。。。  发表于 2014-6-19 21:56
由于开发的早,我写的代码都比较简单那种,感觉拿不出手。  发表于 2014-6-19 21:50
发表于 2014-6-20 14:43:44 | 显示全部楼层
谢谢分享,学习学习下~~~
 楼主| 发表于 2014-6-20 20:14:30 | 显示全部楼层
        根据大家的群策群力,总结下此贴代码,我加了些系统变量控制,因为要保证此4个命令的顺利进行,需要关闭捕捉与正交的!
  1. ;;----------------------------------------------------------------------------

  2.   (defun SSET( )
  3.      (setq oldos (getvar "OSMODE"))
  4.      (setq oldorh (getvar "ORTHOMODE"))
  5.      (setq oldsn (getvar "SNAPMODE"))
  6.      (setvar "OSMODE" 0) ;;;捕捉关闭
  7.      (setvar "ORTHOMODE" 0) ;;;正交关闭
  8.      (setvar "SNAPMODE" 0);;;;实体捕捉关闭
  9.      (setvar "CMDECHO" 0)
  10.      (setvar "TEXTEVAL" 1)
  11.    )

  12. ;;---------------------------------------------------------------------------
  13.   (defun SSET1( )
  14.      (setvar "ORTHOMODE" oldorh)  ;;;恢复正交
  15.      (setvar "OSMODE" oldos)  ;;;恢复正交
  16.      (setvar "SNAPMODE" oldsn) ;;;;恢复实体捕捉   
  17.      (setvar "CMDECHO" 1)
  18.    )
  19. ;;----------------------------------------------------------------------------

  20. (defun C:H-MR-MV (/ s pt2 pt3)
  21. (command)
  22. (SSET)
  23. (if (setq s(ssget))
  24.    (progn
  25.      (setq pt2 (nth 1(grread 5)))
  26.      (setq pt3 (polar pt2 (* 0.5 pi) 2.5))
  27.      (command "mirror" s "" pt2 pt3 "y" "move" "p" "" pt3 pause)
  28.    )
  29. )
  30. (SSET1)
  31. (princ)
  32. )

  33. ;;---------------------------------------------------------------------------

  34. (defun C:V-MR-MV (/ s pt2 pt3)
  35. (command)
  36. (SSET)
  37. (if (setq s(ssget))
  38.    (progn
  39.      (setq pt2 (nth 1(grread 5)))
  40.      (setq pt3 (polar pt2 0 2.5))
  41.      (command "mirror" s "" pt2 pt3 "y" "move" "p" "" pt3 pause)
  42.    )
  43. )
  44. (SSET1)
  45. (princ)
  46. )

  47. ;;------------------------------------------------------------------------------

  48. (defun C:H-MR-MV-N (/ s ss s1 pt2 pt3)
  49. (command)
  50. (SSET)
  51. (if (setq s(ssget))
  52. (progn
  53. (setq pt2 (nth 1(grread 5)))
  54. (setq pt3 (polar pt2 (* 0.5 pi) 2.5))
  55. (setq s1 (entlast) ss (ssadd))
  56. (command "MIRROR" s "" PT2 pt3 "N")
  57.    (while (setq s1 (entnext s1))
  58.       (ssadd s1 ss)
  59.    )
  60.   (command "MOVE" ss "" PT3 PAUSE)
  61. ))
  62. (SSET1)
  63. (princ)
  64. )

  65. ;;------------------------------------------------------------------------------

  66. (defun C:V-MR-MV-N (/ s ss s1 pt2 pt3)
  67. (command)
  68. (SSET)
  69. (if (setq s(ssget))
  70. (progn
  71. (setq pt2 (nth 1(grread 5)))
  72. (setq pt3 (polar pt2 0 2.5))
  73. (setq s1 (entlast) ss (ssadd))
  74. (command "MIRROR" s "" PT2 pt3 "N")
  75. (while (setq s1(entnext s1))
  76.      (ssadd s1 ss)
  77. )
  78. (command "MOVE" ss "" PT3 PAUSE)
  79. ))
  80. (SSET1)
  81. (princ)
  82. )

本帖子中包含更多资源

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

x
发表于 2014-6-21 22:30:38 | 显示全部楼层
致敬,那个年代就玩cad了。

点评

我到现在还找acad R10版,我有特别用处,哪就是:只有R10版,才可以根本上解决PKPM,CFG目录下那个ACAD.DWG的初始设置,大家知道否?  发表于 2014-6-22 05:27
发表于 2014-6-22 00:13:29 | 显示全部楼层
尘缘一生 发表于 2014-6-17 05:54
93年大学毕业,单位只有一台386,用的是AUTOCAD10版,根本就没有VLISP等高级开发工具。环境是DOS ...

93年单位上有386已经是很不错了,我97年到单位只看到一台坏掉了的286的时候郁闷了,旷课3年半天天泡机房的结果是单位没电脑(也不全对,给了个pc1500,结果把记录外业测量数据的程序开头加了段开机音乐后给P了一顿),直到2000年第一次看到lisp程序(那个时候对R2000又爱又恨——毕竟比R14人性化但破解版本经常挂掉),成天瞎弄把人家的三段程序弄了10来天终于被我合并成了一个,后来又没电脑了,直到04年终于有电脑可用了

点评

哈哈,基本一样,我哪里有一台286,是坏的,在哪里能看到......一直到95年,我和院长才去烟台,买了4台486,一台15000元奥!目的给大家用,实际就我用,他们都没兴趣,后来哪?我自己就弄坏了3台!  发表于 2014-6-22 05:25
发表于 2015-1-12 21:10:35 | 显示全部楼层
比较经典的程式
发表于 2015-2-10 22:18:23 | 显示全部楼层
回复---效率为王----回复完毕
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-22 20:52 , Processed in 0.142759 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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