CAD-文字、图块、多行文字,沿多段线对齐到多段线的顶点,沿直线进行均分,都可以操作

news2024/12/23 18:46:50

图块和文字对齐直线-均布直线-对齐多段线顶点-旋转平行

(defun c:duiqi () 
  ;将图块与直线对齐,并均分。
  ;先创建的图块排最右
  ;先等分的坐标排最右
  ;刚好对应了
  (defun MoveToPosition (Blockname p_list / ent refPoint dx dy) 
    ;移动对象到指定坐标
    (prompt "\nSelect an object to move: ")
    ;获得图元名
    ;(setq ent (ssname (ssget) 0))
    ;获得图元信息
    (setq entlist (entget blockname))
    (princ entlist)
    (setq targetx (car p_list))
    (setq targety (cadr p_list))
    ;获得图元坐标
    (setq zb (cdr (assoc 10 entlist)))
    (princ zb)
    
    (if blockname 
      (progn 
        (prompt "\nSpecify reference point for the object: ")
        (setq refPoint zb)
        ;都移动到零点
        ;(setq targetX 0
        ;      targetY 0
        ;)

        (setq dx (- targetX (car refPoint)))
        (setq dy (- targetY (cadr refPoint)))

        (command "move" blockname "" "" (list dx dy 0) "")
        (princ)
      )
      (princ "No entity selected.")
    )
  )

  (defun GetPointList (startPoint endPoint n / pointList dx dy dz stepX stepY stepZ i) 
    (IF (< N 2)
    (SETQ N 2)
    )
    (setq pointList nil)
    (setq dx (- (car endPoint) (car startPoint)))
    (setq dy (- (cadr endPoint) (cadr startPoint)))
    (setq dz (- (caddr endPoint) (caddr startPoint)))
    (setq stepX (/ dx (- n 1)))
    (setq stepY (/ dy (- n 1)))
    (setq stepZ (/ dz (- n 1)))
    (setq i 0)

    (while (< i n)
      (setq point (list (+ (car startPoint) (* i stepX)) 
                        (+ (cadr startPoint) (* i stepY))
                        (+ (caddr startPoint) (* i stepZ))
                  )
      )
      (setq pointList (cons point pointList))
      (setq i (+ i 1))
    )

    pointList
  )

  ;; 示例用法:
  ;; (c:GetPointList '(0.0 0.0 0.0) '(100.0 100.0 0.0) 5)
  ;; 这将返回从(0, 0, 0)到(100, 100, 0)的4个等分点的列表
  ;只选择图块,67 0只得模型空间
  (princ "\n请选择图块:")
  (Setq SS1 (SsGet (list (cons 0 "INSERT,MTEXT,TEXT") (cons 67 0))))
  ;获得直线句柄
  (princ "\n请选择要对齐的直线:")
  (SETQ LNAME (SSNAME (SSGET) 0))
  ;获得直线信息
  (setq L_list (entget lname))
  ;获得起始坐标
  (setq startP (cdr (assoc 10 l_list)))
  ;获得终点坐标
  (setq EndP (cdr (assoc 11 l_list)))
  (princ startp)
  (princ "\n")
  (princ endp)
  (list startp endp)

  ;(setq n (GetInt "请输入分割数量:"))
  (setq n (sslength ss1))
  ;获得等分坐标
  (setq Block_Plist (GetPointList startp endp n))
  (princ block_plist)
  ;移动图块到坐标

  ;按坐标放置图块
  (Repeat (SsLength SS1) 
    (Setq Blockname (SsName SS1 0))
    (SsDel blockname SS1)

    (movetoposition blockname (car block_plist))
    (setq block_plist (cdr block_plist))
  )
)
(defun c:duidui () 
  ;沿多段线对齐对象与多段线的各个顶点
  (defun MoveToPosition (Blockname p_list / ent refPoint dx dy zb) 
    ;移动对象到指定坐标
    (prompt "\nSelect an object to move: ")
    ;获得图元名
    ;(setq ent (ssname (ssget) 0))
    ;获得图元信息
    (setq entlist (entget blockname))
    (princ entlist)
    (setq targetx (car p_list))
    (setq targety (cadr p_list))
    ;获得图元坐标
    (setq zb (cdr (assoc 10 entlist)))
    (princ zb)
    
    (if blockname 
      (progn 
        (prompt "\nSpecify reference point for the object: ")
        (setq refPoint zb)
        ;都移动到零点
        ;(setq targetX 0
        ;      targetY 0
        ;)

        (setq dx (- targetX (car refPoint)))
        (setq dy (- targetY (cadr refPoint)))

        (command "move" blockname "" "" (list dx dy 0) "")
        (princ)
      )
      (princ "No entity selected.")
    )
  )

  (vl-load-com)
  (princ "\n请选择多段线:")
  (setq ss (ssget))
  (setq thename (ssname ss 0))
  (ssdel thename ss)
  (setq line_info (entget thename))
  (setq zuma (caar line_info))
  (princ zuma)
  (setq zuobiao (vl-remove-if-not '(lambda (pair) (= (car pair) 10)) line_info))
  ;(princ zuobiao)
  ;(princ zb3)
  ;(command-s "_.move")
  (setq zb ())
  (while zuobiao
    (setq zb (cons (list (cadr (car zuobiao)) (caddr (car zuobiao))) zb))
    (setq zuobiao (cdr zuobiao))
  )
    (princ zb)
  ;将选中的对象移动到多段线端点
  (princ "\n请选择要对齐的对象:")
  (setq ss1(ssget (list (cons 0 "INSERT,TEXT,MTEXT") (cons 67 0))))
  ;按坐标放置图块
  (IF SS1
    (Repeat (SsLength SS1) 
      (if zb
        (progn
          (Setq Blockname (SsName SS1 0))
          (SsDel blockname SS1)
          (movetoposition blockname (car zb))
          (setq zb (cdr zb))
        )

      )
    )
  )

  (princ)
  )

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1973017.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Git-驯化】一文学会git中对代码进行存储操作:git stash技巧

【Git-驯化】一文学会git中对代码进行存储操作&#xff1a;git stash技巧 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &#x1f387; 免费获取相关内…

@change事件传参

change事件传参 change"(value)>handleChange(value, item,index)" 这样可以接收index参数区分是哪一个组件事件&#xff0c;又可以接收子组件传的value值 <div class"boxItem" v-for"(item, index) in checkPeopleList" :key"inde…

VUE实现TAB切换不同页面

VUE实现TAB切换不同页面 实现效果 资源准备 ReceiveOrderList, TodoListMulti, SignList 这三个页面就是需要切换的页面 首页代码 <template><div><el-tabs v-model"activeTab" type"card" tab-click"handleTabClick"><…

用于相位解包的卷积和空间四向 LSTM 联合网络

原文&#xff1a;A Joint Convolutional and Spatial Quad-Directional LSTM Network for Phase Unwrapping 作者&#xff1a;Malsha V. Perera 和 Ashwin De Silva 摘要&#xff1a; 相位展开是一个经典的病态问题&#xff0c;其目标是从包裹相位中恢复真实的相位。本文&…

鸿蒙(API 12 Beta2版)NDK开发【使用Node-API扩展能力接口】

简介 [扩展能力接口]进一步扩展了Node-API的功能&#xff0c;提供了一些额外的接口&#xff0c;用于在Node-API模块中与ArkTS进行更灵活的交互和定制&#xff0c;这些接口可以用于创建自定义ArkTS对象等场景。 Node-API接口开发流程参考[使用Node-API实现跨语言交互开发流程]…

非负数、0和正整数 限制最大值且保留两位小数在elementpuls表单中正则验证

一、结构 <el-form-item label"单价&#xff1a;" prop"price"><el-inputv-model.trim"formData.price"placeholder"请输入"blur"formMethod.fixTwo"><template #append>(元)</template></el-i…

基础算法:离散化(C++实现)

文章目录 1. 离散化的定义2. 离散化例题2.1 离散化二分2.2 离散化哈希表 1. 离散化的定义 离散化是一种在程序设计和算法优化中常用的技术&#xff0c;其核心思想是将无限空间中有限的个体映射到有限的空间中去&#xff0c;以此提高算法的时空效率。具体来说&#xff0c;离散化…

Docker 安装 GitLab教程

本章教程,主要介绍如何在Docker 中安装GitLab。 GitLab 是一个开源的 DevOps 平台,提供了一整套工具,用于软件开发生命周期的各个阶段,从代码管理到 CI/CD(持续集成和持续交付/部署),再到监控和安全分析。 一、拉取镜像 docker pull gitlab/gitlab-ce:latest二、创建 G…

【React】探讨className的正确使用方式

文章目录 一、className的正确用法二、常见错误解析三、实例解析四、错误分析与解决五、注意事项六、总结 在React开发中&#xff0c;正确使用className属性对组件进行样式设置至关重要。然而&#xff0c;由于JavaScript和JSX的特殊性&#xff0c;开发者常常会犯一些小错误&…

ShardingSphere实战(2)- 水平分表

上篇博客&#xff0c;我们讲了 ShardingSphere实战&#xff08;1&#xff09;- 分库分表基础知识&#xff0c;这篇博客&#xff0c;正式开始实操。 项目环境&#xff1a; JDK11 MySQL 8.0.30 Springboot 2.7.4 Mybatis ShardingSphere HikariCP 连接池 一、Maven 依赖 <…

filebeat发送日志

filebeat: 1.可以在本机收集日志 2.也可以远程收集日志 3.轻量级的日志收集系统&#xff0c;可以在非Java环境运行 logstash是在jvm环境中运行&#xff0c;资源消耗很高&#xff0c;启动一个logstash需要消耗500M左右的内存 filebeat只消耗10M左右的内存 test3是装有logstash的…

C语言的内存布局

根据 C 语言的内存布局规律&#xff0c;通常局部变量和全局变量哪一个的地址更小&#xff1f; 答&#xff1a;如图所示。 下面代码中&#xff0c;为何两个不同的变量可以存放在同一个地址上&#xff1f; #include <stdio.h> void func1(void); void func2(void); voi…

安装 qcloud-python-sts 失败 提示 gbk codecs decode byte 应该如何解决

安装 qcloud-python-sts 失败 提示 gbk codecs decode byte 应该如何解决 解决方案&#xff1a; 将windows 修改为utf-8编码格式 解决步骤如下&#xff1a; 1. 进入控制台 2. 点击区域 4. 点击管理 4.勾选UTF-8 5.重启系统即可

Java零基础之多线程篇:线程间如何通信?

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。运营社区&#xff1a;C站/掘金/腾讯云&#xff1b;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一…

计算机技术基础 (bat 批处理)Note6

计算机技术基础 &#xff08;bat 批处理&#xff09;Note6 本节主要讲解FOR命令语句&#xff08;循环&#xff09;在 bat 批处理中的使用 (part 2) 变量延迟 命令语句 在没有开启变量延迟的情况下&#xff0c;批处理命令行中的变量改变&#xff0c;必须到下一条命令才能体现…

C++ STL在算法题中的常用语法

Vector 1.将vector<int>中的元素全部置换为0 fill(vec.begin(), vec.end(), 0); 2.vector容器是可以直接用比较是否值等的&#xff01; Unordered_set 1. unordered_set的删除&#xff08;count的值也会减少&#xff09; 2.unordered_map中的int默认值是0&#xff0c;…

Prometheus-v2.45.0+Grafana+邮件告警

目录 普罗米修斯监控架构介绍 Prometheus 监控架构 1. 数据抓取&#xff08;Scraping&#xff09; 2. 时序数据库&#xff08;TSDB&#xff09; 3. 数据模型 4. PromQL 查询语言 5. 告警&#xff08;Alerting&#xff09; 6. Alertmanager 7. 可视化&#xff08;Visu…

从0开始搭建vue + flask 旅游景点数据分析系统( 六):搭建后端flask框架

这一期开始开发header部分&#xff0c;预期实现两个目标&#xff1a; 创建 Flask 项目导入旅游数据后端实现旅游数据的查询 1 python 环境 & 开发环境 python 安装和pycharm安装需要去网上找包&#xff0c;建议python使用3.8 或者3.9版本 2 新建项目 我们新建一个文件…

Kafka详解以及常见kafka基本操作

1、 kafka 是什么,有什么作用 Kafka是一个开源的高吞吐量的分布式消息中间件&#xff0c;对比于缓冲和削峰&#xff1a;上游数据时有突发流量&#xff0c;下游可能扛不住&#xff0c;或者下游没有足够多的机器来保证冗余&#xff0c;kafka在中间可以起到一个缓冲的作用&#x…

Qt项目——文本编辑器(Bug/疑问)

项目地址&#xff1a;GitHub - Outlier9/CatEditor: Cat文本编辑器--Qt 有帮助的话各位点点 star 啦&#xff0c;感谢&#xff01; 如果有需要学习该项目的人&#xff0c;觉得看文档较为困难&#xff0c;可以加我联系方式&#xff0c;给github点个star后可免费提供学习视频&…