找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1739|回复: 3

[求助] 加粗所有弧线段发现个问题,求解

[复制链接]

已领礼包: 363个

财富等级: 日进斗金

发表于 2014-5-29 10:15:40 | 显示全部楼层 |阅读模式

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

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

×
在学习XDAPI函数时,发现个问题,加粗所有弧线段宽度时,有些弧线段不能加粗,以下代码是XDRX API帮助中的。并附测试DWG.

  1. (defun c:XDTB_PlineArcSegWidth (/ e sw ew p i pts area v)
  2. (xd::begin)
  3. (if (and
  4.        (setq e (xdrx_entsel "\n选择pline: " '((0 . "LWPOLYLINE"))))
  5.        (progn
  6.          (sssetfirst nil (xd::entity->pickset (list (car e))))
  7.          t
  8.        )
  9.        (setq sw (getdist (cadr e) "\n起始宽度: "))
  10.        (if (setq ew (getdist (cadr e) (strcat "\n终止宽度<" (rtos sw 2 2) ">: ")))
  11.          ew
  12.          (setq ew sw)
  13.        )
  14.      )
  15.    (progn
  16.      (setq vnum (xdrx_polyline_numverts (setq e (car e))))
  17.      (setq i 0)
  18.      (repeat vnum
  19.        (if (= "kArc" (xdrx_polyline_segtype e i))
  20.           (xdrx_setpropertyvalue e "WidthAt" (list i sw ew))
  21.        )
  22.        (setq i (1+ i))
  23.      )
  24.    )
  25. )
  26. (xd::end)
  27. (princ)
  28. )


测试.zip

6.2 KB, 下载次数: 1, 下载积分: D豆 -1 , 活跃度 1

评分

参与人数 1D豆 +6 收起 理由
XDSoft + 6 出题引导交流奖!

查看全部评分

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

已领礼包: 145个

财富等级: 日进斗金

发表于 2014-5-29 21:58:21 | 显示全部楼层
代码写的很漂亮,如果学会怎么让在论坛帖LISP代码就更好了。

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-11-28 22:53:14 | 显示全部楼层
去看看 多段线TAPER的插件

http://bbs.xdcad.net/thread-718854-1-1.html

                               
登录/注册后可看大图

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-11-28 23:00:18 | 显示全部楼层
把(xdrx_setpropertyvalue e "widthat" (list i sw ew)) 改成 (xdrx_setpropertyvalue e "WidthsAt" (list i sw ew)) 就行了
不是 "Widthat" 是 "Widthsat"


  1. (defun c:XDTB_PlineArcSegWidth (/ e sw ew p i pts area v)
  2. (xd::begin)
  3. (if (and
  4.        (setq e (xdrx_entsel "\n选择pline: " '((0 . "LWPOLYLINE"))))
  5.        (progn
  6.          (sssetfirst nil (xd::entity->pickset (list (car e))))
  7.          t
  8.        )
  9.        (setq sw (getdist (cadr e) "\n起始宽度: "))
  10.        (if (setq ew (getdist (cadr e) (strcat "\n终止宽度<" (rtos sw 2 2) ">: ")))
  11.          ew
  12.          (setq ew sw)
  13.        )
  14.      )
  15.    (progn
  16.      (setq vnum (xdrx_polyline_numverts (setq e (car e))))
  17.      (setq i 0)
  18.      (repeat vnum
  19.        (if (= "kArc" (xdrx_polyline_segtype e i))
  20.           (xdrx_setpropertyvalue e "WidthsAt" (list i sw ew))
  21.        )
  22.        (setq i (1+ i))
  23.      )
  24.    )
  25. )
  26. (xd::end)
  27. (princ)
  28. )



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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 23:02 , Processed in 0.382208 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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