明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: mico_ye

能自动并带手动调整线型比例的小东东

  [复制链接]
发表于 2009-3-19 01:53:00 | 显示全部楼层
不错的小工具~~
感谢分享~
发表于 2009-3-19 06:59:00 | 显示全部楼层

下来学习!谢谢分享

发表于 2009-3-20 10:01:00 | 显示全部楼层

真是学到太多东西了!!!

谢谢~~

发表于 2009-4-25 15:12:00 | 显示全部楼层
应该再增加一个功能,就是调整好比例后让用户选择是否改变整个层的操作。
发表于 2009-4-25 18:05:00 | 显示全部楼层
下载了,学习中
发表于 2009-4-26 13:15:00 | 显示全部楼层
我试试
发表于 2009-4-27 22:29:00 | 显示全部楼层

;;;***********************************
;;; No.22 线型比例缩放 函数           
;;;    -By Ayunger Studio 2009.04.27
;;;***********************************
(defun C:ayLTScale (/ SS1 entName1 entData1 xType dScale newLTScale i)
 (setq dScale 0.5)
 (while (not (setq SS1 (ssget '((0 . "ARC,CIRCLE,ELLIPSE,*LINE"))))))
 (prompt "\n【提示】放缩系数增大(F)/减小(S)...\n")
 (while (progn (princ (strcat "\r线型比例 鼠标右键放大/左键缩小 或 退出[空格], 当前系数=" (rtos dScale 2 3) "    "))
           (setq xType (grread))
               (not (or (equal xType '(2 13)) (equal xType '(2 32)))))
  (setq i 0)
  (if (or (= (car xType) 12) (= (car xType) 3)); 3=鼠标左键缩小, 12=鼠标右键放大.
   (while (< i (sslength SS1))
    (setq entName1 (ssname SS1 i))
    (setq entData1 (entget entName1))
    (if (assoc 48 entData1)
     (setq newLTScale (cdr (assoc 48 entData1)))
     (setq newLTScale 1.0)
    );end_if
    
    (if (= (car xType) 12);12=鼠标右键放大.
     (setq newLTScale (+ newLTScale dScale));then
     (if (> newLTScale dScale) (setq newLTScale (- newLTScale dScale)))
    );end_if
    (ayEntMod1 entName1 48 newLTScale)
    (setq i (+ i 1))
   );end_while i
  );end_if
  (if (or (equal xType '(2 70)) (equal xType '(2 102))
      (equal xType '(2 83)) (equal xType '(2 115)));放缩系数增大(F)/减小(S).
   (if (or (equal xType '(2 70)) (equal xType '(2 102)));F=系数增大.
    (setq dScale (* dScale 2.0));then
    (setq dScale (* dScale 0.5));else
   );end_if
  );end_if
 );end_while
 (princ)
);end_defun

发表于 2009-4-28 10:37:00 | 显示全部楼层
支持楼上分享精神,请提供 AYENTMOD1 子程序
发表于 2009-4-29 22:05:00 | 显示全部楼层

抱歉,一时的疏忽,对你造成的不便表示深深的歉意。

;;;**********************************
;;; No.7-1 替换对象指定DXF码的内容  
;;;**********************************
(defun ayEntMod1 (entName1 DXFcode newValue / cc)
  (if (setq cc (assoc DXFcode (entget entName1)))
  (entmod (subst (cons DXFcode newValue) (assoc DXFcode (entget entName1)) (entget entName1)));then
  (entmod (append (entget entName1) (list (cons DXFcode newValue))));else
  );end_if
  (entupd entName1)
);end_defun

 楼主| 发表于 2009-5-5 13:02:00 | 显示全部楼层
新增序号球,原码提供,请大家多多指教。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-16 16:00 , Processed in 0.170839 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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