明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: woxin168

[源码] 双向偏移命令源码---再次注册,发贴纪念

  [复制链接]
发表于 2023-9-22 22:16:09 | 显示全部楼层
感谢楼主分享
 楼主| 发表于 2023-9-23 20:59:15 | 显示全部楼层
别的帖子有引出序号的程序,改了一下,供大家参考:
;;引出序号程序
(defun c:yy(/ ht zj n tt txt p1 )
    (command "clayer" "1");设置到1层;
    (setvar "osmode" 0)
    (setq ht 3)
    (setq zj (/ ht 3))
    (setq n 0)
    (while (= n 0)
       (setq txt (getstring "\n-->请输入文字:"))
         (if (/= txt "")
           (progn  (setq p1 (getpoint "\n-->请指定引出点:"))
                   (command "circle" p1 0.25)
                   (zcx) )
           (setq n 1))
     )
    (setvar "osmode" "247")
    (princ)
)
发表于 2023-9-24 02:10:57 | 显示全部楼层
woxin168 发表于 2023-9-23 20:59
别的帖子有引出序号的程序,改了一下,供大家参考:
;;引出序号程序
(defun c:yy(/ ht zj n tt txt p1 )
...

大佬,能来个动画演示一下么
发表于 2023-9-24 04:06:23 | 显示全部楼层
大佬,可以再改一个偏移的对象跟随当前图层当前线型么?不新建图层
 楼主| 发表于 2023-9-24 08:10:40 | 显示全部楼层
研究半天这两句话的区别,没研究出来,输出文字的宽高比例不一样,还请高人指点:  

(entmakex (list '(0 . "text") (cons 1 txt)(cons 7 "STANDARD")(cons 10 p3) (cons 40 zg)))
(command "text" P3 zg 0 txt)
 楼主| 发表于 2023-9-24 17:17:33 | 显示全部楼层
mashanjie 发表于 2023-9-24 04:06
大佬,可以再改一个偏移的对象跟随当前图层当前线型么?不新建图层

改倒是可以改,但是选取偏置后的图元比较麻烦。有个简单办法,可否解决你的问题:就是:运行前,把待偏置的图元刷到当前图层和线性,这样再偏置就满足你的需要。
发表于 2023-9-24 18:28:55 | 显示全部楼层
woxin168 发表于 2023-9-24 17:17
改倒是可以改,但是选取偏置后的图元比较麻烦。有个简单办法,可否解决你的问题:就是:运行前,把待偏置 ...

就正常双向偏移,偏移后的图元跟随当前图元颜色线型,可以自行修改偏移后的颜色,即可。很简单把lsp里面新建图层5和线型那里取消,改成能自定义偏移后的图元颜色。0图层那个也不需要。能帮忙整一个么?
发表于 2023-9-24 18:33:37 | 显示全部楼层
woxin168 发表于 2023-9-24 17:17
改倒是可以改,但是选取偏置后的图元比较麻烦。有个简单办法,可否解决你的问题:就是:运行前,把待偏置 ...

(defun c:sx (/ getds ss i e obj)
  (vl-load-com)
  (setvar 'cmdecho 0)
  (initget 2)
  (setq getds (getdist "\n输入偏移距离<可直接量取>:"))
  (if (not getds)
    (exit)
  )
  (setq ss (ssget '((0 . "Arc,Circle,Ellipse,*Line"))))
  (if (not ss)
    (exit)
  )
  (setq i 0)
  (repeat (sslength ss)
    (setq e   (ssname ss i)
          obj (vlax-ename->vla-object E)
          i   (1+ i)
    )
    (vl-catch-all-apply 'vla-offset (list obj getds))
    (vl-catch-all-apply 'vla-offset (list obj (* getds -1)))
  )
  (if (not (getpoint "\n按鼠标左键不删除源对象 <空格删除>"))
    (command "_.ERASE" (ssget "p") "")
  )
  (princ)
)

这个大哥能不能帮我修改一下, (setq getds (getdist "\n输入偏移距离<可直接量取>:"))   这个<可直接量取>改成自己能修改距离,另外这个也没有偏移能指定颜色,比如当前图元是白色,偏移后的是绿色。麻烦大哥帮我完善一下这两项可行?
发表于 2023-9-24 18:37:19 | 显示全部楼层
还有个问题,我的那个双向偏移,用个个把小时或一段时间后就会出错,不能用了,得重新加载或重启CAD,有人说是(vl-load-com)这个引起的,我也不懂,能指点一下么,看看如果修改能一直正常使用
发表于 2023-9-26 08:50:14 | 显示全部楼层
woxin168 发表于 2023-9-23 20:59
别的帖子有引出序号的程序,改了一下,供大家参考:
;;引出序号程序
(defun c:yy(/ ht zj n tt txt p1 )
...

子函数 (zcx) 能提供一下吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 06:44 , Processed in 0.165576 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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