找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 688|回复: 8

[LISP程序]:给circle画十字线

[复制链接]
发表于 2003-7-30 20:16:34 | 显示全部楼层 |阅读模式

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

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

×
伸出多长和十字线角度都由你定。
有的时候还蛮有用地。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-7-31 14:37:03 | 显示全部楼层
就这还要收费啊?很简单的啊


  1. (defun C:CENTLE (/ COUNT_1 COUNT_2 DIST OBJECTS_X OBJECTS_Y SCALE
  2.       CENTER CENTER_2 ENTITY_1 ENTITY_2 RADIUS RADIUS_2 s
  3.       LEFT LEFT_2 RIGHT RIGHT_2 NAME
  4.    BOTTOM BOTTOM_2 TOP TOP_2 LAY)
  5.    (setvar "CMDECHO" 0)
  6.    (setq SCALE (getvar "DIMSCALE"))
  7.    (setq DIST (* 0.1 SCALE))
  8.    (princ "\n 请选择需画中心线的圆:")
  9.    (setq OBJECTS_X (ssget '((0 . "CIRCLE"))))
  10.    (setq s (getdist "\n 中心线伸出圆的长度:"))
  11.    (setq OBJECTS_Y (ssget "P"))
  12.    (setq COUNT_1 0)
  13.    (while (< COUNT_1 (sslength OBJECTS_X))
  14.       (setq ENTITY_1 (entget (ssname OBJECTS_X COUNT_1)))
  15.       (setq CENTER (cdr (assoc 10 ENTITY_1)))
  16.       (setq RADIUS (cdr (assoc 40 ENTITY_1)))
  17.       (setq RIGHT (polar center 0.0 (+ RADIUS DIST)))
  18.       (setq LEFT (polar RIGHT 3.141592654 (* 2.0 (+ RADIUS DIST))))
  19.       (setq COUNT_2 (+ COUNT_1 1))
  20.       (while (< COUNT_2 (sslength OBJECTS_X))
  21.          (setq ENTITY_2 (entget (ssname OBJECTS_X COUNT_2)))
  22.          (setq CENTER_2 (cdr (assoc 10 ENTITY_2)))
  23.          (if (< (ABS (-  (cadr CENTER) (cadr CENTER_2))) 0.0001)
  24.             (progn
  25.                (setq RADIUS_2 (cdr (assoc 40 ENTITY_2)))
  26.                (setq RIGHT_2 (polar CENTER_2 0.0 (+ RADIUS_2 DIST)))
  27.                (setq LEFT_2 (polar RIGHT_2 3.141592654 (* 2.0 (+ RADIUS_2 DIST))))
  28.                (if (< (car LEFT_2) (car LEFT))
  29.                   (setq LEFT LEFT_2)
  30.                )
  31.                (if (> (car RIGHT_2) (car RIGHT))
  32.                   (setq RIGHT RIGHT_2)
  33.                )
  34.                (setq NAME (ssname OBJECTS_X COUNT_2))
  35.                (setq OBJECTS_X (ssdel NAME OBJECTS_X))
  36.                (setq COUNT_2 (- COUNT_2 1))
  37.             )
  38.          )
  39.          (setq COUNT_2 (+ COUNT_2 1))
  40.       )
  41.       (setq left (list (- (car left) s) (cadr left)))
  42.       (setq right (list (+ (car right) s) (cadr right)))
  43.       (command "line" LEFT RIGHT "")
  44.       (setq COUNT_1 (+ COUNT_1 1))
  45.    )      
  46.     (setq COUNT_1 0)
  47.    (while (< COUNT_1 (sslength OBJECTS_Y))
  48.       (setq ENTITY_1 (entget (ssname OBJECTS_Y COUNT_1)))
  49.       (setq CENTER (cdr (assoc 10 ENTITY_1)))
  50.       (setq RADIUS (cdr (assoc 40 ENTITY_1)))
  51.       (setq TOP (polar CENTER 1.570796327 (+ RADIUS DIST)))
  52.       (setq BOTTOM (polar TOP 4.712388981 (* 2.0 (+ RADIUS DIST))))
  53.       (setq COUNT_2 (+ COUNT_1 1))
  54.       (while (< COUNT_2 (sslength OBJECTS_Y))
  55.          (setq ENTITY_2 (entget (ssname OBJECTS_Y COUNT_2)))
  56.          (setq CENTER_2 (cdr (assoc 10 ENTITY_2)))
  57.          (if (< (ABS (-  (car CENTER) (car CENTER_2))) 0.0001)
  58.             (progn
  59.                (setq RADIUS_2 (cdr (assoc 40 ENTITY_2)))
  60.                (setq TOP_2 (polar CENTER_2 1.570796327 (+ RADIUS_2 DIST)))
  61.                (setq BOTTOM_2 (polar TOP_2 4.712388981 (* 2.0 (+ RADIUS_2 DIST))))
  62.                (if (> (cadr TOP_2) (cadr TOP))
  63.                   (setq TOP TOP_2)
  64.                )
  65.                (if (< (cadr BOTTOM_2) (cadr BOTTOM))
  66.                   (setq BOTTOM BOTTOM_2)
  67.                )
  68.                (setq NAME (ssname OBJECTS_Y COUNT_2))
  69.                (setq OBJECTS_Y (ssdel NAME OBJECTS_Y))
  70.                (setq COUNT_2 (- COUNT_2 1))
  71.             )
  72.          )
  73.          (setq COUNT_2 (+ COUNT_2 1))
  74.       )
  75.       (setq top (list (car top) (+ (cadr top) s)))
  76.       (setq bottom (list (car bottom) (- (cadr bottom) s)))
  77.       (command "line" TOP BOTTOM "")
  78.       (setq COUNT_1 (+ COUNT_1 1))
  79.    )
  80.    (command "redraw")
  81.    (setvar "cmdecho" 1)
  82. (princ)
  83. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-8-1 04:39:57 | 显示全部楼层
不知道你下载我的那个了吗?
你回了贴,再下我的很划算。
因为这个lsp是很简单,不过你要是
下了我的那个,你会发现它比你写的
更简单!哈哈!
我得的那一个币其实比你说的更容易!
你写的太复杂了,有自定义的角度吗?
也许那一个币对你lsp写程是有帮助的,
回省了你很多浪费的时间。是不是?

其实在这个论坛里我知道有很多的高手,
谁能写出最简单又实用的lsp才是最重要的,
所以我要的那一个币不是为了lsp要的,
而是做为提高你的写程速度要的。明白吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2003-8-4 10:15:25 | 显示全部楼层
楼主的程序有错误啊,居然还收钱????
命令: cx
请选择圆:
选择对象: 找到 1 个

选择对象:
:请输入十字线的旋转角度<0>:45

:请输入十字线伸出圆外的长度是该圆半径的几分之一,若输入<0>为不出伸出圆外,缺省为<4
>:2

需要点或选项关键字。

错误: 函数被取消

需要点或选项关键字。

需要点或选项关键字。

需要点或选项关键字。

已经放弃所有线段。

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

使用道具 举报

发表于 2003-9-2 05:22:48 | 显示全部楼层
楼主的程序中第二个和第四个LINE命令忘记了回车""了,命令不能正常结束。加上回车就可以了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2005-3-22 10:15:34 | 显示全部楼层
其实没必要,CAD自带就有,这要在[标注样式管理器]设置一下,再用图层自动切换程序,就可以用圆心标记命令DIMCENTER得到标准的中心线了.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-18 22:59 , Processed in 0.424258 second(s), 48 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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