找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 333|回复: 4

[求助] 求几个函数,麻烦各位大神了

[复制链接]

已领礼包: 201个

财富等级: 日进斗金

发表于 2020-11-26 16:17:44 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 a117034423 于 2020-11-26 16:24 编辑

1.已知实数x、y
求x*n(n为整数且>0)后与y最接近的实数且小于y,返回x*n的值
2.批量提取矩形、封闭多段线 X Y坐标并返回坐标值的函数(或提取矩形长宽、封闭多段线各边长的函数)
如果各位大神有算法,简单讲解也可以,我目前都是用坐标算的,有没有更简单的办法
3.动态块自定义参数批量替换
xd::block:setdynpropvalue o "距离1" dis 除了这个还有其他的吗?4.提取动态块自定义参数值的函数
(只提取)
麻烦各位大神了

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

已领礼包: 19个

财富等级: 恭喜发财

发表于 2020-11-26 18:03:24 | 显示全部楼层
善利用论坛搜索

动态块自定义特性,动态块特性
5 个回复 - 350 次查看

2020-2-9 22:07 - dcl1214 - A/VLISP

设置动态块的属性值
8 个回复 - 433 次查看

2017-5-19 13:29 - marting - A/VLISP

用VLISP存取动态块的属性
1 个回复 - 1262 次查看
问题: Is there an example showing how to access dynamic block properties? 解决方案: Here is a Visual Lisp example that iterates through dynamic properties of a selected block reference. If the ...
2016-5-17 09:30 - newer - A/VLISP

建议增加动态块类的几个方法
4 个回复 - 912 次查看
包括 AcDbDynBlockReference AcDbDynBlockTableRecord 几个属性 在获得Insert后,如果是 动态块 能够使用动态块的几个属性,比如直接获取 块定义(不是匿名块) ,也可以获取图中引用的所有该动态块,如 ACDB ...
2019-1-17 17:46 - st788796 - XDRX_API技术支持

如何提取动态块中的查询参数并标注在图框旁边?
37 个回复 - 2389 次查看
内容隐藏需要,请点击进去查看

求教: lisp 根据属性数值 修改 拉伸动态块 第三贴
11 个回复 - 1473 次查看
问题描述:我想实现这样的目的,对一个动态块输入属性值,根据属性值来控制拉伸的长度。之前我已经从论坛求得读取动态块属性以及根据数值控制拉伸长度的两个函数,但在两个函数结合起来的时候出错了。求大神帮忙,动 ...
2018-12-22 19:15 - 嘎嘎嘎123 - VBA、COM-ActiveX

用VLISP实现打印动态块的属性
2 个回复 - 182 次查看

2017-7-18 22:37 - marting - A/VLISP

动态块完全匹配
14 个回复 - 2155 次查看
(defun c:XDTB_DYNMat (/ e e1 properties) (xd::begin) (if (and (setq e (car (xdrx_entsel "\n拾取源动态块: " '((0 . "INSERT"))))) (if (xdrx_dynblock_isdyn e) t (progn ...
2013-10-9 09:19 - eachy - 每日插件

关于动态块的几个Vla函数
5 个回复 - 2288 次查看
1 判断是否是动态块 vlax-property-available-p vla-isdynamicblock a 返回值:T 是动态块,nil 否 b 返回值: :vlax-true 是动态块 :vlax-false 否 2 获取动态块属性 GetDynamicBlockPropertyies ...
2013-8-8 10:49 - st788796 - A/VLISP

API 应用之动态插入动态块
12 个回复 - 2666 次查看
说明:没有写*error* 部分,中断时可能无法退出,只需输入 (xdrx_pointmonitor) 然后在中断即可! 仅适用以下帖子附件之动态块http://www.xdcad.net/forum/forum.php?mod=redirect&goto=findpost&ptid=670072&pid=3 ...
2013-8-13 11:51 - st788796 - XDRX_API应用




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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2020-11-26 18:30:40 | 显示全部楼层
批量提取矩形、封闭多段线 X Y坐标并返回坐标值的函数(或提取矩形长宽、封闭多段线各边长的函数)
如果各位大神有算法,简单讲解也可以,我目前都是用坐标算的,有没有更简单的办法

不知道你说的坐标算是怎么算的,最好贴下你的代码

用LISP可以这样
命令: (setq ed (entget (entlast)))
((-1 . <图元名: 24c20ffb8b0>) (0 . "LWPOLYLINE") (330 . <图元名: 24c210009f0>) (5 . "4CB") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbPolyline") (90 . 6) (70 . 0) (43 . 0.0) (38 . 0.0) (39 . 0.0) (10 1.21291 4.10884) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 3.08813 5.73149) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 4.99541 3.82421) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 3.74905 2.57785) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 2.67875 2.9875) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (10 1.75434 2.32788) (40 . 0.0) (41 . 0.0) (42 . 0.0) (91 . 0) (210 0.0 0.0 1.0))

命令: (setq pts (vl-remove-if '(lambda(x)(/= (car x) 10)) ed))
((10 1.21291 4.10884) (10 3.08813 5.73149) (10 4.99541 3.82421) (10 3.74905 2.57785) (10 2.67875 2.9875) (10 1.75434 2.32788))

命令: (setq pp (mapcar 'cdr pts))
((1.21291 4.10884) (3.08813 5.73149) (4.99541 3.82421) (3.74905 2.57785) (2.67875 2.9875) (1.75434 2.32788))


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

使用道具 举报

已领礼包: 201个

财富等级: 日进斗金

 楼主| 发表于 2020-11-26 18:36:21 | 显示全部楼层
本帖最后由 a117034423 于 2020-11-26 18:41 编辑
Lisphk 发表于 2020-11-26 18:30
批量提取矩形、封闭多段线 X Y坐标并返回坐标值的函数(或提取矩形长宽、封闭多段线各边长的函数)
如果各 ...
代码在这里,大神,现在点计算还有点问题,但是我写的可能是太基础了,麻烦您指导啦
  1. (defun c:dss ()
  2.   (setvar "cmdecho" 0)
  3.       (setq osm (getvar "osmode"))
  4.       (setvar "osmode" 0)
  5.   (princ "<选择要拾取参数的板:>")
  6.   (setq mod1 (vl-remove nil (mapcar  '(lambda (x) (if (= (car x) 10) (cdr x))) (entget (car (entsel))))))
  7.   (setq w1 (abs (caar mod1))) ;求点1X坐标
  8.   (setq w2 (abs (caadr mod1)))
  9.   (setq w3 (abs (caaddr mod1)))
  10.   (setq w4 (abs (caar (cdddr mod1))))
  11.     (setq ww (abs (- (max w1 w2 w3 w4) (min  w1 w2 w3 w4)))) ;求板X向长度
  12.   (setq l1 (abs (cadar mod1))) ;求点1Y坐标
  13.   (setq l2 (abs (cadadr mod1)))
  14.   (setq l3 (abs (cadr (caddr mod1))))
  15.   (setq l4 (abs (cadr (cadddr mod1))))
  16.     (setq ll (abs (- (max l1 l2 l3 l4) (min  l1 l2 l3 l4)))) ;求板Y向长度
  17.   (setq str1 (strcat"板X向长度为:" "<" (rtos ww) ">"))
  18.   (setq str2 (strcat"板Y向长度为:" "<" (rtos ll) ">"))
  19.   (print str1)
  20.   (print str2)
  21.    (setvar "osmode" osm)
  22.    (setvar "cmdecho" 1)
  23.   )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 9个

财富等级: 恭喜发财

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 17:26 , Processed in 0.390294 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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