2.这就是为什么我建议使用块而不是ACAD_表。为新手编写代码更容易。告诉我,你还想继续使用ACAD_表吗?我的下一个建议将取决于你的回答。[第2项]
3.vl字符串subst
(vla-settext atable 1 2 "DISTANCES")
(vla-InsertRowsAndInherit atable 2 0 1)
(vla-settext atable 2 0 "WHERE YOU GET THE TITLE")
(setq row 3)
(foreach itemtable_data
但是,对于一位数的值“S 075d29’W”,是否需要前导“0” 你好,pBe。
对于#2。也许我会接受你关于使用积木的建议。请帮助我,因为使用积木,我完全没有知识,谢谢pBe。
对于#3。有趣的是,我昨晚在做实验,幸运的是我做对了。我们有相同的代码。哈哈哈。
是的,我需要前导“0”表示个位数。(即:S 7d29’W将变为S 07d29’W;S 23d9’W将变为S 23d09’W。我不知道该怎么做。提前感谢pBe的帮助。
当做
makimaki公司 等等,makimaki,你在骗我为你写代码
标题如何[它的来源是什么?提示和/或选择?
哈哈哈。你难住我了。但我真的需要你的帮助。我没有足够的时间,我的学习将在3天后进行。
选择文本更适合标题的来源。还记得你帮我做批号和分批号的代码吗?用户将选择批号或子批号作为所有权来源。
再次非常感谢pBe。别担心,我会把你包括在我的感谢信中,甚至把我的研究报告给你看/上传,这样你就会知道你帮了我多少。再次感谢pBe先生。 我们将使用普通代码和块
(setq ang (vl-string-subst "%%d" "d" (angtos ang 4 2)))
BLLM:用于连接线
(defun c:maki2 ( / _pad0angtos data sn title sp np bearing dst data Main_start data_ip
LineValue1 LineValue2 BearingValue DistanceValue)
;;; Vanilla code ;;;
;;; pBe 31 Marc 2015 ;;;
(defun _pad0angtos(br / i n)
(setq i 2
l (strlen br))
(while (/= (substr br (setq i (1+ i)) 1) "d"))
(setq n (mapcar '(lambda (n)
(strcat (if (< (setq n (atoi n)) 10)
"0""")
(itoa n)))
(list (substr br 2) (substr br (setq i (1+ i))))))
(strcat (substr br 1 2)
(car n)"%%d" (cadr n)
(substr br (- l 2)))
)
(setq main_start nil)
(setvar 'Attdia 0)
(setvar 'Attreq 1)
(command "-layer" "m" "Technical Description" "")
(command "-layer" "c" "7" "Technical Description" "")
(setvar "cecolor" "bylayer")
(while
(and (progn
(setq data nil SN 1)
(initget "N")
(setq Title (entsel "\nSelect Lot Name Text / N for name: "))
(and Title
(setq Title (if (eq Title "N")
(strcase (getstring "\Enter Lot Name : "))
(if (member (cdr (assoc 0 (setq ent (entget (car Title))))) '("TEXT" "MTEXT"))
(cdr (assoc 1 ent)))))
(snvalid Title))
)
(setq sp (getpoint "\nPick Start Point"))
(setq sp_ sp)
)
(while
(setq np (getpoint sp "\nPick Next Point"))
(setq dst (distance sp np))
(setq bearing (angle sp np))
(setq dst (Strcat (rtos dst 2 2) " m."))
(setq bearing (angtos bearing 4 2))
(setq bearing (_pad0angtos bearing))
(setq data (cons
(list (itoa sn)Bearing dst np) data))
(setq sp np sn (+ 1 sn))
)
(setq data (cons (list(itoa sn)
(_pad0angtos (angtos (angle sp sp_) 4 2))
(Strcat (rtos (distance sp sp_) 2 2) " m.")) data))
(setq data (reverse (cons (last data) data)))
(if (null Main_start)
(progn
(setq Main_start (getpoint "\nPick Insertion point for Main Title location"))
(command "-Insert" "MainTitle" "_non" Main_start "" "")
(setq Data_ip (polar Main_start (* pi 1.5) 6.0))
)
)
(command "-Insert" "LotTitle" "_non" Data_ip "" "" Title )
(while (and (setq data1 (car data))
(setq data2 (cadr data)))
(setq Data_ip (polar Data_ip (* pi 1.5) 1.6))
(setq LineValue1 (car data1))
(setq LineValue2 (car data2))
(setq BearingValue (cadr data1))
(setq DistanceValue (caddr data1))
(command "-Insert" "Data" "_non" Data_ip "" ""
LineValue1
LineValue2
BearingValue
DistanceValue
)
(Setq data (cdr data)))
(command "-Insert" "table_close" "_non" Data_ip "" "")
(setq Data_ip (polar Data_ip (* pi 1.5) 3.0))
)
(princ)
)
BLLM块
BLLM_标题。图纸
BLLM_数据。图纸
Maki2区块
洛蒂特。图纸
数据图纸
主要标题。图纸
BLLM和Maki2的公共块
table_关闭。图纸
(defun c:bllm ( / BLLM# BLLM_N BLLM_E BLLMDATA BLLMC Title BLLMipt BLLMipt)
(if (and
(setq BLLM# (getint "\nEnter BLLM Nos.: "))
(setq BLLM_N (getreal "\nEnter Northing: "))
(setq BLLM_E (getreal "\nEnter Easting: "))
)
(progn
(setq BLLMDATA nil
BLLMC (list BLLM_E BLLM_N))
(while
(and (setq Title (strcase (getstring "\nEnter Lot Name: ")))
(snvalid Title)
(setq sp (getpoint BLLMC (Strcat "\nPick corner # 1 for " Title )))
)
(setq BLLMDATA (cons (list title (_pad0angtos (angtos (angleBLLMC sp)))
(strcat (rtos (distance BLLMC sp) 2 2) " m.")) BLLMDATA))
)
(setq BLLMipt (getpoint"\nPick BLLM table insertion point"))
(command "-Insert" "BLLM_Title" "_non" BLLMipt "" "" (itoa BLLM# ))
(setq BLLMData_ip (polar BLLMipt (* pi 1.5) 7.6))
(foreach TieLines (reverse BLLMDATA)
(command "-Insert" "BLLM_Data" "_non" BLLMData_ip "" ""
(car TieLines)
(cadr TieLines)
(last TieLines)
)
(setq BLLMData_ipp BLLMData_ip
BLLMData_ip (polar BLLMData_ip (* pi 1.5) 1.6))
)
(command "-Insert" "table_close" "_non" BLLMData_ipp "" "")
)
)
(princ)
)
此提示将要求用户选择文字/多行文字,或者如果没有要选择的对象实体,则用户可以键入“N”以提示输入名称
HTH公司
非常感谢pBe先生。刚刚通过true view将dwg文件转换为2010,因为我只有aCAD2010。
先生,我对你的例行公事有点困惑。首先,它会要求我为地块名称选择或提示一个名称,然后它会要求我选择边界点,单击enter后,会出现一个block attrib对话框并要求输入名称。我不知道它是怎么工作的。或者这是因为我有2010年aCAD。
2.这个例程是独立的还是应该与第一个代码结合?谢谢你的帮助,pBe先生。 哎呀。
找出当insert命令提示输入属性值Makimaki时,对话框出现的原因。并将其包含在代码中
对于原始代码中的这一行
(命令“cecolor”“bylayer”)将其更改为(setvar“cecolor”“bylayer”)[ 可怜的我。我真的不知道该怎么办,pBe先生。
真的吗?
属性1
收件人0
随便。请参阅第16页的更新代码
编辑:等等,我在那里看到了一个bug,最后一点对一点[愚蠢的我]。。。已更新
页:
1
[2]