找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2124|回复: 15

[编程申请]:能否做个消除图素Z坐标的lisp小程序

[复制链接]
发表于 2003-6-26 08:30:56 | 显示全部楼层 |阅读模式

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

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

×
在做结构图时往往会套用建筑底图,但有许多次,建筑图中图素都是三维坐标。看似相交的线却找不到交点。能否有个lisp小程序,将图素的Z坐标取消或变为“0.000”,使之成为正真的平面图,为便结构绘图
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 593个

财富等级: 财运亨通

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

使用道具 举报

发表于 2003-6-27 18:15:00 | 显示全部楼层

  1. (defun c:entelev  (/ high1 xx)
  2.    (setvar "cmdecho" 0)
  3.    (setq high1 (getreal "\n请输入高程:"))
  4.    (princ "\n请选择实体(可选多个):")
  5.    (setq xx (ssget))
  6.    (vl-cmdf "change" "p" "" "p" "e" high1 "")
  7.    (setvar "cmdecho" 1)(princ)
  8. )

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

使用道具 举报

发表于 2003-6-27 18:31:20 | 显示全部楼层
acad2002中的ET1.9有flatten命令,可以做到;天正5.x有相关命令。cad2000附带的express和r14的bonus尚无此功能。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-7-9 22:57:29 | 显示全部楼层
晓东工具箱—》工具箱二—》Z坐标为0,是什么意思?我找不到。我想找使Z坐标变0的软件,请指点位置。谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-7-10 10:38:58 | 显示全部楼层
最初由 小狼 发布
[B][code]
(defun c:entelev  (/ high1 xx)
   (setvar "cmdecho" 0)
   (setq high1 (getreal "\n请输入高程:"))
   (princ "\n请选择实体(可选多个):")
   (setq xx (ssget))
   (vl-cmdf "change" "p" "" "p" ... [/B]


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

使用道具 举报

发表于 2003-8-3 10:22:13 | 显示全部楼层
把上面的代码复制下来,保存成lsp文件,文件名任意,扩展名为lsp,然后在cad中加载,用entelev命令运行。

另外我说一点:这个程序短小精悍,比晓东工具箱的Z-0要好,因为晓东工具箱的Z-0有时处理不完全。不过也有缺点,就是无法修改具有不同 Z 坐标的对象的标高。把两者相结合就完美无却了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-3 10:31:16 | 显示全部楼层
其英文简介:move all "Z" coordinates to 0 elevation (flattens drawing)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-3 10:48:00 | 显示全部楼层
最初由 chhm 发布
[B]其英文简介:move all "Z" coordinates to 0 elevation (flattens drawing) [/B]

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

使用道具 举报

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

使用道具 举报

发表于 2003-8-15 11:29:08 | 显示全部楼层
这里有一个可以将图形中实体的Z值和厚度置为0。
  1. ;;;将图形中实体的厚度改为0.高度改为0;(zero)
  2. (defun c:zero (/ ss count s1 old new)

  3.   (princ "\nPLEASE WAIT........CHANGE HIGH thick z")
  4.   (setq ss (ssget "x"))
  5.   (setq count 0)
  6.   (repeat (sslength ss)
  7.     (setq s1 (entget (ssname ss count)))
  8.                                                                       ;改变厚度
  9.     (setq old (assoc 39 s1))
  10.     (if        old
  11.       (progn
  12.         (setq new (cons 39 0.0))
  13.         (setq s1 (subst new old s1))
  14.         (entmod s1)
  15.       )                                                                      ;end progn
  16.     )                                                                      ;end if
  17.     ;;改变高度
  18.     (setq old (assoc 38 s1))
  19.     (if        old
  20.       (progn
  21.         (setq new (cons 38 0.0))
  22.         (setq s1 (subst new old s1))
  23.         (entmod s1)
  24.       )                                                                      ;end progn
  25.     )                                                                      ;end if
  26.     ;;改变z值
  27.     (setq old (assoc 10 s1))
  28.     (if        old
  29.       (progn
  30.         (setq x (cadr old))
  31.         (setq y (caddr old))
  32.         (setq z (cadddr old))
  33.         (setq new (cons 10 (list x y 0.0)))
  34.         (setq s1 (subst new old s1))
  35.         (entmod s1)
  36.       )                                                                      ;end progn
  37.     )                                                                      ;end if
  38.     (setq old (assoc 11 s1))
  39.     (if        old
  40.       (progn
  41.         (setq old (assoc 11 s1))
  42.         (setq x (cadr old))
  43.         (setq y (caddr old))
  44.         (setq z (cadddr old))
  45.         (setq new (cons 11 (list x y 0.0)))
  46.         (setq s1 (subst new old s1))
  47.         (entmod s1)
  48.       )                                                                      ;end progn
  49.     )                                                                      ;end if

  50.     (setq count (+ 1 count))
  51.   )                                                                      ;end repeat
  52.   (princ "\nOK!!!")
  53.   (princ "\n")
  54. )                                                                      ;end
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

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

使用道具 举报

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

使用道具 举报

发表于 2006-10-18 13:07:39 | 显示全部楼层
假如线为空间线(起点和终点的z坐标不相等也不为零),这个可以把他变成z坐标都为零

  1. (Defun c:test( / fil len n e ed b new1 c new2 )
  2. (command "redraw")
  3. (setq fil (ssget))
  4. (setq len (sslength fil))
  5. (setq n 0)
  6. (while (<= n (- len 1))
  7.   (progn
  8.    (setq e (ssname fil n))
  9.    (setq ed (entget e))
  10.    (if (/= nil)   
  11.      (progn
  12.           (setq b (assoc 10 ed))
  13.          (setq new1 (list 10 (car (cdr b)) (car (cdr (cdr b))) 0))
  14.           (setq ed (subst new1 b ed))

  15.           (setq c (assoc 11 ed))
  16.          (setq new2 (list 11 (car (cdr c)) (car (cdr (cdr c))) 0))
  17.           (setq ed (subst new2 c ed))
  18.           (setq n (+ 1 n))
  19.           (entmod ed)
  20.      )
  21.     (setq n (+ 1 n))
  22.     )
  23.    )
  24.   )
  25. (princ)
  26. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-20 23:09 , Processed in 0.202723 second(s), 61 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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