明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2218|回复: 16

[讨论] 关于图块动态变换

[复制链接]
发表于 2024-9-5 22:59:06 | 显示全部楼层 |阅读模式
本帖最后由 尘缘一生 于 2024-9-6 06:04 编辑

这两天,用户提出这个问题,
透过块操作的一些事,我基本不存在,我画图纸,从来见块就炸,因为这个块,实际就是人为的给自己罩了个紧箍咒,虽然三领有块集成,见图如下:

那么,块如何X,Y动态比例,把块可以任意的,左右,上下,随便调整?当然,三维还存在有Z,包括角度等
关于建筑设计的话,你大不了也就30张图,为什么你非得弄些块呢?如果没有块,你想怎么作,简单多了,然而,必定有人是喜欢块的^_^,
有喜欢的,你就得作这一套系统,实际,垃圾的很,包括门窗啊,楼梯啊,钢筋啊,这些玩意,在我来说,都不屑一开发的东西。对于一个工程师来说,你必定掌握好一套大型软件,达到专家级别,否则你怎么吃这碗饭的?建筑来说,现在是,PKPM,天正,哪边都开发了,你还开发的什么?
这是我刚画完的一套三层框架钢构,也就28张。

说个题外的:那个弯弯,竟然回复我说的那个布局空间画图的恶心问题,问我画过市政吗?道路吗?桥梁吗?我懒得搭理和回复,你知道我画过什么图?你所疑惑的奥,你疑惑什么?你以为一个设计师一辈子就干一个事吗?你怀疑我没画过,没干过?巧了,本人就是什么都设计,包括古建筑,机械,模具。我就是全部画过的,干过的,领工程队干过的,你一个台湾省的小弯弯,你懂得什么?
随便写写,贴上保存备案,以备集成。
注:实际上,这个玩意可以和动态填充比例角度,线型比例,综合一个集成就是了。
  1. ;;动态图块比例-----(一级)---------
  2. ;Modify by SLdesign  QQ: 15290049
  3. (defun dyblk (blknam / plis dx0 dx dy0 dy p0 els pt loop ang f3 f8 bb p00)
  4.   (command "_.undo" "be")
  5.   (setq plis (ebox4 blknam) p0 (car plis) dx0 (distance p0 (cadr plis)) dy0 (distance p0 (cadddr plis)) els (entget blknam))
  6.   ;(princ
  7.   ;  (slmsg "\n->[正交(F8)/扑捉(F3)](45度斜拉,左右键...>退出)"
  8.   ;    "\n->[タユ(F8)/汲(F3)](45弊┰オ龄...>癶)"
  9.   ;    "\ n ->[Orthogonal (F8)/Catch (F3)] (45 degree diagonal pull Left and Right keys...>Exit)"
  10.   ;  )
  11.   ;)
  12.   (princ "\n->[正交(F8)/扑捉(F3)](45度斜拉,左右键...>退出)")
  13.   (setq loop t f8 (getvar "ORTHOMODE") f3 (getvar "OSMODE"))
  14.   (while loop
  15.     (setq bb (grread t 15 2) p00 (cadr bb))
  16.     (cond
  17.       ((equal bb '(2 6));F3切换捕捉开关
  18.         (cond
  19.           ((and (< f3 16384) (/= f3 0))
  20.             (setq f3 (+ f3 16384))
  21.             ;(prompt (slmsg "\n <对象捕捉 关>" "\n <癸禜 闽>" "\n <OSnap Off>"))
  22.             (prompt "\n <对象捕捉 关>")
  23.           )
  24.           ((or (= f3 0) (>= f3 16384))
  25.             (setq f3 16383)
  26.             ;(prompt (slmsg "\n <对象捕捉 开>" "\n <癸禜 秨>" "\n <OSnap On>"))
  27.             (prompt "\n <对象捕捉 开>")
  28.           )
  29.         )
  30.         (setvar "OSMODE" f3)
  31.       )   
  32.       ((equal bb '(2 15))    ;F8切换正交开关
  33.         (if (= f8 0)
  34.           ;(progn (setq f8 1) (prompt (slmsg "\n <正交 开>" "\n <タユ 秨>" "\n <Orth open>")))
  35.           (progn (setq f8 1) (prompt "\n <正交 开>"))
  36.           ;(progn (setq f8 0) (prompt (slmsg "\n <正交 关>" "\n <タユ 闽>" "\n <Orth off>")))
  37.           (progn (setq f8 0) (prompt "\n <正交 关>"))
  38.         )
  39.         (setvar "ORTHOMODE" f8)
  40.       )
  41.       ((= (car bb) 5)
  42.         (if (= f8 1)
  43.           (progn
  44.             (setq ang (angle p0 p00))
  45.             (cond
  46.               ((or (and (> ang pi4) (< ang 3pi4)) (and (> ang 5pi4) (< ang 7pi4)))
  47.                 (setq pt (list (car p0) (cadr p00)))
  48.               )
  49.               (t
  50.                 (setq pt (list (car p00) (cadr p0)))
  51.               )
  52.             )
  53.           )
  54.           (setq pt p00)
  55.         )
  56.         (if (and (<= f3 16384) (> f3 0) (/= f8 1))
  57.           (setq pt (slosnappt nil pt))
  58.         )
  59.         (setq dx (* 3.0 (abs (- (car p0) (car pt)))) dy (* 3.0 (abs (- (cadr p0) (cadr pt)))))
  60.         (entmod (emod (emod els 41 (/ dx dx0)) 42 (/ dy dy0))) ;左右,上下,动态调整了
  61.         (entupd blknam)
  62.       )
  63.       ((or
  64.          (member (car bb) '(11 25)) ;;右键
  65.          (member bb '((2 13))) ;;左键
  66.          (= (car bb) 3) ;;回车
  67.        )
  68.         (setq loop nil)
  69.       )
  70.     )
  71.   )
  72.   (command "_.undo" "e")
  73.   (princ)
  74. )
  75. ;;测试
  76. (defun c:tt ()
  77.   (setq blknam (car (entsel))) ;选块
  78.   (dyblk blknam)
  79. )


本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2024-9-6 08:44:58 | 显示全部楼层
我画方案图已经开始尝试全图块啦,你不用块,你画图真的需要画图
用块的话,因为块名具有唯一性,就相当于有个身份证
当你的图块实现一定的标准化,你根本不需要图块,你只需要亮出身份证
假如谁拿了我的图,全炸了,我也会炸了
回复 支持 2 反对 0

使用道具 举报

 楼主| 发表于 2024-9-6 05:51:22 | 显示全部楼层
本帖最后由 尘缘一生 于 2024-9-6 06:03 编辑

再细一下子
还应该作,支持输入定值功能,以后再说吧。
  1. ;;动态图块比例-----(一级)---------
  2. ;Modify by SLdesign V3.0 尘缘一生 QQ: 15290049
  3. (defun dyblk (blknam / plis dx0 dx dy0 dy p0 els pt loop ang ang0 f3 f8 bb p00 k1 k2 k3)
  4.   (command "_.undo" "be")
  5.   (setq plis (ebox4 blknam) p0 (dxf1 blknam 10) dx0 (distance (car plis) (cadr plis)) dy0 (distance (car plis) (cadddr plis)) els (entget blknam) ang0 (dxf1 blknam 50))
  6.   (princ (slmsg
  7.            "\n->[XY同时(TAB斜拉)/横向(X)/竖向(Y)/调角(A)/正交(F8)/扑捉(F3)](左右键...>退出)"
  8.            "\n->[XY(TAB弊┰)/绢(X)/捷(Y)/秸à(A)/タユ(F8)/汲(F3)](オ龄...>癶)"
  9.            "\n->[XY-Simultaneous(TAB)/Horizontal(X)/Vertical(Y)/Angle adjustment(A)/Orth(F8)/Osmode(F3)] (left and right keys...>exit)"
  10.          )
  11.   )
  12.   (setq loop t k1 t k2 t f8 (getvar "ORTHOMODE") f3 (getvar "OSMODE"))
  13.   (while loop
  14.     (setq bb (grread t 15 2) p00 (cadr bb))
  15.     (redraw)
  16.     (cond
  17.       ((equal bb '(2 6));F3切换捕捉开关
  18.         (cond
  19.           ((and (< f3 16384) (/= f3 0))
  20.             (setq f3 (+ f3 16384))
  21.             (prompt (slmsg "\n <对象捕捉 关>" "\n <癸禜 闽>" "\n <OSnap Off>"))
  22.           )
  23.           ((or (= f3 0) (>= f3 16384))
  24.             (setq f3 16383)
  25.             (prompt (slmsg "\n <对象捕捉 开>" "\n <癸禜 秨>" "\n <OSnap On>"))
  26.           )
  27.         )
  28.         (setvar "OSMODE" f3)
  29.       )   
  30.       ((equal bb '(2 15)) ;F8切换正交开关
  31.         (if (= f8 0)
  32.           (progn (setq f8 1) (prompt (slmsg "\n <正交 开>" "\n <タユ 秨>" "\n <Orth open>")))
  33.           (progn (setq f8 0) (prompt (slmsg "\n <正交 关>" "\n <タユ 闽>" "\n <Orth off>")))
  34.         )
  35.         (setvar "ORTHOMODE" f8)
  36.       )
  37.       ((= (car bb) 5)
  38.         (redraw)
  39.         (if (= f8 1)
  40.           (progn
  41.             (setq ang (angle p0 p00))
  42.             (cond
  43.               ((or (and (> ang pi4) (< ang 3pi4)) (and (> ang 5pi4) (< ang 7pi4)))
  44.                 (setq pt (list (car p0) (cadr p00)))
  45.               )
  46.               (t
  47.                 (setq pt (list (car p00) (cadr p0)))
  48.               )
  49.             )
  50.           )
  51.           (setq pt p00)
  52.         )
  53.         (if (and (<= f3 16384) (> f3 0) (/= f8 1))
  54.           (setq pt (slosnappt nil pt))
  55.         )
  56.         (grdraw p0 pt 1 3)
  57.         (setq dx (* 3.0 (abs (- (car p0) (car pt)))) dy (* 3.0 (abs (- (cadr p0) (cadr pt)))) ang (angle p0 pt))
  58.         (cond
  59.           ((and k1 (not k2))
  60.             (entmod (emod els 41 (/ dx dx0)))
  61.           )
  62.           ((and k2 (not k1))
  63.             (entmod (emod els 42 (/ dy dy0)))
  64.           )
  65.           ((and k1 k2)
  66.             (entmod (emod (emod els 41 (/ dx dx0)) 42 (/ dy dy0)))
  67.           )
  68.           (k3 (entmod (emod els 50 ang)))
  69.         )
  70.         (entupd blknam)
  71.       )
  72.       ((member bb '((2 9)))      ;;table XY同时
  73.         (entmod (emod (emod (emod els 50 ang0) 41 1.0) 42 1.0))
  74.         (entupd blknam)
  75.         (setq k1 t k2 t k3 nil)
  76.       )
  77.       ((member bb '((2 88) (2 120)))  ;;定X比
  78.         (entmod (emod (emod (emod els 50 ang0) 41 1.0) 42 1.0))
  79.         (entupd blknam)
  80.         (setq k1 t k2 nil k3 nil)
  81.       )
  82.       ((member bb '((2 89) (2 121)))  ;;定Y比
  83.         (entmod (emod (emod (emod els 50 ang0) 41 1.0) 42 1.0))
  84.         (entupd blknam)
  85.         (setq k1 nil  k2 t k3 nil)
  86.       )
  87.       ((member bb '((2 65) (2 97)))   ;;A定角
  88.         (entmod (emod (emod (emod els 50 ang0) 41 1.0) 42 1.0))
  89.         (entupd blknam)
  90.         (setq k1 nil  k2 nil k3 t)
  91.       )
  92.       ((or
  93.          (member (car bb) '(11 25)) ;;右键
  94.          (member bb '((2 13))) ;;左键
  95.          (= (car bb) 3) ;;回车
  96.        )
  97.         (setq loop nil)
  98.       )
  99.     )
  100.   )
  101.   (redraw)
  102.   (command "_.undo" "e")
  103.   (princ)
  104. )
  105. ;;测试
  106. (defun c:tt ()
  107.   (setq blknam (car (entsel))) ;选块
  108.   (dyblk blknam)
  109. )


 楼主| 发表于 2024-9-6 16:15:45 | 显示全部楼层
本帖最后由 尘缘一生 于 2024-9-6 17:06 编辑
陨落 发表于 2024-9-6 14:27
看他经常发他画的一些小玩意儿,然后在那里洋洋自得,像世外高人一样点评一些十年前就已经被大家广为接受 ...

我不止一次的说过,如果你不是深入了解一个问题,本坛人没资格也不能恢复我得帖子,因为,你太窄,太小,会的太少,经典的设计你并没有,得过多少奖的?,世界吉尼斯得到过吗?很简单的一个设计,你就不会,比如,我叫你画个农村的土炕,你也画不对的,因为,看要求高低了,
倒是那个土瓦匠没图,盘的炕哪,是最棒的,科班这些出生的,反倒不行,画的图也是就那么回事。
随便一个门类,你这辈子都接触不了。到死都不可能。
发几个库,看看里面那些是我的名字,哪些不是。
首先说明:库里有保密协议一部分,涉及复杂工艺部分的。
你的图,到了工地,经常被施工的总工,叼着烟的嘲笑你,虽然给你陪个笑脸,你错了,即便没见到画图的这个人,他一看图,就知道你多大,年龄多大了,干了几年了,大约是什么学校毕业的,清清楚楚。





















至于个方案吗,除了大型规划,有专门的规划设计师,简单的,就自己处理了,
对于熟练PKPM来说,处理很简单。






注:就目前PKPM来看,出现了大问题,那就是,由于规范的频繁改动,凡PKPM结构设计的,尤其钢构造价已经基本升高了接近1/3.
    估计天正结构不会出现这个大问题,市场来看,业主,都知道设计院胡咧咧的画图,画的图,也就为办手续,不用还影响验收,实际上,社会现在骂声一片了。

因此,你的图到底怎么样呢?不能自己觉得,我甲级设计院,牛逼,不是的,你的图,造价是多少的?可以横向比较吗?经不住的话,那就不行。

本帖子中包含更多资源

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

x
发表于 2024-9-6 08:54:34 | 显示全部楼层
看一下我全图块实现的事情
https://www.bilibili.com/video/B ... bfb4d8d82480a4969af

点评

一次设计,怎么自己习惯画都行,二次深化设计,就不好用了,而二次深化设计,恰恰是我目前为主的业务。  发表于 2024-9-6 17:56
发表于 2024-9-6 09:19:25 | 显示全部楼层
菜卷鱼 发表于 2024-9-6 08:54
看一下我全图块实现的事情
https://www.bilibili.com/video/BV1iw4m1v7dh/?vd_source=8ee7b1ed88904bfb4d8 ...

看了下,好牛逼
发表于 2024-9-6 09:57:37 | 显示全部楼层
好牛逼,三层钢框架,,真是了不起
发表于 2024-9-6 10:49:55 | 显示全部楼层
菜卷鱼 发表于 2024-9-6 08:44
我画方案图已经开始尝试全图块啦,你不用块,你画图真的需要画图
用块的话,因为块名具有唯一性,就相当于 ...

哈哈,淡定淡定。
有些人研究cad,研究了一点点但不多,然后还看不上别人快捷且有效的办法。
以自己浅薄的认知在论坛里面发帖子大书特书这点浅薄的理解。

确实给大家提供了不少笑料,这是他存在的合理性。
发表于 2024-9-6 14:13:09 | 显示全部楼层
格局有多大,留言就多大。

图块,布局,引用,还是很方便的。

年龄阅历不是资本,快捷精通使用各种方法,才是境界的高低。

点评

请你自重,注意,不许恢复我发的帖子!  发表于 2024-9-6 16:28
发表于 2024-9-6 14:27:26 | 显示全部楼层
crtrccrt 发表于 2024-9-6 14:13
格局有多大,留言就多大。

图块,布局,引用,还是很方便的。

看他经常发他画的一些小玩意儿,然后在那里洋洋自得,像世外高人一样点评一些十年前就已经被大家广为接受的入门级画图技术,真是让人忍俊不禁。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-22 20:03 , Processed in 0.195007 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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