找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1244|回复: 6

[原创]:剖折线绘制lsp程序

[复制链接]
发表于 2005-11-6 09:25:27 | 显示全部楼层 |阅读模式

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

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

×
|;
初次来到本论坛,手头没有金币,好多东西无法下载,很遗憾;
自己编制了一些小的程序,拿出来与大家共享,希望能够挣到一些金币;
今后将陆续贴出一些程序,希望大家的批评指正;
;|

  1. (defun c:pzx (/ o_os o_or pt1 pt2 ang1 ang2 ang3 ang4 pp1 pp2 pp3 pp4 pp5 pp6 L L1 L2 )
  2.   
  3.   (setq o_oss (getvar "osmode" ))
  4.   (setq o_orr (getvar "orthomode" ))
  5.   (setvar "osmode" 641)
  6.   (setvar "orthomode" 1)
  7.   (setq        olderr        *error*
  8.         *error*        at_err
  9.   )
  10.   (setq pt1 (getpoint "\n第一点:"))
  11.   (setq pt2 (getpoint pt1 "\n第二点:"))
  12.   (setq ds (getdist pt2 "\n量取外伸长度:"))
  13.   (setq ang1 (angle pt2 pt1))
  14.   (setq pp1 (polar pt1 ang1 ds))
  15.   (setq L (distance pt1 pt2))
  16.   (setq L1 (/ L 2))
  17.   (setq L2 (- L1 0.7))
  18.   (setq ang2 (+ Pi ang1))
  19.   (setq pp3 (polar pt1 ang2 L2))
  20.   (setq ang3 (+ ang1 (* 0.5 pi)))
  21.   (setq pp5 (polar pp3 ang3 1.2))
  22.   (setq pp2 (polar pt2 ang2 ds))
  23.   (setq pp4 (polar pt2 ang1 L2))
  24.   (setq ang4 (- ang1 (* 0.5 pi)))
  25.   (setq pp6 (polar pp4 ang4 1.2))
  26.   (setvar "osmode" 0)
  27.   (command "Pline" pp1 "W" "0" "" pp3 pp5 pp6 pp4 pp2 "")
  28.   (setq *error* olderr)
  29.   (setvar "osmode" o_oss)
  30.   (setvar "orthomode" o_orr)
  31.   (princ)
  32. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-11-6 22:48:16 | 显示全部楼层
有个flash 演示就更好了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2005-11-7 17:12:31 | 显示全部楼层
本人才来哈,什么也不明白的。哎呀,真实高深莫册的东西啊!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-9 13:03:20 | 显示全部楼层
小弟想理解了一下您的程序
所以做了些注解
不知道对不对烦请您纠正检讨一下
谢谢您了

另外有些问题
(setq pt2 (getpoint pt1 "\n第二点:"))
(setq ds (getdist pt2 "\n量取外伸长度:"))
两段程序是否可以合并写成一行呢?
以及 (setq ds (getdist "\n量取外伸长度:" pt2))
pt2写在后面会有何种问题呢?

另外有一个图形也是绘制程序
但不知道问题出在哪里
可否帮忙看一下程序呢
位置
http://p4.xdcad.net/forum/showthread.php?s=&threadid=483889



  (setq        olderr        *error*
        *error*        at_err
  )
;01.这段不清楚,可以解释吗?

  (setq pt1 (getpoint "\n第一点:"))
;02.设 pt1 第1点

  (setq pt2 (getpoint pt1 "\n第二点:"))
;03.设 pt2 第2点

  (setq ds (getdist pt2 "\n量取外伸长度:"))
;04.设 ds 长度

  (setq ang1 (angle pt2 pt1))
;05.设 ang1 的角度为 pt2 到 pt1

  (setq pp1 (polar pt1 ang1 ds))
;06.设 pp1 为由 pt1 点取得 角度 及 距离 的新座标点

  (setq L (distance pt1 pt2))
;07.设 L 为由 pt1 点到 pt2 点 取得距离

  (setq L1 (/ L 2))
;08.设 L1 为 L 距离的一半

  (setq L2 (- L1 0.7))
;09.设 L2 为 L1 距离在减少 0.7

  (setq ang2 (+ Pi ang1))
;10.设 ang2 为 180度 在加上 ang1 角度

  (setq pp3 (polar pt1 ang2 L2))
;11.设 pp3 为由 pt1 点取得 ang2 角度 及 L2距离 的新座标点

  (setq ang3 (+ ang1 (* 0.5 pi)))
;12.设 ang3 为 ang1 加上 90 度角

  (setq pp5 (polar pp3 ang3 1.2))
;13.设 pp5 为由 pt3 点取得 ang3 角度 及 1.2 的新座标点
;1.2代表为何不清楚,可以解释吗?

  (setq pp2 (polar pt2 ang2 ds))
;14.设 pp2 为由 pt2 点取得 ang2 角度 及 ds 距离 的新座标点

  (setq pp4 (polar pt2 ang1 L2))
;15.设 pp4 为由 pt2 点取得 ang1 角度 及 L2 距离 的新座标点

  (setq ang4 (- ang1 (* 0.5 pi)))
;16.设 ang4 为 ang1 减去 90 度角

  (setq pp6 (polar pp4 ang4 1.2))
;17.设 pp6 为由 pt4 点取得 ang4 角度 及 1.2 的新座标点
;1.2代表为何不清楚,可以解释吗?

  (setvar "osmode" 0)
;18.锁点变数

  (command "Pline" pp1 "W" "0" "" pp3 pp5 pp6 pp4 pp2 "")
;19.Pline绘制程序

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

使用道具 举报

 楼主| 发表于 2005-11-9 18:22:09 | 显示全部楼层
1, 可以写成(setq ds (getdist (getpoint pt1 "\n第二点:") "\n量取外伸长度:"));你的理解有误,请参考lip帮助文件;
2, *error* 为出错函数; 用户可自定义;
3, 程序中出现的一些数值1.2等是根据"建筑制图规范"中绘制折断线的相关规定计算的;
4, 本程序尚不完善, 没有考虑比例问题;
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-18 22:40 , Processed in 0.351635 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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