FastFiber

Symbolen te plaatsen ipv radiusmaten ( Opgelost door Roy_043)

Gestart door Hydro, wo 10 02 2010, 14:15:11

Vorige topic - Volgende topic

Hydro

Kan er mij iemand helpen met een lisproutine om:
Symbolen te plaatsen ipv radiusmaten?
procedure: Radius/boog aanklikken en een overeenstemmend symbool plaatsen (op een willekeurig plaats)op een vastbepaalde layer (vb layer "tekst" en met kleur "geel".
Symbolen met een vaste waarde bv:
r 0,3 is een driehoekje
r 0,5 is een volle cirkel
r 1 is een vol vierkantje

Hertelijk dank aan u


roy_043

1. Vertel iets meer over de achtergrond (vakgebied en de herkomst van het plaatje).
2. Wat versta jij onder symbool?
3. Beschik jij over de symbolen in het plaatje?

Hydro

Dank voor jou reaktie

1. doel is plaatsbesparing op de tekening. Vakgebied is profielextrusietekeningen; dit  zijn mechanische tekeningen met veel details en bematingen.
2. onder symbool versta ik een teken (bestaand uit een block)  dat de radiusmaat vervangt. een ander voorbeeld is om bvb een rechte hoek van 90° aan te duiden om dit aan te geven wordt er soms een L gebruikt om dit aan te geven.
3. deze symbolen kunnen gewoon zelf ontworden blocks zijn.

dank

roy_043

Let op: er is geen foutcontrole ingebouwd.

(defun c:RadSym ( / symLst radius)
  (setvar "cmdecho" 0)
  (setq symLst
    '(
      (0.2 . "symRad020")
      (0.3 . "symRad030")
      (0.4 . "symRad040")
      (0.5 . "symRad050")
      ; enz.
    )
  )
  (setq radius (cdr (assoc 40 (entget (car (entsel "\nSelecteer een boog of cirkel: "))))))
  (while (and symLst (not (equal radius (caar symLst) 0.0001)))
    (setq symLst (cdr symLst))
  )
  (if (cdar symLst)
    (progn
      (princ "\nPlaatsingspunt: ")
      (command
        "_.layer" "_make" "Tekst" "_color" "2" "" ""
        "_insert" (cdar symLst) pause "_xyz" 1.0 1.0 1.0 0.0
      )
    )
    (princ "\nRadius niet gevonden (tolerantie = 0.0001) ")
  )
)

Hydro

Hartelijke dank, heb het getest maar krijg volgende foutmelding (zowel in R2004 en R2008) bij het opladen.

RadSym.lsp successfully loaded.
Command: ; error: bad character read (octal): 0

Hoe kan ik nu automatich een block laten invoegen. :|

Thanks

roy_043

Hoe maak jij van de code uit mijn vorige post een lisp-bestand?

Hydro

 Kippen en plakken in wordpad en bewaren als lsp bestand en opladen met Appload.
Hoe moet ik anders die code gebruiken? Ik heb (bijna) geen kennis van programatie, maar dit hebt u waarschijnlijk gemerkt. :oops:
Bedank voor uw geduld

roy_043

Een lisp-bestand mag alleen platte tekst bevatten. In Wordpad moet je het juiste bestandsformaat kiezen (Bestand > Nieuw > Tekstdocument). Of je gebruikt Notepad dan krijg je altijd een platte tekst.

Nadat je de lisp hebt ingeladen moet je RadSym intypen om de routine te starten.
Ik ben uitgegaan van de volgende blocknamen (voor radius 0.2 t/m 0.5):
symRad020
symRad030
symRad040
symRad050

Deze blocks moeten bestaan anders loopt de routine vast.

Hydro

Roy,

Prachtig, hartelijk dank. Dit is echt een verrijking.

Toch nog enkele vragen:
- Bij het aanvinken van een boog/cirkel met een andere straal/diameter komt onderstaande boodschap:

Selecteer een boog of cirkel:
Radius niet gevonden (tolerantie = 0.0001) "\nRadius niet gevonden (tolerantie
= 0.0001) "


-Bestaat er een mogelijkheid om het commando "radiusbemating" op te roepen bij het selecteren van een boog dat niet is opgenomen in de lijst?

- Volgende boodschap komt als ik een boog/cirkel aanvink in de "layout" met "Paper Space" geselecteerd. (bij het invoegen van een "Dimesion" en/of "Single line text" lukt dit wel.
Command: _.PSPACE
Command: RadSym
Selecteer een boog of cirkel: ; error: bad argument type: lentityp nil
Command:


VrGr

roy_043

Bijgevoegd gewijzigde lisp:

  • Als de radius niet in de tabel staat wordt nu dimradius aangeroepen. Je moet dan wel nog eens op de cirkelboog klikken.
  • Bij gebruik in PS wordt heel even naar MS geschakeld. Als het goed is wordt de laatst actieve viewport geschakeld. Als je meerdere viewports hebt moet je van te voren even de gewenste activeren. Omdat naar MS wordt geschakeld moet je oppassen met zoomen bij viewports die niet zijn "gelocked".

roy_043

Citaat van: Hydro via PMKan het zijn dat jou aangepaste code niet zichtbaar is op het forum?
De lisp is toegevoegd als bijlage. Bijlagen zijn alleen zichtbaar als je bent ingelogd.