找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 740|回复: 8

[求助] [求助]:各位大侠帮忙修改一下程序-序号标注

[复制链接]
发表于 2008-7-11 20:54:09 | 显示全部楼层 |阅读模式

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

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

×
本程序是一个制作带圈件号标注的lisp程序,程序目前功能非常简单,希望在高手们的帮助下,修改成一个功能相对强大的程序。
想达到的目的:1、能实现动态标注,2、数字记忆和递增功能(还是以自动输入为主)。

;本程序用于标注带圈设备序号,
(defun c:lj ()
(setq osm (getvar "osmode"))
(setvar "orthomode" 0)
(setvar "CMDECHO" 0)
(setvar "osmode" 0)
(command "layer" "n" "P-MARK" "c" "3" "P-MARK" "")
(command "layer" "s" "P-MARK" "")
(setq k (getint "请输入比例:")
(setq p1 (getpoint "\n请选择插入点:"))
(setq p2 (getpoint p1 "\n请选择文字插入的位置:"))
(setq st1 (getstring "\n请输入编号:"))
(setq sc k)
(command "donut" 0 (* 0.6 sc) p1 "")
;;;(command "style" "standard" "romans" (* 3.5 k) 0.8 "0" "n" "n")
(setq radiu (* 3 sc))
(setq dd (distance p1 p2))
(setq p3 (polar p1 (angle p1 p2) (- dd radiu)))
(setvar "osmode" 0)
(command "line" p1 p3 "")
(command "circle" p2 radiu)
(setq st1 st1)
(command "text" "s" "standard" "j" "mc" p2 (* 3 sc) "0" st1 "" "")
;;;(setvar "osmode" osmodetemp)
(setvar "osmode" osm)
(setvar "orthomode" 1)
(command "layer" "s" "0" "")
)

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

已领礼包: 23个

财富等级: 恭喜发财

发表于 2008-8-8 00:17:10 | 显示全部楼层
没有具体的问题,真没兴趣把整个程序读一遍,什么时候想加个对话框了找我.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-8-8 00:36:18 | 显示全部楼层
下面为修正后的程序,已经可以运行了.
(defun c:lj ()
(setq osm (getvar "osmode"))
(setvar "orthomode" 0)
(setvar "CMDECHO" 0)
(setvar "osmode" 0)
(if (not (tblsearch "layer" "P-MARK"))
(command "layer" "n" "P-MARK" "c" "3" "P-MARK" "")
)
(command "layer" "s" "P-MARK" "")
(setq p1 (getpoint "\n请选择插入点:"))
(setq p2 (getpoint p1 "\n请选择文字插入的位置:"))
(setq st1 (getint "\n请输入编号:"))
(if (= nil st1)
    (progn
    (setq st1 1))
)
(command "donut" 0 (* 0.6 (getvar "dimscale")) p1 "")
(setq radiu (* 3 (getvar "dimscale")))
(setq dd (distance p1 p2))
(setq p3 (polar p1 (angle p1 p2) (- dd radiu)))
(setvar "osmode" 0)
(command "line" p1 p3 "")
(command "circle" p2 radiu)
(command "text" "s" "standard" "j" "mc" p2 (* 3 (getvar "dimscale")) "0" st1)
(setvar "osmode" osm)
(setvar "orthomode" 1)
(command "layer" "s" "0" "")
(princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-8 02:33:07 | 显示全部楼层
最初由 rubbin 发布
[B]下面为修正后的程序,已经可以运行了.
(defun c:lj ()
(setq osm (getvar "osmode"))
(setvar "orthomode" 0)
(setvar "CMDECHO" 0)
(setvar "osmode" 0)
(if (not (tblsearch "layer" "P-MARK"))
(command "... [/B]

谢谢,运行是没有问题了,不过我运行的结果没有达到预期的结果,就是在输入时可以动态显示。例如:我可以让程序先确定要输入的序号,然后再选定P1点,然后再输入P2点,后面的两步就会以动态显示效果显示出来。能否实现呢?呵呵
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-8-8 10:01:51 | 显示全部楼层
  1. [FONT=courier new];; dtxh(动态序号) 动态带圈设备序号
  2. (defun c:dtxh (/ p1 p2 radiu s1 s2 s3 mode motion code p3 oss)
  3.   (cmdlasc0)
  4.   (xyp-MkLaCo "P-MARK" 3)
  5.   (setq        bh  (UINT 7 "" "编号" bh)
  6.         oss (getvar "osmode")
  7.   )
  8.   (while (setq p1 (getpoint "\n请选择插入点: "))
  9.     (setq p2        (polar p1 0 500)
  10.           radiu        (* 300 xyp-sc)
  11.     )
  12.     (setvar "osmode" 0)
  13.     (command "donut" 0 (* 60 xyp-sc) p1 "")
  14.     (command "line" p1 p2 "")
  15.     (setq s1 (entlast))
  16.     (command "circle" p2 radiu)
  17.     (setq s2 (entlast))
  18.     (xyp-Text 5 p2 (itoa bh))
  19.     (setq s3   (entlast)
  20.           bh  (1+ bh)
  21.           mode t
  22.     )
  23.     (princ "\n请选择放置位置: ")
  24.     (while mode
  25.       (setq motion (grread t 15 0)
  26.             code   (car motion)
  27.       )
  28.       (if (or (= code 2)
  29.               (= code 3)
  30.               (= code 25)
  31.           )
  32.         (setq mode nil)
  33.         (progn
  34.           (setq        p2 (cadr motion)
  35.                 p3 (polar p2 (angle p2 p1) radiu)
  36.           )
  37.           (xyp-SUBUPD s1 11 p3)
  38.           (xyp-SUBUPD s2 10 p2)
  39.           (xyp-SUBUPD s3 11 p2)
  40.         )
  41.       )
  42.     )
  43.     (setvar "osmode" oss)
  44.   )
  45.   (cmdla1)
  46. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2008-8-8 20:52:25 | 显示全部楼层
最初由 xyp1964 发布
[B]dtxh(动态序号) [/B]

哥哥,你的程序你早就给过我,但一加载了你的程序就是影响个别程序的运行,其中有一个程序是“加粗PL线”无法正常使用,可能是你的函数与我的程序有冲突吧!另外,你生成的序号标注字体为宋体,这不太符合一些作图的习惯!不知道哥哥能否再给改一下啊,谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-8-9 21:52:42 | 显示全部楼层
最初由 lsjzhj2004 发布
[B]
哥哥,你的程序你早就给过我,但一加载了你的程序就是影响个别程序的运行,其中有一个程序是“加粗PL线”无法正常使用,可能是你的函数与我的?.. [/B]

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

使用道具 举报

 楼主| 发表于 2008-8-12 08:23:53 | 显示全部楼层
最初由 xyp1964 发布
[B]
都没下?.. [/B]


哦,好像是不冲突了,谢谢哥哥。但能不能字体不用宋体,改为standard字体呢,不然生成完标号后再回来全部改为standard,毕竟费劲了一步!谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 16:18 , Processed in 0.524910 second(s), 48 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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