当前位置: 首页 > news >正文

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

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

(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))

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Python 编程实例
  • 计算机技术基础 (bat 批处理)Note6
  • 3096. 得到更多分数的最少关卡数目
  • 【leetcode详解】直角三角形:用空间换时间(O(m*n*(m+n))>O(m*n))(思路详解)
  • 使用Python做一个微信机器人
  • android 音频播放器,(二)SoundPool简介
  • 面试经典 222. 完全二叉树的节点个数
  • 身份证OCR识别接口如何对接?(二)
  • 《Linux运维总结:基于Ubuntu 22.04+x86_64架构CPU部署etcd 3.5.15二进制分布式集群》
  • 样式与特效(2)——新闻列表
  • java之方法引用 —— ::
  • c语言第七天笔记
  • IPython的魔法:深入探索%%pastebin命令的奥秘
  • Python切片的用法
  • STM32DMA数据传输
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • CentOS 7 防火墙操作
  • Codepen 每日精选(2018-3-25)
  • Docker: 容器互访的三种方式
  • go语言学习初探(一)
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • STAR法则
  • 程序员最讨厌的9句话,你可有补充?
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 码农张的Bug人生 - 初来乍到
  • 使用API自动生成工具优化前端工作流
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 我这样减少了26.5M Java内存!
  • - 转 Ext2.0 form使用实例
  • Java总结 - String - 这篇请使劲喷我
  • 从如何停掉 Promise 链说起
  • ​一些不规范的GTID使用场景
  • "无招胜有招"nbsp;史上最全的互…
  • #C++ 智能指针 std::unique_ptr 、std::shared_ptr 和 std::weak_ptr
  • #include
  • #微信小程序(布局、渲染层基础知识)
  • #微信小程序:微信小程序常见的配置传值
  • (1)SpringCloud 整合Python
  • (1)常见O(n^2)排序算法解析
  • (152)时序收敛--->(02)时序收敛二
  • (35)远程识别(又称无人机识别)(二)
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (十八)SpringBoot之发送QQ邮件
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (转)重识new
  • .dwp和.webpart的区别
  • .mp4格式的视频为何不能通过video标签在chrome浏览器中播放?
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .net core 的缓存方案
  • .net dataexcel winform控件 更新 日志
  • .net 后台导出excel ,word
  • .NET 命令行参数包含应用程序路径吗?
  • .NET轻量级ORM组件Dapper葵花宝典
  • /var/lib/dpkg/lock 锁定问题