找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1435|回复: 16

[编程申请]:椭圆和样条曲线怎么加粗?

[复制链接]
发表于 2004-8-19 09:01:15 | 显示全部楼层 |阅读模式

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

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

×
椭圆和样条曲线都不能加粗,而且勾轮廓线的时候不能和多线段(pline)连接.
有什么方法吗? *-*2
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 11286个

财富等级: 富甲天下

发表于 2004-8-19 09:24:37 | 显示全部楼层
将PELLIPSE设为1后再画椭圆可以得到用16段PLINE弧组成的椭圆,但设定PELLIPSE参数后不能画椭圆弧。
样条曲线必须转成PLINE线才能加粗。好象论坛上有专门的程序。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 11286个

财富等级: 富甲天下

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

使用道具 举报

 楼主| 发表于 2004-8-21 09:52:22 | 显示全部楼层
最初由 zxq0220 发布
[B]我从明经通道找了一个程序: [/B]

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

使用道具 举报

发表于 2004-8-21 17:36:02 | 显示全部楼层
;;思路:判断ptlist(spline的各个节点的表)中前后两点的斜率是否一样。

;;BY LUCAS(龙龙仔)
;;将spline等分为n个弧,再转为pline
;;只对2D spline有效, 3D spline要改用3dpoly
;;程序其实有个bug,对直线的spline会出错,用一个偷懒的办法解决了.

(defun C:SPLINE_TO_PLINE (/ HOLDECHO    OS   SSS NUMPT N
     ED ED1   PTST  PTEND SS2 PT1   PT2
     PT3 J     ENT   NNO   SS SSL
   ptlist b )

  (defun VAL1 (N SS INDEX)
    (cdr (assoc N (entget (ssname SS INDEX))))
  )

  (defun CH_IT (NOS)
    (if (assoc NOS ED)
      (progn
(if (assoc NOS ENT)
   (setq ENT (subst (assoc NOS ED) (assoc NOS ENT) ENT))
   (setq ENT (append ENT (list (assoc NOS ED))))
)
(entmod ENT)
      )
    )
  )

  (setq HOLDECHO (getvar "cmdecho"))
  (setvar "cmdecho" 0)
  (command "_.undo" "group")
  (setq OS (getvar "osmode"))
  (setvar "osmode" 0)
  (prompt "\nPlease pick the spline: ")
  (setq SSS (ssget '((0 . "spline"))))
  (if SSS ;if1
    (progn;progn1
      (initget (+ 1 2 4))
      (setq NUMPT
      (getint
        "\nPlease specify the accuracy of conversion: "
      )
      )
      (setq N 0)
      (setq SSL (sslength SSS))
      (repeat SSL ;repeat1
(prompt (strcat "\r余 " (itoa (- SSL N)) " 个物件     "));相当于进度条
(setq ED1 (ssname SSS N))
(setq ED (entget ED1))

(setq ptlist (pp ed))
(leo ptlist)

(setq PTST  (cdr (assoc 10 ED)) ;取得起点坐标
       PTEND (cdr (assoc 10 (reverse ED)));取得终点坐标
)

           (if  (= b 123)
             (progn ;progn3
              (command "erase" ed1 "")
              (command "pline" ptst ptend "")
              (setq N (1+ N))
             );end progn3

             (progn ;progn2
(command "_.divide" ED1 (* 2 NUMPT))
(setq SS2 (ssget "p"))
  (if (= (logand (cdr (assoc 70 ED)) 1) 1)
   (setq J 1)
   (setq J 0)
)
(setq PT3 PTST)
(setq SS (ssadd))
(repeat NUMPT;repeat2
   (setq PT2 (VAL1 10 SS2 J))
   (if (/= NUMPT (/ (+ J 2) 2))
     (setq PT1 (VAL1 10 SS2 (+ 1 J)))
     (setq PT1 PTEND)
   )
   (command "_.arc" PT3 PT2 PT1)
   (ssadd (entlast) SS)
   (setq PT3 PT1)
   (setq J (+ 2 J))
);end repeat2
(command "_.pedit" (ssname SS 1) "" "j" SS "" "")
(setq ENT (entget (entlast)))
(foreach NNO '(6 8 62 48)
   (CH_IT NNO)
)
(command "_.erase" SS2 ED1 "")
(setq N (1+ N))
            );end progn2
          );end if2
      );end repeat1
      (prompt (strcat "\r完成转换                               ")
      )
    );end progn1
    (alert "Nothing selected!!")
  );end if1
  (setvar "osmode" OS)
  (command "_.undo" "end")
  (setvar "cmdecho" HOLDECHO)
  (princ)
)


(defun pp (obj /)
(vl-load-com)
(MASSOC 10  obj)
)

(defun massoc (key alist / x nlist)
(foreach x alist
(if (eq key (car x))
(setq nlist (cons (cdr x) nlist))
)
)
(reverse nlist)
)

;判断一个表中的各点的是不是在一直线上
(defun leo (listpoint / listnumber listpoint ang1 ang a list_pt)
  (setq list_pt listpoint)
  (setq listnumber (length list_pt))
  (if (>= listnumber 2)
     (setq ang1 (angle (car list_pt) (cadr list_pt)))
  )
  (setq a 1)
  (while (and (>= listnumber 2) (= a 1))
    (setq ang (angle (car list_pt) (cadr list_pt)))
    (if (equal ang1 ang 0.000001)
       (setq a 1)
       (setq a 2)
    )
    (setq ang1 ang)
    (setq list_pt (cdr list_pt))
    (setq listnumber (length list_pt))
  )
  (if (= listnumber 1)
    (setq b 123)
    (setq b 456)  ;b在主程序中设成变量
  )
)


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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

已领礼包: 11286个

财富等级: 富甲天下

发表于 2004-8-27 15:26:01 | 显示全部楼层
1、将程序拷贝到ACAD的支持目录SUPPORT中;
2、在命令行键入(load"spline-pline"),或用工具(T)-APPLOAD加载应用程序进行加载;
3、在命令行键入SPLINE_TO_PLINE执行,并根据提示选择SPLINE。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-11 10:19:40 | 显示全部楼层
谢谢你的程序!
有个问题请教一下:
Please specify the accuracy of conversion:
这一行要指定精度,其实是圆弧段数,能否输入真正的精度,如:0.005呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 11286个

财富等级: 富甲天下

发表于 2004-9-11 19:59:02 | 显示全部楼层
程序不是我写的。如果您能看懂程序,可以自己改改看。我的思路是这样的:先用将曲线分为4段,用求得的曲线长度(或面积)与原曲线长度(或面积)进行比较,如果误差大于给定值,则删去新曲线,段数加倍再画,直致满足要求。
另外贴一个椭圆(弧)转换程序,让大家试用。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-9-14 23:13:43 | 显示全部楼层
将圆切个小口,在试试编辑。好象可以变粗,但只限与圆
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-21 15:10 , Processed in 0.379546 second(s), 61 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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