找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 693|回复: 3

[LISP函数]:下划线、线开口lisp 文件

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

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

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

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

使用道具 举报

发表于 2005-8-25 13:03:23 | 显示全部楼层
首先要确保已加载xyp_lib通用函数!
  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. ;;;下划线加粗并自动确定位置,按1:100出图考虑,线宽60,字与线间距150
  14. (defun C:XHX (/ e m pt1 pt2 x1 y1 x2 y2 pt1 pt2)
  15.   (cmdlasc0)
  16.   (setvar "osmode" 0)
  17.   (princ "\n选择文字 : ")
  18.   (setq        ss (ssget '((0 . "TEXT")))
  19.         i  -1
  20.   )
  21.   (while (setq e (ssname ss (setq i (1+ i))))
  22.     (command "ucs" "Entity" e)
  23.     (setq M   (textbox (entget e))
  24.           pt1 (car M)
  25.           pt2 (cadr M)
  26.           x1  (car pt1)
  27.           y1  (cadr pt1)
  28.           x2  (car pt2)
  29.           y2  (cadr pt2)
  30.           y1  (- y1 (* 150 SC))
  31.           y2  (- y2 (* 150 SC))
  32.           pt2 (list x2 y1)
  33.           pt1 (list x1 y1)
  34.     )
  35.     (command "pline" pt1 "w" (* 60 sc) "" pt2 "")
  36.   )
  37.   (cmdla1)
  38. )

  39. ;;;线开口
  40. (defun c:XKK (/ pt1 pt2 pt3 sss nnn e leng df s1)
  41.   (cmdla0)
  42.   (setvar "osmode" 0)
  43.   (setq        pt1 (getvar "VSMIN")
  44.         pt2 (getvar "VSMax")
  45.         pt3 (_midp pt1 pt2)
  46.         SSS (ssget '((0 . "CIRCLE,ELLIPSE,*LINE,ARC")))
  47.         NO1 (udist 1 "" "\n线长" NO1 pt3)
  48.         NO2 (udist 1 "" "\n缺口长" NO2 pt3)
  49.         nnn -1
  50.   )
  51.   (while (setq e (ssname sss (setq nnn (1+ nnn))))
  52.     (setq leng (vlax-curve-getDistAtParam e (vlax-curve-getEndParam e))
  53.           df   (fix (abs (/ leng (+ NO1 no2))))
  54.     )
  55.     (repeat df
  56.       (setq pt1        (vlax-curve-getPointAtDist
  57.                   (vlax-ename->vla-object e)
  58.                   no1
  59.                 )
  60.             pt2        (vlax-curve-getPointAtDist
  61.                   (vlax-ename->vla-object e)
  62.                   (+ no1 no2)
  63.                 )
  64.       )
  65.       (command "break" e pt1 pt2)
  66.       (command "select" "l" "")
  67.       (setq s1 (ssget "p")
  68.             e  (ssname s1 0)
  69.       )
  70.     )
  71.   )
  72.   (cmdla1)
  73. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-3-3 12:53:51 | 显示全部楼层
这个线开口函数有问题呀, 谁给我解决下呀。就是在有多个图形时只选择一个加开口,为选中的也加了, 高手帮忙呀
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-29 04:02 , Processed in 0.166852 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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