找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1781|回复: 10

[曲线] 连接曲线(支持模糊精度)对话框版

[复制链接]

已领礼包: 58个

财富等级: 招财进宝

发表于 2017-8-21 15:53:09 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 newer 于 2017-8-21 16:19 编辑

连接多段线(对话框版).gif

Lispboy的源码基础上:

增加了对话框
增加了精度设置
增加了加粗曲线设置
下载今天的API解决部分情况下不能正确连接的问题

QQ截图20170821154933.png

原贴地址 http://bbs.xdcad.net/forum.php?m ... hlight=%B8%B4%CF%DF

  1. (defun c:convert2pline (/              xd::pickset:numentities                        *error*              precision            ss
  2.                         ss1              width            e
  3.                         i
  4.                        )
  5. ;;;--funtions to be defined---------------------------------------------------
  6. ;;;---------------------------------------------------------------------------
  7. ;;;------*error*--------------------------------------------------------------
  8.   (defun *error* (msg)
  9.     (if        (dcl-form-isactive convert2pline/form1)
  10.       (dcl-form-close convert2pline/form1)
  11.     )
  12.     (apply 'xdrx_document_setprec precision)
  13.   )
  14. ;;;|返回选择集实际的实体数|;--------------------------------------------------
  15.   (defun XD::Pickset:NumEntities (ss / i)
  16.     (setq i 0)
  17.     (xdrx_setsstodb ss 0)
  18.     (while (xdrx_getentdata 0) (setq i (1+ i)))
  19.     i
  20.   )
  21. ;;;------main program---------------------------------------------------------
  22. ;;;---------------------------------------------------------------------------
  23. ;;;---load odcl form----------------------------------------------------------
  24.   (command "_opendcl")
  25.   (dcl-project-import
  26.     '("YWt6Aw4RAAAQdpLcBuKT6DUVLT9quYFJ0XBL08texg4vzxwvLe1YSJc4Ojo6JdMoLi76utooM2Fq"
  27.       "1z+6xFKWJGnECJttAv6e/cTXRUH+YT6ulDC6OZ3ntzNYiXHIuixVW4kMYcFHmbDiRw2wx60s4lW8"
  28.       "w+QwHWpd5j5wncb+UPJf8c2s7P19niN9rtYhOstD+fpK2TpXWIlSXJa/cLrv6Mn6ynA0BTpaV9/a"
  29.       "B5XsTVPqSMzS4i+HuHIjqkO4MyFPCvUALFpvx+lKXZjVYAnq1uIPrR0o4HevkUiJ8mdB9168pLYr"
  30.       "rrkEVnlAxvlybaJVDWK5zgrSAF+adGIT+MQzQj8C98Y2guCGXI8znJW6X7m1QTYgXijaQf2ojDKj"
  31.       "V9Vddurlyi2q2gfmnf3GIzP1xdRwqxSbuUuF4/45gLK0c0FfADSC5oZZp82vzUbAl//P4gSVF/2U"
  32.       "zgOytmuo7RBIxu0pKWPr3lI2kpDoK1A2Ptdeh5Zgh45AD00PwBzOTzzjWWDQZpkCq3BjW4dHnHKL"
  33.       "QTsC8kY5AvOGaI83nKf0ATRCGZNPdY7nkoX6eHHJrYkhkgLzAm51uN5x1KLayK2EOYFi4aHLRX1I"
  34.       "QPOC7uvJFgB2EQJA3IBk90egqSaIFWCP+i3GcX0W7RU2vFRRGWWItoNyqg0VudLITTsIKpuvRLNJ"
  35.       "tvDTGrkk1aHRx6EMP41ItN12j2hkgXOPH4yleLFC41Yq2auGSFdkYVd1SScHKokOrgz5mH0aL1EP"
  36.       "YY8AnGDM5tW+GIweKytm/CVr5HJQKmsci9TODNX897MEK1aPnNT8wbWSyxTXctjp1LTOcYE/G66k"
  37.       "H/3jImc8w8zPsuYb6sM85tzo1bp9qihLkFAPq57SIZTSIF71BxFn3haYAQm2xYkFC5u79zsZkKEY"
  38.       "VBmYQufWWSLj99Gfs9rVJvjBGXNHz3UQMNJIRiEwupRHj5EMvLp7m7q1tQkw0/ri5rxMgkkUtvfq"
  39.       "hYJz7HaJzQ=="
  40.      )
  41.   )
  42.   (dcl-project-load "convert2pline")
  43.   (dcl-form-show convert2pline/form1)
  44.   (setq box (xdrx_drawing_pixelbox))
  45.   (dcl_form_setpos
  46.     convert2pline/form1
  47.     (car (last box))
  48.     (cadr (last box))
  49.   )
  50. ;;;---load odcl form----------------------------------------------------------
  51.   (xdrx_begin)
  52.   (setq precision (xdrx_document_getprec))
  53.   (while (progn        (prompt "\r选取要变复线的LINE,ARC,*POLYLINE<退出>:")
  54.                 (setq ss (ssget '((0 . "LINE,ARC,*POLYLINE"))))
  55.          )
  56.     (xdrx_document_setprec
  57.       (atof (dcl-control-gettext convert2pline/form1/textbox1))
  58.       (cadr (xdrx_document_getprec))
  59.     )
  60.     (setq
  61.       width (atof (dcl-control-gettext convert2pline/form1/textbox2))
  62.     )
  63.     (xdrx_setmark)
  64.     (xdrx_curve->polyline ss)
  65.     (if        (setq ss1 (xdrx_getss))
  66.       (xdrx_setsstodb ss1 0)
  67.       (xdrx_setsstodb ss 0)
  68.     )
  69.     (setq i 0)
  70.     (while (setq e (xdrx_getentdata 0))
  71.       (xdrx_setpropertyvalue e "constantwidth" width)
  72.       (setq i (1+ i))
  73.     )
  74.     (prompt (strcat "\n选择了 "
  75.                     (itoa (sslength ss))
  76.                     " 个实体,转换成了 "
  77.                     (itoa i)
  78.                     " 个多段线.\n"
  79.             )
  80.     )
  81.   )
  82.   (xdrx_end)
  83.   (if (dcl-form-isactive convert2pline/form1)
  84.     (dcl-form-close convert2pline/form1)
  85.   )
  86.   (apply 'xdrx_document_setprec precision)
  87.   (princ)
  88. )
  89. ;;;---------------------------------------------------------------------------




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

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-8-21 16:07:04 | 显示全部楼层
建议非模式对话框,用

  1.   (setq box (xdrx_drawing_pixelbox))
  2.   (dcl_form_setpos 非模式对话框变量 (car (last box)) (cadr (last box)))



在窗口的左上角显示,免得还得挪。

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

使用道具 举报

已领礼包: 58个

财富等级: 招财进宝

 楼主| 发表于 2017-8-21 16:10:36 | 显示全部楼层

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-8-21 16:19:52 | 显示全部楼层

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-8-21 16:24:59 | 显示全部楼层

这几个帖子

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

http://bbs.xdcad.net/forum.php?m ... 5839&highlight=join

你看看,有空,综合下功能,也帮做个对话框版本,谢谢!

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

使用道具 举报

已领礼包: 58个

财富等级: 招财进宝

 楼主| 发表于 2017-8-21 16:38:04 | 显示全部楼层

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

使用道具 举报

已领礼包: 233个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 104个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-1-5 15:10:19 | 显示全部楼层
有部分代码还可以优化,就是设置多段线线宽的

  1. (setq i 0)
  2.     (while (setq e (xdrx_getentdata 0))
  3.       (xdrx_setpropertyvalue e "constantwidth" width)
  4.       (setq i (1+ i))
  5.     )


可以用 xdrx_setpropertyvalue的选择集版本 xdrx_entity_setproperty

  1. (xdrx_entity_setproperty ss "constantwidth" width)

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-1-5 15:14:40 | 显示全部楼层

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

使用道具 举报

已领礼包: 104个

财富等级: 日进斗金

发表于 2018-1-5 15:31:44 | 显示全部楼层

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 03:19 , Processed in 0.438220 second(s), 51 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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