明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 10410024

cad图块的自动标注定位

  [复制链接]
发表于 2012-1-10 10:18:40 | 显示全部楼层
刚才的程序第一个command写错了,dimy应改成dimx(command "_dimaligned" pt (list dimx (cadr pt)) (list dimx (- (cadr pt) 10)))
回复

使用道具 举报

 楼主| 发表于 2012-1-10 12:01:50 | 显示全部楼层
byghbcx 发表于 2012-1-10 10:18
刚才的程序第一个command写错了,dimy应改成dimx(command "_dimaligned" pt (list dimx (cadr pt)) (list d ...

你的测试图非常好!。程序我不会改啊,能否重新粘贴一下呢?另外能否将标注移开一定距离,至少不要与块埃在一起,那样就完美了。谢谢!
回复

使用道具 举报

发表于 2012-1-10 13:51:33 | 显示全部楼层
10410024 发表于 2012-1-10 12:01
你的测试图非常好!。程序我不会改啊,能否重新粘贴一下呢?另外能否将标注移开一定距离,至少不要与块埃 ...

距离与文字的大小要看你的图的尺寸单位,
  1. (defun c:tt( / oldvar lay ss n xlist ylist en pt1 pt2 ang ss1 pt x y xlist1 ylist1 dimx dimy x1 x2 y1 y2)
  2.   (command "_.undo" "be")
  3.   (setq oldvar (mapcar 'getvar (list "dimdsep" "dimtxt" "dimblk" "osmode")))
  4.   (mapcar 'setvar (list "dimdsep" "dimtxt" "dimblk" "osmode") (list "." 5 "_archtick" 0));5为文字的大小
  5.   (setq lay (cdr (assoc 8 (entget (car (entsel "\n请选择轴线所在图层:"))))))
  6.   (setq ss (ssget "x" (list (cons 0 "line") (cons 8 lay))))
  7.   (setq n 0 xlist nil ylist nil)
  8.   (if ss
  9.     (progn
  10.       (repeat (sslength ss)
  11.         (setq en (ssname ss n))
  12.         (setq pt1 (cdr (assoc 10 (entget en))) pt2 (cdr (assoc 11 (entget en))))
  13.         (setq ang (angle pt1 pt2))
  14.         (cond ((or (= ang 0) (= ang pi)) (setq ylist (cons (cadr pt1) ylist)))
  15.               ((or (= ang (* 0.5 pi)) (= ang (* 1.5 pi))) (setq xlist (cons (car pt1) xlist)))
  16.               )
  17.         (setq n (1+ n))
  18.       )
  19.       (princ "\n请选择要标注尺寸的图块:")
  20.       (setq ss1 (ssget '((0 . "insert"))) n 0)
  21.       (if ss1
  22.         (progn
  23.           (repeat (sslength ss1)
  24.             (setq en (ssname ss1 n))
  25.             (setq pt (cdr (assoc 10 (entget en))))
  26.             (setq x (car pt) y (cadr pt))
  27.             (setq xlist1 (vl-sort (cons x xlist) '<))
  28.             (cond ((= x (car xlist1)) (setq dimx (cadr xlist1)))
  29.                   ((= x (last xlist1)) (setq dimx (cadr (member x (reverse xlist1)))))
  30.                   (t  (setq x1 (cadr (member x (reverse xlist1))) x2 (cadr (member x xlist1)))
  31.                       (if (> (- x2 x) (- x x1)) (setq dimx x1) (setq dimx x2))
  32.                   )
  33.             )
  34.             (command "_dimaligned" pt (list dimx (cadr pt)) (list dimx (- (cadr pt) 10)));10是偏移的距离
  35.             (setq ylist1 (vl-sort (cons y ylist) '<))
  36.             (cond ((= y (car ylist1)) (setq dimy (cadr ylist1)))
  37.                   ((= y (last ylist1)) (setq dimy (cadr (member y (reverse ylist1)))))
  38.                   (t  (setq y1 (cadr (member y (reverse ylist1))) y2 (cadr (member y ylist1)))
  39.                       (if (> (- y2 y) (- y y1)) (setq dimy y1) (setq dimy y2))
  40.                   )
  41.             )
  42.             (command "_dimaligned" pt (list (car pt) dimy) (list (- (car pt) 10) dimy));10是偏移的距离
  43.             (setq n (1+ n))
  44.           )
  45.           )
  46.         )
  47.       )
  48.     (princ "\n没有轴线")
  49.     )
  50.   (mapcar 'setvar (list "dimdsep" "dimtxt" "dimblk" "osmode") oldvar)
  51.   (command "_.undo" "e")
  52.   )
回复

使用道具 举报

发表于 2012-1-10 21:37:34 | 显示全部楼层
本帖最后由 flytoday 于 2012-1-10 21:40 编辑

很好用于桩标注很好~
回复

使用道具 举报

发表于 2012-1-21 01:39:06 | 显示全部楼层
支持一下……
回复

使用道具 举报

发表于 2013-5-2 09:54:29 | 显示全部楼层
确实不错,支持楼主~~~~~~~!
回复

使用道具 举报

发表于 2013-8-5 22:06:32 | 显示全部楼层
值得学习啊
回复

使用道具 举报

发表于 2013-8-15 23:47:46 | 显示全部楼层
的确可以用于桩的标注
回复

使用道具 举报

发表于 2018-6-14 14:11:28 | 显示全部楼层
xiaotao 发表于 2012-1-10 05:35
;自己优化一下,碰到多条线时暂不处理
(defun c:1 (/ mid dxf ss-y ss-x MINDIST ss ss1 name pt pt1 dis  ...

程序是定位块基点到轴线的距离,但是当块处于两端轴线的中点的时候,这个方向就不会标注,想请教是什么出了问题
回复

使用道具 举报

发表于 2018-6-14 22:07:42 | 显示全部楼层
实在是太好了,激起了我努力学习lisp的欲望,,谢谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-20 02:29 , Processed in 0.168532 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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