找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2028|回复: 8

[求助] 多线段老是画零长度线,高手给看看

[复制链接]

已领礼包: 862个

财富等级: 财运亨通

发表于 2013-7-30 08:14:26 | 显示全部楼层 |阅读模式

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

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

×
多线段老是画零长度线,高手给看看,(angle (nth i pp) (nth (+ i 1) pp)),二维三维点错误(polar pt (+ (/ pi 4) ang) (* 1.5 *bl))单数类型错误。
  1. (defun C:zqc-jdx  ()
  2.   ;(cmdla0)
  3.   (setq pt1 (getpoint "\n选取点:")
  4.   pp '() dd '() ang '()
  5.   i 0 n 0 j 0
  6.   *bl 100)
  7.   (command "_.pline" "" "w" (* 0.5 *bl) "" pt1)
  8.   (while pt1
  9.   (setq pp (cons (3d->2d pt1) pp)
  10.   pt1 (getpoint pt1 "\n选取点:")
  11.   )
  12.     (command  pt1)
  13.   )
  14.   (setq pp (reverse pp))
  15.   (setq n (length pp))
  16.   (while (< i (- n 1))
  17.   (setq dd (cons (mapcar '- (nth (+ i 1) pp) (nth i pp)) dd)
  18.               ang (cons (angle (nth i pp) (nth (+ i 1) pp)) ang)
  19.         i (+ i 1))
  20.     )
  21.   (setq ddl (reverse (mapcar '2pdist dd)))
  22.   (setq ang (reverse ang))
  23.   (setq ddn (mapcar '(lambda(x) (fix(/ x (* 11.25 *bl)))) ddl)) ;等分数
  24.   (setq fuzz (mapcar '(lambda(x) (/ (rem x (* 11.25 *bl)) 2)) ddl));偏移量
  25.   (while (< j (- n 1))
  26.     (setq ddn1 (nth j ddn))
  27.     (setq ang1 (nth j ang))
  28.     (setq pts (polar (nth j pp) ang1 (nth j fuzz)))
  29.     (zqc-L45  pts ang1)
  30.     (repeat ddn1
  31.        (setq pts (polar pts ang1 (* 11.25 *bl)))
  32.        (zqc-L45  pts ang1)
  33.        )
  34.        (setq j (+ j 1))
  35.       )
  36.   ;(cmdla1)
  37.   )
  38.   (defun zqc-L45 (pt ang / pt1 pt2)
  39.   ;(setq pt (3d->2d(getpoint "\n选取点:"))
  40.   ;ang (getangle "\n角度:")
  41.   (setq pt1 (polar pt (+ (/ (* 5 pi) 4) ang) (* 1.5 *bl)) ;*bl比例
  42.   pt2 (polar pt (+ (/ pi 4) ang) (* 1.5 *bl))
  43.   )
  44.   (command "_.line" pt1 pt2 "")
  45. )
  46. ;;52.2 [功能] 3D点->2D点
  47. (defun 3d->2d (3dpt / 2dpt)
  48.   (setq 2dpt (list (car 3dpt) (cadr 3dpt)))
  49. )
  50. (defun 2pdist (pt);求距离
  51.   (sqrt(apply '+(mapcar '(lambda (x) (* x x)) pt)))
  52. )

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

已领礼包: 1742个

财富等级: 堆金积玉

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

使用道具 举报

已领礼包: 862个

财富等级: 财运亨通

 楼主| 发表于 2013-7-30 08:36:18 | 显示全部楼层
关闭捕捉好了,(command "_.pline" "" "w" (* 0.5 *bl) "")设定线宽老是从零点画一条线,这个怎么解决?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 9816个

财富等级: 富甲天下

发表于 2013-7-30 08:41:19 | 显示全部楼层
(command "_.pline" "" "w" (* 0.5 *bl) "")
-->
(setvar "PLINEWID" (* 0.5 *bl))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

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

使用道具 举报

已领礼包: 862个

财富等级: 财运亨通

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

使用道具 举报

已领礼包: 862个

财富等级: 财运亨通

 楼主| 发表于 2013-7-30 09:14:05 | 显示全部楼层
用enmake的方法怎么实现输入第一点第二点生产多线段,第三点生产多线段.......
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2013-7-30 11:19:41 | 显示全部楼层
zhangq_cai1 发表于 2013-7-30 09:14
用enmake的方法怎么实现输入第一点第二点生产多线段,第三点生产多线段.......

  1. (defun c:tt (/ pts p pl)
  2.   (while (if pts
  3.        (setq p (getpoint (car pts) "\nNext Point: "))
  4.        (setq p (getpoint "\nPoint: "))
  5.      )
  6.     (setq pts (cons p pts))
  7.     (if    pl
  8.       (entdel pl)
  9.     )
  10.     (setq pl (xd::polyline:make (reverse pts) nil))
  11.   )
  12.   (princ)
  13. )


点评

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 17:41 , Processed in 0.414833 second(s), 47 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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